Tabellen in Snowflake erstellen: Arten, Beispiele und bewährte Praktiken
Erfahre, wie du in Snowflake verschiedene Arten von Tabellen erstellst, darunter permanente, temporäre, externe und dynamische Tabellen. Mit Schritt-für-Schritt-Beispielen und Best Practices.
Snowflake ist eine leistungsstarke, cloudbasierte Data-Warehousing-Plattform, mit der Unternehmen ihre Daten effizient speichern, verwalten und analysieren können. Im Gegensatz zu herkömmlichen Data Warehouses, die komplexe Hardware-Einrichtungen erfordern, läuft Snowflake vollständig in der Cloud und erleichtert es Unternehmen, ihren Datenbetrieb nach Bedarf zu skalieren.
Das Erstellen von Tabellen in Snowflake ist eine grundlegende Fähigkeit, die das Fundament der Datenverwaltung bildet. In Tabellen speicherst du deine strukturierten Daten, die es dir ermöglichen, Abfragen durchzuführen, Berichte zu erstellen und wertvolle Erkenntnisse aus deinen Informationen zu gewinnen. Ganz gleich, ob du mit Kundendaten, Verkaufszahlen oder Analyseergebnissen arbeitest, es ist wichtig zu wissen, wie du Tabellen in Snowflake erstellst und verwaltest.
In diesem Lernprogramm erfährst du alles, was du über die Erstellung von Tabellen in Snowflake wissen musst. Wir stellen dir die verschiedenen Arten von Tabellen vor, zeigen dir Schritt-für-Schritt-Beispiele und verraten dir Best Practices für die Gestaltung von Tabellen. Am Ende wirst du sicher sein, dass du den richtigen Tabellentyp für deine Bedürfnisse auswählst und Tabellen erstellst, die den Industriestandards für Leistung und Wartungsfreundlichkeit entsprechen.
Verstehen der Tabellenarten in Snowflake
Bevor wir uns mit Codebeispielen zum Erstellen von Tabellen befassen, wollen wir uns mit den verschiedenen Tabellentypen in Snowflake befassen, da jeder von ihnen einen besonderen Zweck erfüllt und unterschiedliche Eigenschaften in Bezug auf Datenpersistenz, Zugänglichkeit und Speicherort hat.
Permanente Tabellen
Permanente Tabellen sind der Standardtabellentyp in Snowflake. Sie bleiben bestehen, bis sie explizit gelöscht werden, und werden im internen Speicher von Snowflake gespeichert. Diese Tabellen sind ideal für die Speicherung deiner wichtigsten Geschäftsdaten, die langfristig aufbewahrt und über mehrere Sitzungen hinweg abgerufen werden müssen. Die Daten in den permanenten Tabellen bleiben zwischen den Sitzungen erhalten und können von jedem autorisierten Benutzer abgerufen werden.
Temporäre Tabellen
Temporäre Tabellen sind sitzungsspezifische Tabellen, die automatisch gelöscht werden, wenn deine aktuelle Sitzung endet. Sie dienen als Tabellen für Zwischenverarbeitungsschritte und helfen dabei, komplexe Datentransformationen zu organisieren, ohne deinen permanenten Speicher zu überladen. Die Daten in temporären Tabellen sind nur für die Sitzung sichtbar, die sie erstellt hat, und werden automatisch gelöscht, wenn die Sitzung geschlossen wird.
Externe Tabellen
Externe Tabellen bieten die Möglichkeit, Daten abzufragen, die sich außerhalb des Snowflake-Speichers befinden. Sie dienen als Metadatenebene, die Daten in externen Speicherorten wie AWS S3 oder Azure Blob Storage. Anstatt die Daten einzulesen, erstellen externe Tabellen einen Verweis darauf, so dass du externe Daten direkt abfragen kannst. Dieser Ansatz ist besonders wertvoll, wenn du mit Daten arbeitest, die an ihrem Ursprungsort verbleiben müssen oder häufig von externen Systemen aktualisiert werden müssen.
Dynamische Tabellen
Dynamische Tabellen sind eine leistungsstarke Funktion in Snowflake, die die Ergebnisse einer Abfrage automatisch auf dem neuesten Stand hält. Sie fungieren als materialisierte Ansichten, die automatisch auf der Grundlage von Änderungen in den zugrunde liegenden Tabellen aktualisiert werden. Wenn du eine dynamische Tabelle erstellst, definierst du sie mit einer SELECT-Anweisung, und Snowflake sorgt automatisch dafür, dass die Daten immer aktuell sind.
Dynamische Tabellen sind besonders nützlich für:
Erstellung von Echtzeit-Dashboards, die frische Daten benötigen, ohne dass diese manuell aktualisiert werden müssen
Aggregierte oder transformierte Versionen von Quelldaten pflegen, die automatisch aktualisiert werden
Erstellen von abhängigen Datenmodellen, bei denen die nachgelagerten Tabellen die vorgelagerten Änderungen widerspiegeln müssen
Optimierung der Abfrageleistung durch Vorberechnung komplexer Transformationen
Die wichtigsten Merkmale dynamischer Tabellen sind:
Konfigurierbare Aktualisierungsintervalle (von 1 Minute bis 24 Stunden)
Automatischer Lernpfad für die Abhängigkeit von Tabellen
Zielvorgaben für die Verzögerungszeit zur Kontrolle der Datenfrische
Inkrementelle Verarbeitung zur Minimierung der Rechenkosten
Integrierte Überwachungs- und Optimierungsfunktionen
Jeder Tabellentyp hat seinen eigenen Zweck in der Datenarchitektur. Permanente Tabellen bilden die Grundlage deines Data Warehouse, temporäre Tabellen erleichtern die Arbeitsabläufe bei der Datenverarbeitung, externe Tabellen ermöglichen die Integration mit externen Datenquellen und dynamische Tabellen bieten automatisierte Datentransformationen in Echtzeit.
Snowflake Tabellen im Vergleich
In der folgenden Tabelle haben wir die verschiedenen Arten von Snowflake-Tabellen in einer übersichtlichen Kurzanleitung zusammengefasst:
Tabelle Typ
Persistenz
Sichtbarkeit
Am besten für
Dauerhaft
Bis zum Fallenlassen
Jede Sitzung
Kerngeschäftsdaten
Vorübergehend
Nur für die Sitzung
Dieselbe Sitzung
Zwischentransformationen
Extern
Externer Speicher
Jede Sitzung
Abfrage externer Daten (z. B. S3)
Dynamisch
Automatische Auffrischung
Jede Sitzung
Echtzeit-Analysen
Tabellen erstellen: Snowflake einrichten
Bevor du die Beispiele in diesem Lernprogramm ausführst, brauchst du Zugang zu einer Snowflake-Umgebung. Es gibt verschiedene Möglichkeiten, sich mit Snowflake zu verbinden und Snowflake-Befehle auszuführen:
1. Snowflake Webinterface (Snowsight)
Der einfachste Weg, um loszulegen, ist das Webinterface von Snowflake:
snowsql -a<account>-u<username>-d<database>-w<warehouse>Bereitgestellt von
Die Zugangsdaten für dein Snowflake-Konto findest du an den folgenden Stellen:
Konto-URL: Schau in deiner Willkommens-E-Mail oder in deinen Kontoeinstellungen nach
Benutzername: Wird bei der Kontoeinrichtung angegeben
Datenbank: Von deinem Administrator erstellt oder zugewiesen
Lagerhaus: Von deinem Administrator erstellt oder zugewiesen
Aus Sicherheitsgründen solltest du diese Zugangsdaten niemals weitergeben oder übertragen. Speichere sie sicher in Umgebungsvariablen oder einer Konfigurationsdatei.
3. Python-Verbindung
Wenn du Python verwendest, kannst du die Bibliotheksnowflake-connector-python nutzen:
import snowflake.connector
conn = snowflake.connector.connect(
user='your_username',
password='your_password',
account='your_account',
warehouse='your_warehouse',
database='your_database',
schema='your_schema')
cur = conn.cursor()
cur.execute("SELECT current_version()")Bereitgestellt von
Wichtiger Sicherheitshinweis:
Speichere niemals Anmeldedaten direkt in deinem Code
Umgebungsvariablen oder sichere Geheimnisverwaltung verwenden
Für die Produktion solltest du die Schlüsselpaar-Authentifizierung verwenden.
Befolge die Sicherheitsrichtlinien deines Unternehmens
Jetzt, wo unser Setup fertig ist, können wir Tabellen erstellen!
Tabellen in Snowflake erstellen: Schritt-für-Schritt-Beispiele
Beispiel 1: Erstellen einer einfachen Snowflake Tabelle
Legen wir eine Tabelle an, in der wir Kundeninformationen speichern. Dieses Beispiel veranschaulicht die grundlegende Erstellung von Tabellen mit verschiedenen Datentypen und Beschränkungen.
-- Create a permanent table for customer dataCREATEORREPLACETABLE customers (
customer_id INTEGERPRIMARYKEY,
first_name VARCHAR(50)NOTNULL,
last_name VARCHAR(50)NOTNULL,
email VARCHAR(100)UNIQUE,
date_of_birth DATE,
created_at TIMESTAMP_NTZ DEFAULTCURRENT_TIMESTAMP());Bereitgestellt von
Die wichtigsten Punkte zu diesem Beispiel:
CREATE OR REPLACE TABLE - Legt eine neue Tabelle an oder ersetzt sie, wenn sie bereits existiert
PRIMARY KEY - Gewährleistet die eindeutige Identifizierung jedes Datensatzes
NOT NULL - Verhindert Nullwerte in Pflichtfeldern
UNIQUE - Stellt sicher, dass E-Mail-Adressen nicht doppelt vorhanden sind
TIMESTAMP_NTZ - Zeitstempel ohne Zeitzone
DEFAULT - Setzt automatisch den Zeitstempel der Erstellung
Beispiel 2: Erstellen einer temporären Tabelle
Temporäre Tabellen sind ideal für die Verarbeitung von Zwischendaten. Hier ist ein Beispiel, das eine temporäre Tabelle für die Analyse von Kundenbestellungen erstellt:
-- Create a temporary table for order analysisCREATEORREPLACETEMPORARYTABLE temp_order_analysis (
order_date DATE,
total_orders INTEGER,
total_revenue DECIMAL(18,2))ASSELECT
DATE_TRUNC('day', order_date)as order_date,COUNT(*)as total_orders,SUM(order_amount)as total_revenue
FROM orders
GROUPBY1;Bereitgestellt von
Wichtige Punkte zu temporären Tabellen:
Das Schlüsselwort TEMPORARY gibt an, dass diese Tabelle nur innerhalb der aktuellen Sitzung existiert. Das bedeutet, dass andere Nutzer diese Tabelle nicht sehen oder darauf zugreifen können.
Mit CREATE TABLE AS (CTAS) kannst du eine Tabelle in einem einzigen Schritt erstellen und auffüllen, indem du die Tabellendefinition mit einer SELECT-Anweisung kombinierst.
Die temporäre Tabelle wird automatisch gelöscht, wenn deine Sitzung endet, damit die Datenbank sauber bleibt, ohne dass du sie manuell bereinigen musst.
Temporäre Tabellen sind nützlich, um Zwischenergebnisse bei komplexen Datentransformationen oder Analyseabläufen zu speichern.
Beispiel 3: Erstellen einer externen Tabelle in Snowflake
In diesem Beispiel wird gezeigt, wie du eine externe Tabelle erstellst, die Daten aus Dateien liest, die in einem Cloud-Storage-Bucket gespeichert sind:
Die erste Anweisung definiert eine Dateiformatspezifikation, die Snowflake mitteilt, wie externe CSV-Dateien geparst werden sollen, einschließlich des Trennzeichens, der Header-Behandlung und der NULL-Wert-Darstellung.
Die zweite Anweisung erstellt ein Stage-Objekt, das mit den angegebenen Anmeldeinformationen eine Verbindung zu einem externen Cloud-Speicher (in diesem Fall S3) herstellt. Diese Stufe dient als Bezugspunkt für den Zugriff auf die externen Datendateien.
Die dritte Anweisung erstellt die externe Tabelle selbst, indem sie Spaltendefinitionen mit AS-Klauseln verwendet, um die rohen String-Daten aus der CSV-Datei explizit in die richtigen Snowflake-Datentypen umzuwandeln. Die WITH LOCATION-Klausel verweist auf den spezifischen Pfad innerhalb der Phase, in der sich die Dateien befinden.
Der PATTERN-Parameter filtert mit Hilfe von Regex-Matching, welche Dateien einbezogen werden sollen, und stellt sicher, dass nur CSV-Dateien verarbeitet werden.
Voraussetzungen für die Ausführung dieser Abfrage zur Erstellung externer Tabellen:
1. Zugriff auf ein Snowflake-Konto mit der Berechtigung:
Dateiformate erstellen
Etappen erstellen
Externe Tabellen erstellen
2. Gültige AWS-Zugangsdaten (AWS_KEY_ID und AWS_SECRET_KEY ) mit Berechtigungen für:
Lesen aus dem S3-Bucket
Objekte im Eimer auflisten
3. Anforderungen an die Quelldaten:
CSV-Dateien, die in einem S3-Bucket gespeichert sind
Die Dateien folgen einem einheitlichen Format mit vier Spalten
Die Spaltendaten entsprechen den angegebenen Typen:
customer_id als String
purchase_date als Datum
product_id als String
amount als Dezimalzahl
4. Netzwerkkonnektivität:
Netzwerkzugang zu AWS S3
Richtige Sicherheitsgruppen- und Firewall-Einstellungen
5. Compute-Ressourcen:
Aktives Lager mit ausreichender Rechenkapazität
Ausreichend Nutzerkredite/Kontingente
Beispiel 4: Erstellen einer dynamischen Tabelle
In diesem Beispiel wird eine dynamische Tabelle erstellt, die eine aktuelle Zusammenfassung der Verkaufsdaten enthält:
-- Create a dynamic table for real-time sales analyticsCREATEORREPLACE DYNAMIC TABLE daily_sales_summary
TARGET_LAG ='20 minutes'
WAREHOUSE ='COMPUTE_WH'ASSELECT
DATE_TRUNC('day', sale_timestamp)as sale_date,
product_category,SUM(sale_amount)as total_sales,COUNT(DISTINCT customer_id)as unique_customers
FROM sales_transactions
GROUPBY1,2;Bereitgestellt von
Der Parameter TARGET_LAG von "20 Minuten" legt die maximal zulässige Verzögerung zwischen der Aktualisierung der Quelltabelle und der Übernahme dieser Änderungen in die dynamische Tabelle fest. Dadurch wird die Aktualität der Daten innerhalb dieses Zeitfensters sichergestellt.
Der Parameter WAREHOUSE gibt an, welche Rechenressourcen (in diesem Fall COMPUTE_WH) für die regelmäßige Aktualisierung der dynamischen Tabelle verwendet werden sollen. Dieses Lager muss über eine ausreichende Kapazität verfügen, um die Auffrischungsarbeiten durchzuführen.
Die dynamische Tabelle aktualisiert ihren Inhalt automatisch, wenn sich die zugrunde liegende Tabelle sales_transactions ändert, ohne dass ein manueller Eingriff erforderlich ist. Dies ermöglicht Analysen in nahezu Echtzeit.
Indem die dynamische Tabelle nach Produktkategorien gruppierte, voraggregierte tägliche Umsatzzusammenfassungen bereithält, ermöglicht sie eine schnellere Abfrage im Vergleich zur Berechnung dieser Kennzahlen bei Bedarf aus den Rohdaten der Transaktionen. Dies verbessert die Abfrageleistung für Berichts- und Analysezwecke.
Jedes dieser Beispiele veranschaulicht verschiedene Szenarien für die Erstellung von Tabellen, die dir in der Praxis begegnen können. Denke daran, Spaltennamen, Datentypen und andere Parameter an deine spezifischen Bedürfnisse anzupassen.
Best Practices für die Erstellung von Tabellen in Snowflake
Im Folgenden werden einige Best Practices vorgestellt, die bei der Erstellung von Tabellen in Snowflake beachtet werden sollten, um Wartungsfreundlichkeit, Leistung und Datenqualität zu gewährleisten.
1. Namenskonventionen
Verwende immer klare, einheitliche Namen für deine Tabellen und Spalten:
-- Good naming examplesCREATETABLE customer_orders (
order_id INTEGER,
customer_email VARCHAR,
order_date DATE);-- Bad naming examplesCREATETABLE Orders123 (
ID INTEGER,
email VARCHAR,
dt DATE);Bereitgestellt von
Tipps zur Namensgebung:
Kleinbuchstaben und Unterstriche verwenden (snake_case)
Vermeide Leerzeichen und Sonderzeichen
Namen sollten beschreibend, aber nicht zu lang sein
Verwende die Singularform für Tabellennamen (Kunden statt Kunden)
Füge Präfixe für verschiedene Umgebungen hinzu (dev_,test_,prod_ )
2. Spaltendatentypen
Wähle den richtigen Datentyp, um Speicherplatz zu sparen und die Leistung zu verbessern:
-- Good data type choicesCREATETABLE products (
product_id INTEGER,
price DECIMAL(10,2),-- For money values
name VARCHAR(100),-- Set a reasonable limit
description TEXT,-- For very long text
is_active BOOLEAN-- Instead of VARCHAR or INTEGER);Bereitgestellt von
Gängige Datentypen, die du verwenden kannst:
NUMBER/INTEGER: Für ganze Zahlen
DECIMAL/NUMERIC: Für präzise Dezimalzahlen (insbesondere Geld)
VARCHAR: Für Text mit einer bekannten maximalen Länge
TEXT: Für Text in unbegrenzter Länge
TIMESTAMP_NTZ: Für Daten und Zeiten (keine Zeitzone)
BOOLEAN: Für wahre/falsche Werte
3. Verwendung von Clustering-Schlüsseln
Füge Clustering-Schlüssel hinzu, um die Abfrageleistung zu verbessern:
Auf Spalten, nach denen du häufig filterst oder verknüpfst
Normalerweise Datumsspalten plus 1-2 andere Spalten
Clustere nicht nach Spalten mit zu vielen eindeutigen Werten
4. Hinzufügen von Tabellenbeschränkungen
Verwende Beschränkungen, um deine Daten sauber zu halten:
CREATETABLE users (
user_id INTEGERPRIMARYKEY,-- Ensures unique IDs
email VARCHAR(255)UNIQUE,-- No duplicate emails
username VARCHAR(50)NOTNULL,-- Must have a value
age INTEGERCHECK(age >=18)-- Must be 18 or older);Bereitgestellt von
Wichtige Einschränkungen:
PRIMARY KEY: Für eindeutige Identifikatoren
FOREIGN KEY: Zur Verknüpfung von Tabellen untereinander
NOT NULL: Für Pflichtfelder
UNIQUE: Für Felder, die keine Duplikate haben dürfen
CHECK: Für einfache Datenvalidierung
5. Häufige Fehler, die du vermeiden solltest
Tu das nicht:
-- Bad practice: No primary keyCREATETABLE orders (dateVARCHAR,-- Wrong data type for dates
amount VARCHAR(10),-- Wrong data type for numbersstatustext-- Inconsistent case with other columns);Bereitgestellt von
Mach stattdessen Folgendes:
-- Good practiceCREATETABLE orders (
order_id INTEGERPRIMARYKEY,
order_date DATE,
amount DECIMAL(10,2),statusVARCHAR(20));Bereitgestellt von
Die verbesserte Version stellt die Datenintegrität mit einem Primärschlüssel sicher, verwendet korrekte Datentypen für Daten und Zahlen, um effizientes Filtern und Berechnen zu ermöglichen, und behält die Konsistenz der Spaltendefinitionen bei, um die Lesbarkeit und Kompatibilität zu verbessern.
6. Tipps zur Leistung
Die Optimierung der Leistung von Tabellen in Snowflake kann die Abfragegeschwindigkeit erheblich verbessern und die Speicherkosten senken. Befolge diese Best Practices, um sicherzustellen, dass deine Tabellen effizient und skalierbar sind.
Erstellen kleinerer Tabellen anstelle einer großen Tabelle
Spaltenbeschreibungen mit COMMENT hinzufügen
Regeln für die automatische Datenbereinigung einrichten
Teste dein Tabellendesign mit echten Daten
Überwache die Nutzung der Tabellen und passe sie bei Bedarf an
7. Bewährte Sicherheitspraktiken
Angemessene Sicherheitsmaßnahmen sind wichtig, um sensible Daten zu schützen und den Zugang zu kontrollieren. Implementiere diese Best Practices, um deine Snowflake-Umgebung vor unbefugtem Zugriff und Datenverletzungen zu schützen.
Lege immer die richtigen Zugriffsberechtigungen fest
Bei Bedarf Sicherheit auf Zeilenebene verwenden
Sensible Spalten verschlüsseln
Behalte den Überblick, wer auf was zugreifen kann
Regelmäßige Überprüfung der Zugriffsmuster
Erinnere dich: Eine gut gestaltete Tabelle erleichtert dir später die Arbeit. Nimm dir Zeit, um die Struktur deiner Tabelle zu planen, bevor du sie erstellst!
Fazit
In diesem Tutorial haben wir uns mit den wichtigsten Aspekten der Erstellung von Tabellen in Snowflake beschäftigt:
Verschiedene Arten von Tabellen (permanent, temporär, extern und dynamisch)
Schritt-für-Schritt-Beispiele für die Erstellung jedes Typs
Bewährte Praktiken für die Gestaltung und Verwaltung von Tabellen
Häufige Fallstricke, die es zu vermeiden gilt
Dieses Wissen bildet die Grundlage für den Aufbau effizienter und skalierbarer Datenlösungen in Snowflake.
Nächste Schritte
Um dein Snowflake-Know-how zu vertiefen, solltest du dir diese wertvollen Ressourcen ansehen:
Vergiss nicht, dass man am besten lernt, indem man etwas tut. Erstelle Tabellen, experimentiere mit verschiedenen Typen und baue echte Projekte. Wenn du auf Herausforderungen stößt, kannst du auf diese Ressourcen zurückgreifen und immer wieder neue Funktionen von Snowflake erkunden.
Snowflake Tabelle erstellen FAQs
Was sind die verschiedenen Arten von Tabellen in Snowflake?⌄
Snowflake unterstützt vier Haupttypen von Tabellen: permanente Tabellen für die langfristige Datenspeicherung, temporäre Tabellen für die sitzungsspezifische Nutzung, externe Tabellen für die Abfrage externer Datenquellen und dynamische Tabellen für die automatische Pflege von Abfrageergebnissen.
Wie erstelle ich eine einfache Tabelle in Snowflake?⌄
Verwende den Befehl CREATE TABLE mit deinem gewünschten Schema. Zum Beispiel: "CREATE TABLE customers (customer_id INTEGER PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50))". Füge geeignete Datentypen und Beschränkungen ein.
Was ist eine dynamische Tabelle in Snowflake und wann sollte ich sie verwenden?⌄
Dynamische Tabellen halten die Ergebnisse einer Abfrage automatisch aktuell, ähnlich wie materialisierte Ansichten. Sie sind ideal für Echtzeit-Dashboards, automatisierte Datenumwandlungen und die Pflege aggregierter Daten, die häufig aktualisiert werden müssen.
Was sind die besten Methoden für die Benennung von Tabellen in Snowflake?⌄
Verwende Kleinbuchstaben mit Unterstrichen (snake_case), vermeide Leer- und Sonderzeichen, formuliere die Namen aussagekräftig, aber prägnant, verwende die Singularform für Tabellennamen und erwäge, Umgebungspräfixe (dev_, test_, prod_) hinzuzufügen.
Wie kann ich die Leistung von Tabellen in Snowflake verbessern?⌄
Verbessere die Leistung, indem du geeignete Clustering-Schlüssel verwendest, die richtigen Datentypen auswählst, die richtigen Beschränkungen festlegst, kleinere fokussierte Tabellen anstelle von großen erstellst und die Nutzungsmuster der Tabellen regelmäßig überprüfst.
Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Lerne, wie du Python-Listen mit Techniken wie Slicing, List Comprehensions und itertools aufteilen kannst. Finde heraus, wann du welche Methode für die beste Datenverarbeitung nutzen solltest.
Gewinne Vertrauen in die OLS-Regression, indem du ihre theoretischen Grundlagen beherrschst. Erforsche, wie du einfache Implementierungen in Excel, R und Python durchführst.
Snowflake ist eine leistungsstarke, cloudbasierte Data-Warehousing-Plattform, mit der Unternehmen ihre Daten effizient speichern, verwalten und analysieren können. Im Gegensatz zu herkömmlichen Data Warehouses, die komplexe Hardware-Einrichtungen erfordern, läuft Snowflake vollständig in der Cloud und erleichtert es Unternehmen, ihren Datenbetrieb nach Bedarf zu skalieren.
Das Erstellen von Tabellen in Snowflake ist eine grundlegende Fähigkeit, die das Fundament der Datenverwaltung bildet. In Tabellen speicherst du deine strukturierten Daten, die es dir ermöglichen, Abfragen durchzuführen, Berichte zu erstellen und wertvolle Erkenntnisse aus deinen Informationen zu gewinnen. Ganz gleich, ob du mit Kundendaten, Verkaufszahlen oder Analyseergebnissen arbeitest, es ist wichtig zu wissen, wie du Tabellen in Snowflake erstellst und verwaltest.
In diesem Lernprogramm erfährst du alles, was du über die Erstellung von Tabellen in Snowflake wissen musst. Wir stellen dir die verschiedenen Arten von Tabellen vor, zeigen dir Schritt-für-Schritt-Beispiele und verraten dir Best Practices für die Gestaltung von Tabellen. Am Ende wirst du sicher sein, dass du den richtigen Tabellentyp für deine Bedürfnisse auswählst und Tabellen erstellst, die den Industriestandards für Leistung und Wartungsfreundlichkeit entsprechen.
Verstehen der Tabellenarten in Snowflake
Bevor wir uns mit Codebeispielen zum Erstellen von Tabellen befassen, wollen wir uns mit den verschiedenen Tabellentypen in Snowflake befassen, da jeder von ihnen einen besonderen Zweck erfüllt und unterschiedliche Eigenschaften in Bezug auf Datenpersistenz, Zugänglichkeit und Speicherort hat.
Permanente Tabellen
Permanente Tabellen sind der Standardtabellentyp in Snowflake. Sie bleiben bestehen, bis sie explizit gelöscht werden, und werden im internen Speicher von Snowflake gespeichert. Diese Tabellen sind ideal für die Speicherung deiner wichtigsten Geschäftsdaten, die langfristig aufbewahrt und über mehrere Sitzungen hinweg abgerufen werden müssen. Die Daten in den permanenten Tabellen bleiben zwischen den Sitzungen erhalten und können von jedem autorisierten Benutzer abgerufen werden.
Temporäre Tabellen
Temporäre Tabellen sind sitzungsspezifische Tabellen, die automatisch gelöscht werden, wenn deine aktuelle Sitzung endet. Sie dienen als Tabellen für Zwischenverarbeitungsschritte und helfen dabei, komplexe Datentransformationen zu organisieren, ohne deinen permanenten Speicher zu überladen. Die Daten in temporären Tabellen sind nur für die Sitzung sichtbar, die sie erstellt hat, und werden automatisch gelöscht, wenn die Sitzung geschlossen wird.
Externe Tabellen
Externe Tabellen bieten die Möglichkeit, Daten abzufragen, die sich außerhalb des Snowflake-Speichers befinden. Sie dienen als Metadatenebene, die Daten in externen Speicherorten wie AWS S3 oder Azure Blob Storage. Anstatt die Daten einzulesen, erstellen externe Tabellen einen Verweis darauf, so dass du externe Daten direkt abfragen kannst. Dieser Ansatz ist besonders wertvoll, wenn du mit Daten arbeitest, die an ihrem Ursprungsort verbleiben müssen oder häufig von externen Systemen aktualisiert werden müssen.
Dynamische Tabellen
Dynamische Tabellen sind eine leistungsstarke Funktion in Snowflake, die die Ergebnisse einer Abfrage automatisch auf dem neuesten Stand hält. Sie fungieren als materialisierte Ansichten, die automatisch auf der Grundlage von Änderungen in den zugrunde liegenden Tabellen aktualisiert werden. Wenn du eine dynamische Tabelle erstellst, definierst du sie mit einer SELECT-Anweisung, und Snowflake sorgt automatisch dafür, dass die Daten immer aktuell sind.
Dynamische Tabellen sind besonders nützlich für:
Die wichtigsten Merkmale dynamischer Tabellen sind:
Jeder Tabellentyp hat seinen eigenen Zweck in der Datenarchitektur. Permanente Tabellen bilden die Grundlage deines Data Warehouse, temporäre Tabellen erleichtern die Arbeitsabläufe bei der Datenverarbeitung, externe Tabellen ermöglichen die Integration mit externen Datenquellen und dynamische Tabellen bieten automatisierte Datentransformationen in Echtzeit.
Snowflake Tabellen im Vergleich
In der folgenden Tabelle haben wir die verschiedenen Arten von Snowflake-Tabellen in einer übersichtlichen Kurzanleitung zusammengefasst:
Tabelle Typ
Persistenz
Sichtbarkeit
Am besten für
Dauerhaft
Bis zum Fallenlassen
Jede Sitzung
Kerngeschäftsdaten
Vorübergehend
Nur für die Sitzung
Dieselbe Sitzung
Zwischentransformationen
Extern
Externer Speicher
Jede Sitzung
Abfrage externer Daten (z. B. S3)
Dynamisch
Automatische Auffrischung
Jede Sitzung
Echtzeit-Analysen
Tabellen erstellen: Snowflake einrichten
Bevor du die Beispiele in diesem Lernprogramm ausführst, brauchst du Zugang zu einer Snowflake-Umgebung. Es gibt verschiedene Möglichkeiten, sich mit Snowflake zu verbinden und Snowflake-Befehle auszuführen:
1. Snowflake Webinterface (Snowsight)
Der einfachste Weg, um loszulegen, ist das Webinterface von Snowflake:
2. SnowSQL (Befehlszeilentool)
Für den Zugriff über die Kommandozeile:
Die Zugangsdaten für dein Snowflake-Konto findest du an den folgenden Stellen:
Aus Sicherheitsgründen solltest du diese Zugangsdaten niemals weitergeben oder übertragen. Speichere sie sicher in Umgebungsvariablen oder einer Konfigurationsdatei.
3. Python-Verbindung
Wenn du Python verwendest, kannst du die Bibliothek
snowflake-connector-pythonnutzen:Wichtiger Sicherheitshinweis:
Jetzt, wo unser Setup fertig ist, können wir Tabellen erstellen!
Tabellen in Snowflake erstellen: Schritt-für-Schritt-Beispiele
Beispiel 1: Erstellen einer einfachen Snowflake Tabelle
Legen wir eine Tabelle an, in der wir Kundeninformationen speichern. Dieses Beispiel veranschaulicht die grundlegende Erstellung von Tabellen mit verschiedenen Datentypen und Beschränkungen.
Die wichtigsten Punkte zu diesem Beispiel:
CREATE OR REPLACE TABLE- Legt eine neue Tabelle an oder ersetzt sie, wenn sie bereits existiertPRIMARY KEY- Gewährleistet die eindeutige Identifizierung jedes DatensatzesNOT NULL- Verhindert Nullwerte in PflichtfeldernUNIQUE- Stellt sicher, dass E-Mail-Adressen nicht doppelt vorhanden sindTIMESTAMP_NTZ- Zeitstempel ohne ZeitzoneDEFAULT- Setzt automatisch den Zeitstempel der ErstellungBeispiel 2: Erstellen einer temporären Tabelle
Temporäre Tabellen sind ideal für die Verarbeitung von Zwischendaten. Hier ist ein Beispiel, das eine temporäre Tabelle für die Analyse von Kundenbestellungen erstellt:
Wichtige Punkte zu temporären Tabellen:
TEMPORARYgibt an, dass diese Tabelle nur innerhalb der aktuellen Sitzung existiert. Das bedeutet, dass andere Nutzer diese Tabelle nicht sehen oder darauf zugreifen können.CREATE TABLE AS(CTAS) kannst du eine Tabelle in einem einzigen Schritt erstellen und auffüllen, indem du die Tabellendefinition mit einer SELECT-Anweisung kombinierst.Beispiel 3: Erstellen einer externen Tabelle in Snowflake
In diesem Beispiel wird gezeigt, wie du eine externe Tabelle erstellst, die Daten aus Dateien liest, die in einem Cloud-Storage-Bucket gespeichert sind:
Die erste Anweisung definiert eine Dateiformatspezifikation, die Snowflake mitteilt, wie externe CSV-Dateien geparst werden sollen, einschließlich des Trennzeichens, der Header-Behandlung und der NULL-Wert-Darstellung.
Die zweite Anweisung erstellt ein Stage-Objekt, das mit den angegebenen Anmeldeinformationen eine Verbindung zu einem externen Cloud-Speicher (in diesem Fall S3) herstellt. Diese Stufe dient als Bezugspunkt für den Zugriff auf die externen Datendateien.
Die dritte Anweisung erstellt die externe Tabelle selbst, indem sie Spaltendefinitionen mit AS-Klauseln verwendet, um die rohen String-Daten aus der CSV-Datei explizit in die richtigen Snowflake-Datentypen umzuwandeln. Die WITH LOCATION-Klausel verweist auf den spezifischen Pfad innerhalb der Phase, in der sich die Dateien befinden.
Der PATTERN-Parameter filtert mit Hilfe von Regex-Matching, welche Dateien einbezogen werden sollen, und stellt sicher, dass nur CSV-Dateien verarbeitet werden.
Voraussetzungen für die Ausführung dieser Abfrage zur Erstellung externer Tabellen:
1. Zugriff auf ein Snowflake-Konto mit der Berechtigung:
2. Gültige AWS-Zugangsdaten (
AWS_KEY_IDundAWS_SECRET_KEY) mit Berechtigungen für:3. Anforderungen an die Quelldaten:
customer_idals Stringpurchase_dateals Datumproduct_idals Stringamountals Dezimalzahl4. Netzwerkkonnektivität:
5. Compute-Ressourcen:
Beispiel 4: Erstellen einer dynamischen Tabelle
In diesem Beispiel wird eine dynamische Tabelle erstellt, die eine aktuelle Zusammenfassung der Verkaufsdaten enthält:
Der Parameter
TARGET_LAGvon "20 Minuten" legt die maximal zulässige Verzögerung zwischen der Aktualisierung der Quelltabelle und der Übernahme dieser Änderungen in die dynamische Tabelle fest. Dadurch wird die Aktualität der Daten innerhalb dieses Zeitfensters sichergestellt.Der Parameter
WAREHOUSEgibt an, welche Rechenressourcen (in diesem FallCOMPUTE_WH) für die regelmäßige Aktualisierung der dynamischen Tabelle verwendet werden sollen. Dieses Lager muss über eine ausreichende Kapazität verfügen, um die Auffrischungsarbeiten durchzuführen.Die dynamische Tabelle aktualisiert ihren Inhalt automatisch, wenn sich die zugrunde liegende Tabelle
sales_transactionsändert, ohne dass ein manueller Eingriff erforderlich ist. Dies ermöglicht Analysen in nahezu Echtzeit.Indem die dynamische Tabelle nach Produktkategorien gruppierte, voraggregierte tägliche Umsatzzusammenfassungen bereithält, ermöglicht sie eine schnellere Abfrage im Vergleich zur Berechnung dieser Kennzahlen bei Bedarf aus den Rohdaten der Transaktionen. Dies verbessert die Abfrageleistung für Berichts- und Analysezwecke.
Jedes dieser Beispiele veranschaulicht verschiedene Szenarien für die Erstellung von Tabellen, die dir in der Praxis begegnen können. Denke daran, Spaltennamen, Datentypen und andere Parameter an deine spezifischen Bedürfnisse anzupassen.
Best Practices für die Erstellung von Tabellen in Snowflake
Im Folgenden werden einige Best Practices vorgestellt, die bei der Erstellung von Tabellen in Snowflake beachtet werden sollten, um Wartungsfreundlichkeit, Leistung und Datenqualität zu gewährleisten.
1. Namenskonventionen
Verwende immer klare, einheitliche Namen für deine Tabellen und Spalten:
Tipps zur Namensgebung:
dev_,test_,prod_)2. Spaltendatentypen
Wähle den richtigen Datentyp, um Speicherplatz zu sparen und die Leistung zu verbessern:
Gängige Datentypen, die du verwenden kannst:
NUMBER/INTEGER: Für ganze ZahlenDECIMAL/NUMERIC: Für präzise Dezimalzahlen (insbesondere Geld)VARCHAR: Für Text mit einer bekannten maximalen LängeTEXT: Für Text in unbegrenzter LängeTIMESTAMP_NTZ: Für Daten und Zeiten (keine Zeitzone)BOOLEAN: Für wahre/falsche Werte3. Verwendung von Clustering-Schlüsseln
Füge Clustering-Schlüssel hinzu, um die Abfrageleistung zu verbessern:
Wann sollte man Clustering einsetzen?
4. Hinzufügen von Tabellenbeschränkungen
Verwende Beschränkungen, um deine Daten sauber zu halten:
Wichtige Einschränkungen:
PRIMARY KEY: Für eindeutige IdentifikatorenFOREIGN KEY: Zur Verknüpfung von Tabellen untereinanderNOT NULL: Für PflichtfelderUNIQUE: Für Felder, die keine Duplikate haben dürfenCHECK: Für einfache Datenvalidierung5. Häufige Fehler, die du vermeiden solltest
Tu das nicht:
Mach stattdessen Folgendes:
Die verbesserte Version stellt die Datenintegrität mit einem Primärschlüssel sicher, verwendet korrekte Datentypen für Daten und Zahlen, um effizientes Filtern und Berechnen zu ermöglichen, und behält die Konsistenz der Spaltendefinitionen bei, um die Lesbarkeit und Kompatibilität zu verbessern.
6. Tipps zur Leistung
Die Optimierung der Leistung von Tabellen in Snowflake kann die Abfragegeschwindigkeit erheblich verbessern und die Speicherkosten senken. Befolge diese Best Practices, um sicherzustellen, dass deine Tabellen effizient und skalierbar sind.
7. Bewährte Sicherheitspraktiken
Angemessene Sicherheitsmaßnahmen sind wichtig, um sensible Daten zu schützen und den Zugang zu kontrollieren. Implementiere diese Best Practices, um deine Snowflake-Umgebung vor unbefugtem Zugriff und Datenverletzungen zu schützen.
Erinnere dich: Eine gut gestaltete Tabelle erleichtert dir später die Arbeit. Nimm dir Zeit, um die Struktur deiner Tabelle zu planen, bevor du sie erstellst!
Fazit
In diesem Tutorial haben wir uns mit den wichtigsten Aspekten der Erstellung von Tabellen in Snowflake beschäftigt:
Dieses Wissen bildet die Grundlage für den Aufbau effizienter und skalierbarer Datenlösungen in Snowflake.
Nächste Schritte
Um dein Snowflake-Know-how zu vertiefen, solltest du dir diese wertvollen Ressourcen ansehen:
1. Interaktive Kurse:
2. Umfassende Tutorials:
3. Karriere-Ressourcen:
Vergiss nicht, dass man am besten lernt, indem man etwas tut. Erstelle Tabellen, experimentiere mit verschiedenen Typen und baue echte Projekte. Wenn du auf Herausforderungen stößt, kannst du auf diese Ressourcen zurückgreifen und immer wieder neue Funktionen von Snowflake erkunden.