Snow­flake bie­tet eine Viel­zahl von Tabel­len­ty­pen, die für unter­schied­li­che Anwen­dungs­fälle und Anfor­de­run­gen opti­miert sind. Hier ist eine Über­sicht über die wich­tigs­ten Tabel­len­ty­pen inklu­sive Beispielen:

Per­ma­nente Tabel­len (Per­ma­nent Tables)

Beschrei­bung: Diese Tabel­len spei­chern Daten dau­er­haft und sind für lang­fris­tige Spei­che­rung und Abfra­gen konzipiert.

Anwen­dungs­fälle: Geeig­net für Pro­duk­ti­ons­da­ten, die regel­mä­ßig abge­fragt und ana­ly­siert werden.

Bei­spiel:
CREATE TABLE my_permanent_table (
id NUMBER,
name STRING,
created_at TIMESTAMP
);

Tem­po­räre Tabel­len (Tem­po­rary Tables)

Beschrei­bung: Tem­po­räre Tabel­len spei­chern Daten nur für die Dauer einer Benut­zer­sit­zung. Nach dem Ende der Sit­zung wer­den die Daten auto­ma­tisch gelöscht.

Anwen­dungs­fälle: Ideal für Zwi­schen­spei­che­rung von Daten wäh­rend ETL-Pro­zes­sen oder für sit­zungs­spe­zi­fi­sche Berechnungen

Bei­spiel:
CREATE TEMPORARY TABLE my_temp_table (
id NUMBER,
session_data STRING
);

Tran­si­ente Tabel­len (Tran­si­ent Tables)

Beschrei­bung: Diese Tabel­len bie­ten eine kos­ten­güns­tige Lösung für die Spei­che­rung von Daten, die nicht dau­er­haft benö­tigt wer­den. Sie unter­stüt­zen keine Time Travel-Funktionalität.

Anwen­dungs­fälle: Nütz­lich für tem­po­räre Daten, die län­ger als eine Sit­zung benö­tigt wer­den, aber keine lang­fris­tige Spei­che­rung erfordern

Bei­spiel:
CREATE TRANSIENT TABLE my_transient_table (
id NUMBER,
temp_data STRING
);

Externe Tabel­len (Exter­nal Tables)

Beschrei­bung: Externe Tabel­len ermög­li­chen den Zugriff auf Daten, die außer­halb von Snow­flake in exter­nen Spei­cher­sys­te­men (z.B. AWS S3, Google Cloud Sto­rage) gespei­chert sind.

Anwen­dungs­fälle: Per­fekt für die Inte­gra­tion und Ana­lyse von Daten, die in exter­nen Quel­len gespei­chert sind, ohne sie in Snow­flake zu replizieren

Bei­spiel:
CREATE EXTERNAL TABLE my_external_table (
id NUMBER,
data STRING
)
WITH LOCATION = @my_stage
FILE_FORMAT = (TYPE = ‘CSV’);

Hybrid­ta­bel­len (Hybrid Tables)

Beschrei­bung: Diese Tabel­len bie­ten opti­mierte Leis­tung für sowohl Lese- als auch Schrei­b­ope­ra­tio­nen und sind für trans­ak­tio­nale und hybride Workloads ausgelegt.

Anwen­dungs­fälle: Geeig­net für Anwen­dun­gen, die sowohl OLTP- als auch OLAP-Workloads erfordern

Bei­spiel:
CREATE OR REPLACE HYBRID TABLE my_hybrid_table (
id NUMBER PRIMARY KEY,
name STRING NOT NULL,
value STRING
);

Ice­berg-Tabel­len (Ice­berg Tables)

Beschrei­bung: Ice­berg-Tabel­len ver­wen­den das offene Tabel­len­for­mat Apa­che Ice­berg und bie­ten Funk­tio­nen wie ACID-Trans­ak­tio­nen und Schema-Evolution.

Anwen­dungs­fälle: Ideal für die Ver­wal­tung gro­ßer Daten­men­gen in einem exter­nen Cloud­spei­cher mit erwei­ter­ten Datenverwaltungsfunktionen

Bei­spiel:
CREATE OR REPLACE ICEBERG TABLE my_iceberg_table (
id NUMBER,
data STRING
)
WITH LOCATION = ‘s3://my-bucket/my-path/’
FILE_FORMAT = (TYPE = ‘PARQUET’);

Fazit

Die Wahl des rich­ti­gen Tabel­len­typs in Snow­flake hängt stark von den spe­zi­fi­schen Anfor­de­run­gen und Anwen­dungs­fäl­len ab. Per­ma­nente Tabel­len sind ideal für lang­fris­tige Spei­che­rung, wäh­rend tem­po­räre und tran­si­ente Tabel­len für kurz­le­bige Daten nütz­lich sind. Externe Tabel­len ermög­li­chen die Inte­gra­tion exter­ner Daten­quel­len, und Ice­berg-Tabel­len bie­ten erwei­terte Funk­tio­nen für die Ver­wal­tung gro­ßer Datenmengen.