SnowConvert AI – Hive – Datentypen¶
Snowflake unterstützt die meisten grundlegenden SQL-Datentypen (mit einigen Einschränkungen) bei Verwendung in Spalten, lokalen Variablen, Ausdrücken, Parametern und anderen geeigneten Orten.
Applies to
Hive SQL
Spark SQL
Databricks SQL
Exakte und ungefähre Zahlenangaben¶
| SparkSQL-DatabricksSQL | Snowflake | Notes |
|---|---|---|
| TINYINT, SHORT | SMALLINT | Snowflake's SMALLINT has a larger range (-32768 to +32767) than Spark's TINYINT (-128 to +127). This should generally be a safe transformation. |
| SMALLINT | SMALLINT | Direct equivalent in terms of range. |
| INT, INTEGER | INT, INTEGER | Direct equivalent in terms of range. |
| BIGINT | BIGINT | Direct equivalent in terms of range. |
| DECIMAL(p, s) | NUMBER(p, s) | Snowflake's NUMBER(p, s) is the direct equivalent for fixed-precision and scale numbers. p is the precision (total number of digits) and s is the scale (number of digits to the right of the decimal point). |
| NUMERIC(p, s) | NUMBER(p, s) | Synonym for DECIMAL(p, s), maps directly to Snowflake's NUMBER(p, s). |
| FLOAT | FLOAT | Direct equivalent in terms of range. |
| DOUBLE, DOUBLE PRECISION | DOUBLE | Generally a good equivalent for double-precision floating-point numbers. |
| REAL | REAL | If REAL in your Spark context is strictly single-precision, be mindful of potential precision differences. |
Datum und Uhrzeit ¶
Hive-Spark-Databricks SQL |
Snowflake |
Anmerkungen |
|---|---|---|
DATE |
DATE |
Direktes Äquivalent zum Speichern von Kalenderdaten (Jahr, Monat, Tag). |
TIMESTAMP |
TIMESTAMP_NTZ |
Snowflake bietet verschiedene Zeitstempelvarianten an. TIMESTAMP_NTZ (keine Zeitzone) ist oft das beste allgemeine Äquivalent , wenn TIMESTAMP in Spark keine spezifischen Zeitzoneninformationen aufweist, die an die Daten selbst gebunden sind. |
Zeichenfolgen ¶
Hive-Spark-Databricks SQL |
Snowflake |
Anmerkungen |
|---|---|---|
STRING |
VARCHAR |
VARCHAR von Snowflake ist der gebräuchlichste und flexibelste Zeichenfolgentyp. Er kann Zeichenfolgen variabler Länge speichern. |
VARCHAR(n) |
VARCHAR(n) |
Direktes Äquivalent für Zeichenfolgen variabler Länge mit einer maximalen Länge. |
CHAR(n) |
CHAR(n) |
Direktes Äquivalent für Zeichenfolgen fester Länge. |
Binäre Zeichenfolgen ¶
Hive-Spark-Databricks SQL |
Snowflake |
Anmerkungen |
|---|---|---|
BINARY |
BINARY |
Direktes Äquivalent zum Speichern von Raw-Bytesequenzen. |
Boolescher Typ ¶
Hive-Spark-Databricks SQL |
Snowflake |
Anmerkungen |
|---|---|---|
BOOLEAN, BOOL |
BOOLEAN |
Direktes Äquivalent zum Speichern von booleschen Werten (TRUE/FALSE). |
Komplexer Typ ¶
Hive-Spark-Databricks SQL |
Snowflake |
Anmerkungen |
|---|---|---|
ARRAY<DataType> |
ARRAY |
Der ARRAY-Typ von Snowflake kann geordnete Listen von Elementen eines bestimmten Datentyps speichern. Der „dataType“ innerhalb des Arrays sollte auch entsprechend zugeordnet sein. |
MAP<keyType, valueType> |
VARIANT |
|
STRUCT<name: dataType, …> |
VARIANT |
|
INTERVAL |
VARCHAR(30) |
Der INTERVAL-Datentyp wird in Snowflake nicht unterstützt. Stattdessen wird VARCHAR verwendet. |