Skip to content

Snowflake-Datentypen: Der ultimative Leitfaden für effektives Datenmodellieren

Updated on

Snowflake, ein führender Akteur im Bereich des Cloud-Datenwarehousing, hat die Art und Weise verändert, wie Unternehmen ihre Daten verwalten. Mit seinen robusten Speicherfunktionen und flexiblen Skalierungsmöglichkeiten erfüllt Snowflake die sich ständig verändernden Marktanforderungen. Ein wichtiger Aspekt, der Snowflake auszeichnet, ist die Unterstützung einer breiten Palette von Datentypen. Das Verständnis dieser Datentypen ist entscheidend für ein effektives Datenmodellieren und die Manipulation von Daten in Snowflake.

In diesem Artikel werden wir in die Welt der Snowflake-Datentypen eintauchen. Wir werden untersuchen, was sie sind, wie sie funktionieren und die Unterschiede zwischen SQL- und Snowflake-Datentypen erläutern. Wir werden auch Beispiele für jeden Datentyp geben und erklären, wie Sie den Datentyp einer Spalte in Snowflake überprüfen können. Egal, ob Sie Anfänger oder erfahrener Datenexperte sind, dieser Leitfaden wird Ihnen helfen, sich in der Welt der Snowflake-Datentypen zurechtzufinden.

Möchten Sie Ihre Snowflake-Daten schnell visualisieren? Verwenden Sie RATH (opens in a new tab), um Ihre Snowflake-Datenbank einfach in interaktive Visualisierungen umzuwandeln! RATH ist ein KI-gesteuertes, automatisiertes Datenanalyse- und Datenvisualisierungstool, das von einer begeisterten Open-Source-Community unterstützt wird. Besuchen Sie RATH GitHub (opens in a new tab) für mehr Informationen. So können Sie Snowflake-Daten in RATH visualisieren:


Erfahren Sie mehr darüber, wie Sie Snowflake-Daten in RATH-Dokumenten visualisieren können.

Snowflake-Daten mit RATH visualisieren (opens in a new tab)

Verständnis der Snowflake-Datentypen

Snowflake unterstützt gängige SQL-Datentypen mit einigen Einschränkungen. Jede Spalte in einer Tabelle hat einen Namen und einen Datentyp, der Snowflake darüber informiert, wie viel physischen Speicherplatz der Spalte zugewiesen werden soll und in welcher Form die Daten gespeichert werden sollen. Tauchen wir ein in die verschiedenen Arten von Snowflake-Datentypen.

Numerische Datentypen in Snowflake

Snowflake unterstützt verschiedene numerische Datentypen, darunter NUMBER, DECIMAL, NUMERIC, INT, INTEGER, BIGINT, SMALLINT, FLOAT, FLOAT4, FLOAT8, DOUBLE, DOUBLE PRECISION und REAL. Jeder dieser Datentypen hat spezifische Präzisions- und Skalenparameter, die die Gesamtzahl der in einer Zahl erlaubten Ziffern und die Anzahl der Ziffern bestimmen, die nach dem Dezimalpunkt erscheinen können.

Beispielsweise wird der Datentyp NUMBER verwendet, um Ganzzahlen zu speichern und hat standardmäßig eine Präzision von 38 und eine Skala von 0. FLOAT hingegen unterstützt Double-Precision-IEEE-754-Gleitkommazahlen sowie spezielle Werte wie NaN (Not a Number), inf (Infinity) und -inf (negative Unendlichkeit).

Zeichenketten- und Binärdatentypen in Snowflake

Zeichenketten- und Binärdatentypen in Snowflake umfassen VARCHAR, CHAR, CHARACTER, STRING, TEXT, BINARY und VARBINARY. Der VARCHAR-Datentyp zum Beispiel speichert Unicode-Zeichen und hat eine maximale Länge von 16 MB. Der BINARY-Datentyp hingegen hat kein Konzept von Unicode-Zeichen, daher wird seine Länge immer in Bytes gemessen und hat eine maximale Länge von 8 MB.

Logische Datentypen in Snowflake

Der logische Datentyp in Snowflake ist BOOLEAN, der zwei Werte enthält: TRUE oder FALSE. Er kann auch einen "unknown" Wert haben, der als NULL angezeigt wird. Der BOOLEAN-Datentyp bietet die erforderliche Unterstützung für die Dreiwertige Logik.

Datums- und Zeitdatentypen in Snowflake

Snowflake bietet Unterstützung für die Verwaltung von Datum, Zeit und Zeitstempel durch verschiedene Datentypen wie DATE, DATETIME, TIME, TIMESTAMP, TIMESTAMP_LTZ, TIMESTAMP_NTZ und TIMESTAMP_TZ. Der DATE-Datentyp zum Beispiel ermöglicht Daten in den gängigsten Formaten (YYYY-MM-DD, DD-MON-YYYY usw.), während der TIMESTAMP_LTZ die UTC-Zeit mit der definierten Genauigkeit verfolgt.

Halbstrukturierte Datentypen in Snowflake

Halbstrukturierte Datentypen in Snowflake repräsentieren beliebige Datenstrukturen, die zum Laden und Bearbeiten von Daten wie JSON, Avro, ORC, Parquet oder XML verwendet werden können. Snowflake speichert diese intern in einer effizienten, komprimierten, spaltenorientierten binären Repräsentation, um Leistung und Effizienz zu verbessern.

Die halbstrukturierten Datentypen umfassen VARIANT, OBJECT und ARRAY. Der VARIANT-Datentyp ist ein universeller Datentyp, der verwendet werden kann, um Werte jeden anderen Typs, einschließlich OBJECT und ARRAY, zu speichern. Er kann Daten bis zu einer maximalen Größe von 16 MB speichern. Der OBJECT-Datentyp wird verwendet, um Sammlungen von Schlüssel-Wert-Paaren zu speichern, wobei der Schlüssel eine nicht leere Zeichenkette und der Wert vom VARIANT-Typ ist. Der ARRAY-Datentyp dient zur Darstellung dichter und dünn besetzter Arrays beliebiger Größe.

Geografische Datentypen in Snowflake

Snowflake führt den Datentyp GEOGRAPHY ein, der die Erde als perfekten Sphere modelliert, basierend auf dem WGS 84-Standard. Punkte auf der Erdoberfläche werden als Längengrade (-180 Grad bis +180 Grad) und Breitengrade (-90 bis +90) dargestellt. Die Höhe wird derzeit nicht unterstützt. Linienabschnitte werden als geodätische Bögen auf der Erdoberfläche interpretiert. Darüber hinaus bietet Snowflake geografische Funktionen, die auf dem GEOGRAPHY-Datentyp operieren. Der GEOGRAPHY-Datentyp unterstützt verschiedene geografische Objekte wie Punkt, MultiPoint, Linestring, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature und FeatureCollection.

Konvertierung von Datentypen in Snowflake

Die Konvertierung von Datentypen in Snowflake ist ein entscheidender Aspekt, den es zu verstehen gilt. Es ermöglicht die Konvertierung von Daten von einem Typ in einen anderen, was besonders nützlich sein kann, wenn Sie mit Daten aus verschiedenen Quellen arbeiten, die möglicherweise nicht dieselben Datentypen verwenden. Sie müssen beispielsweise möglicherweise einen String in eine Zahl oder ein Datum in einen String konvertieren. Snowflake stellt mehrere Funktionen zur Verfügung, um diese Konvertierungen durchzuführen, einschließlich CAST und TRY_CAST.

Überprüfung der Datentypen in Snowflake

In Snowflake können Sie den Datentyp einer Spalte mit der Ansicht INFORMATION_SCHEMA.COLUMNS überprüfen. Diese Ansicht enthält eine Zeile für jede Spalte in einer Tabelle und enthält eine Spalte mit dem Namen DATA_TYPE, die Ihnen den Datentyp jeder Spalte angibt. Hier ist ein Beispiel, wie Sie diese Ansicht verwenden können, um die Datentypen der Spalten in einer Tabelle mit dem Namen my_table zu überprüfen:

SELECT column_name, data_type
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'my_table';

Diese Abfrage liefert ein Ergebnis, das den Namen und den Datentyp jeder Spalte in my_table enthält.

Snowflake-Datentypen für Anfänger

Das Verständnis der Snowflake-Datentypen ist für jeden wichtig, der mit Snowflake arbeitet, egal ob Anfänger oder erfahrener Datenprofi. Hier sind vereinfachte Erklärungen einiger gängiger Snowflake-Datentypen:

  • NUMBER: Dieser Datentyp wird verwendet, um ganze Zahlen zu speichern. Zum Beispiel die Anzahl der Mitarbeiter in einem Unternehmen oder die Anzahl der verkauften Einheiten eines Produkts.

  • VARCHAR: Dieser Datentyp wird verwendet, um Text zu speichern. Zum Beispiel die Namen der Mitarbeiter oder die Namen der Produkte.

  • BOOLEAN: Dieser Datentyp wird verwendet, um Wahrheitswerte (true oder false) zu speichern. Zum Beispiel, ob ein Mitarbeiter Vollzeit oder nicht ist.

  • DATE: Dieser Datentyp wird verwendet, um Datumswerte zu speichern. Zum Beispiel das Einstellungsdatum eines Mitarbeiters oder das Verkaufsdatum eines Produkts.

  • TIMESTAMP: Dieser Datentyp wird verwendet, um Datum und Uhrzeit zu speichern. Zum Beispiel die genaue Uhrzeit eines Verkaufs.

Snowflake-SQL-Datentypen

Snowflake unterstützt eine Vielzahl von SQL-Datentypen, was es für Personen, die mit SQL vertraut sind, einfach macht, mit Snowflake zu arbeiten. Hier sind einige Beispiele dafür, wie Snowflakes Datentypen den SQL-Datentypen entsprechen:

  • INTEGER in SQL ist NUMBER in Snowflake: Beide werden verwendet, um ganze Zahlen zu speichern.

  • VARCHAR in SQL ist VARCHAR in Snowflake: Beide werden verwendet, um Text zu speichern.

  • BOOLEAN in SQL ist BOOLEAN in Snowflake: Beide werden verwendet, um Wahrheitswerte (true oder false) zu speichern.

  • DATE in SQL ist DATE in Snowflake: Beide werden verwendet, um Datumswerte zu speichern.

  • TIMESTAMP in SQL ist TIMESTAMP in Snowflake: Beide werden verwendet, um Datum und Uhrzeit zu speichern.

Snowflake-String-Datentypen

Snowflake bietet mehrere Datentypen für die Arbeit mit Zeichenketten, einschließlich VARCHAR, CHAR, CHARACTER, STRING und TEXT. Hier sind einige Beispiele dafür, wie Sie diese Datentypen verwenden könnten:

  • VARCHAR: Dieser Datentyp wird verwendet, um Text variabler Länge zu speichern. Sie könnten ihn zum Beispiel verwenden, um die Namen der Mitarbeiter in einem Unternehmen zu speichern.
CREATE TABLE employees (
  id NUMBER,
  name VARCHAR(100)
);
  • CHAR oder CHARACTER: Diese Datentypen werden verwendet, um Text fester Länge zu speichern. Sie könnten sie zum Beispiel verwenden, um die zweibuchstabigen Bundeslandcodes in einer Adresse zu speichern.
CREATE TABLE addresses (
  id NUMBER,
  state CHAR(2)
);
  • STRING oder TEXT: Diese Datentypen sind Synonyme für VARCHAR in Snowflake. Sie können sie genauso verwenden wie VARCHAR.

Snowflake-Numerische Datentypen

Snowflake bietet eine Vielzahl numerischer Datentypen, darunter NUMBER, DECIMAL, NUMERIC, INT, INTEGER, BIGINT, SMALLINT, FLOAT, FLOAT4, FLOAT8, DOUBLE, DOUBLE PRECISION und REAL. Hier sind einige Beispiele dafür, wie Sie diese Datentypen verwenden könnten:

  • NUMBER: Dieser Datentyp wird verwendet, um ganze Zahlen zu speichern. Sie könnten ihn zum Beispiel verwenden, um die Anzahl der verkauften Einheiten eines Produkts zu speichern.
CREATE TABLE sales (
  id NUMBER,
  units_sold NUMBER
);
  • DECIMAL oder NUMERIC: Diese Datentypen werden verwendet, um Zahlen mit Dezimalstellen zu speichern. Sie könnten sie zum Beispiel verwenden, um den Preis eines Produkts zu speichern.
CREATE TABLE products (
  id NUMBER,
  price DECIMAL(10, 2)
);
  • FLOAT oder DOUBLE: Diese Datentypen werden verwendet, um Gleitkommazahlen zu speichern. Sie könnten sie zum Beispiel verwenden, um das Gewicht eines Produkts zu speichern.
CREATE TABLE products (
  id NUMBER,
  weight FLOAT
);

Schlussfolgerung

Das Verständnis der Snowflake-Datentypen ist für jeden wichtig, der mit Snowflake arbeitet. Ob Sie ganze Zahlen, Text, Wahrheitswerte, Daten oder komplexere Datenstrukturen speichern, Snowflake hat einen Datentyp, der damit umgehen kann. Durch das Verständnis dieser Datentypen können Sie sicherstellen, dass Ihre Daten effizient und genau gespeichert werden, was Ihre Datenoperationen reibungsloser und effektiver macht.

FAQ

  1. Was sind Snowflake-Datentypen? Snowflake-Datentypen sind der spezifische Typ von Daten, der in Snowflake-Spalten gespeichert werden kann. Sie umfassen numerische Datentypen, Zeichenfolgendatentypen, logische Datentypen, Datums- und Zeitdatentypen, halbstrukturierte Datentypen und geografische Datentypen.

  2. Wie überprüfen Sie den Datentyp in Snowflake? Sie können den Datentyp einer Spalte in Snowflake mit der Ansicht INFORMATION_SCHEMA.COLUMNS überprüfen. Diese Ansicht enthält eine Zeile für jede Spalte in einer Tabelle und enthält eine Spalte mit dem Namen DATA_TYPE, die Ihnen den Datentyp jeder Spalte angibt.

  3. Was ist der Unterschied zwischen SQL- und Snowflake-Datentypen? Obwohl Snowflake eine Vielzahl von SQL-Datentypen unterstützt, gibt es einige Unterschiede. Beispielsweise entspricht der INTEGER-Datentyp in SQL dem NUMBER-Datentyp in Snowflake. Ebenso entsprechen die VARCHAR-, BOOLEAN-, DATE- und TIMESTAMP-Datentypen in SQL den gleichen Datentypen in Snowflake.