Datentypen für Apache Iceberg™-Tabellen¶
Snowflake unterstützt die meisten der in der Apache Iceberg™-Spezifikation definierten Datentypen und schreibt Iceberg-Datentypen in Tabellendateien, sodass Ihre Iceberg-Tabellen über verschiedene Compute Engines hinweg interoperabel bleiben, wenn Sie Snowflake als Katalog verwenden.
Eine Übersicht zu den von Snowflake unterstützten Iceberg-Datentypen finden Sie unter Unterstützte Datentypen.
Ungefähre Typen¶
Wenn Ihre Tabelle einen Iceberg-Datentyp verwendet, für den Snowflake keine exakte Übereinstimmung unterstützt, verwendet Snowflake einen ungefähr übereinstimmenden Snowflake-Datentyp. Diese Typzuordnung betrifft Spaltenwerte von konvertierten Tabellen und Iceberg-Tabellen, die Snowflake als Katalog verwenden.
Betrachten Sie beispielsweise eine Tabelle mit einer Spalte vom Iceberg-Typ int. Snowflake verarbeitet die Spaltenwerte mit dem Snowflake-Datentyp NUMBER(10,0).
NUMBER(10,0) hat einen Bereich von (-9.999.999.999, +9.999.999.999), aber int hat einen engeren Bereich von (-2.147.483.648, +2.147.483.647). Wenn Sie versuchen, einen Wert von 3.000.000.000 in diese Spalte einzufügen, gibt Snowflake eine Fehlermeldung zurück, dass der Wert außerhalb des Bereichs liegt.
Weitere Informationen zu ungefähren Datentypen finden Sie in den Anmerkungen unter Unterstützte Datentypen.
Unterstützte Datentypen¶
Die Tabellen in diesem Abschnitt zeigen die Beziehung zwischen Iceberg-Datentypen und Snowflake-Datentypen. Es werden die folgenden Spalten verwendet:
- Iceberg-Typ:
Der in der Apache Iceberg-Spezifikation definierte Datentyp. Wenn Sie Snowflake als Katalog verwenden, schreibt Snowflake den Iceberg-Typ in Ihre Tabellendateien, sodass Ihre Tabellen über verschiedene Computemodule hinweg interoperabel bleiben.
- Snowflake-Typ:
Der Snowflake-Datentyp, der für die Verarbeitung und Rückgabe von Tabellendaten verwendet wird. Wenn Ihr Schema beispielsweise den Iceberg-Typ
timestampangibt, verarbeitet und liefert Snowflake Werte mit dem Snowflake-Datentyp TIMESTAMP_NTZ(6) mit Mikrosekundengenauigkeit.- Anmerkungen:
Zusätzliche Nutzungshinweise, einschließlich Hinweise zur Verwendung von ungefähren Datentypen.
Numerische Datentypen¶
Snowflake als Iceberg-Katalog¶
Die folgende Tabelle zeigt, wie die numerischen Datentypen von Iceberg den numerischen Datentypen von Snowflake für Tabellen zugeordnet werden, die Snowflake als Iceberg-Katalog verwenden (Snowflake-verwaltete Tabellen). Wenn Sie eine Snowflake-verwaltete Iceberg-Tabelle erstellen, können Sie Iceberg-Datentypen verwenden, um numerische Spalten zu definieren.
Iceberg-Datentyp |
Snowflake-Datentyp |
Anmerkungen |
|---|---|---|
|
Das Einfügen einer 10-stelligen Zahl, die kleiner als der minimale oder größer als der maximale 32-Bit-Wert einer vorzeichenbehafteten Ganzzahl ist, führt zu einem Out-of-Range-Fehler. |
|
|
Das Einfügen einer 19-stelligen Zahl, die kleiner als der minimale oder größer als der maximale 64-Bit-Wert einer vorzeichenbehafteten Ganzzahl ist, führt zu einem Out-of-Range-Fehler. |
|
|
Synonym für den Snowflake-Datentyp DOUBLE. Snowflake behandelt alle Gleitkommazahlen als doppeltgenaue 64-Bit-Gleitkommazahlen, schreibt aber Iceberg-Gleitkommazahlen als 32-Bit-Gleitkommazahlen in Tabellendateien. Eine Verengung der Konvertierung von 64 Bit auf 32 Bit führt zu einem Genauigkeitsverlust. Sie können |
|
|
Synonym für den Snowflake-Datentyp DOUBLE. Snowflake behandelt alle Gleitkommazahlen als doppeltgenaue 64-Bit-Gleitkommazahlen. Eine Verengung der Konvertierung von 64 Bit auf 32 Bit führt zu einem Genauigkeitsverlust. Sie können |
|
|
Die Angabe von |
Externer Katalog¶
Wenn Sie eine Iceberg-Tabelle erstellen, die einen externen Iceberg-Katalog verwendet, werden die numerischen Typen von Iceberg den numerischen Typen von Snowflake gemäß der folgenden Tabelle zugeordnet.
Iceberg-Datentyp |
Snowflake-Datentyp |
|---|---|
|
|
|
|
|
|
|
|
|
Bemerkung
Sie können float oder double nicht als Primärschlüssel verwenden (in Übereinstimmung mit der Apache Iceberg-Spezifikation).
Andere Datentypen¶
Bemerkung
Für nicht-numerische Datentypen geben Sie den Snowflake-Datentyp in Ihrer Tabellen-DDL an, wenn Sie Snowflake als Katalog verwenden (verwenden Sie z. B. ein strukturiertes ARRAY anstelle des Typs list). Snowflake ordnet jeden Snowflake-Typ automatisch dem entsprechenden Iceberg-Datentyp in den Metadaten der Tabelle zu, um die Interoperabilität mit externen Iceberg-Tools zu gewährleisten.
Iceberg-Datentyp |
Snowflake-Datentyp |
Anmerkungen |
|---|---|---|
|
||
|
||
|
Genauigkeit im Mikrosekundenbereich gemäß der Spezifikation der Apache Iceberg-Tabelle. |
|
|
Genauigkeit im Mikrosekundenbereich gemäß der Spezifikation der Apache Iceberg-Tabelle. Sie können auch den physischen Parquet-Typ |
|
|
Genauigkeit im Mikrosekundenbereich gemäß der Spezifikation der Apache Iceberg-Tabelle. Sie können auch den physischen Parquet-Typ |
|
|
Die Standardgröße ist 128 MB, und die einzige Größe, die Sie explizit angeben können, ist 134217728 (128 MB). |
|
|
||
|
Spalten vom strukturierten Typ unterstützen maximal 1.000 Unterspalten. |
|
|
Spalten vom strukturierten Typ unterstützen maximal 1.000 Unterspalten. |
|
|
Spalten vom strukturierten Typ unterstützen maximal 1.000 Unterspalten. |
Iceberg v3-Datentypen¶
Wichtig
Um Iceberg v3-Datentypen zu verwenden, müssen Sie die Version der Apache Iceberg™-Spezifikation, mit der Ihre Iceberg-Tabelle übereinstimmt, als 3 angeben. Weitere Informationen zum Angeben einer Version finden Sie unter Konfigurieren der Iceberg-Standardversion.
Die folgende Tabelle zeigt die Apache Iceberg™ v3-Datentypen, die Sie mit Iceberg-Tabellen verwenden können:
Iceberg-Datentyp |
Snowflake-Datentyp |
Anmerkungen |
|---|---|---|
|
|
Snowflake unterstützt die Datentyp GEOGRAPHY in Apache Iceberg™-Tabellen. Sie können eine von Snowflake verwaltete oder extern verwaltete Iceberg-Tabelle mit einer GEOGRAPHY-Spalte erstellen. Um eine Iceberg-Tabelle mit einer GEOGRAPHY-Spalte zu erstellen, verwenden Sie den Befehl CREATE ICEBERG TABLE. Vorsicht Iceberg verwendet das WKB-Format zum Speichern von geografischen Daten. Dieses Format kann nicht alle Daten darstellen, die in Snowflake GEOGRAPHY-Werten enthalten sein können. Die Für GEOGRAPHY-Objekte ist dieSRID immer 4326. |
|
|
Snowflake unterstützt die Datentyp GEOMETRY in Apache Iceberg™-Tabellen. Sie können eine von Snowflake verwaltete oder extern verwaltete Iceberg-Tabelle mit einer GEOMETRY-Spalte erstellen. Um eine Iceberg-Tabelle mit einer GEOMETRY-Spalte zu erstellen, verwenden Sie den Befehl CREATE ICEBERG TABLE. Bemerkung Alle GEOMETRY-Objekte in einer einzelnen Spalte müssen die gleiche SRID haben. |
|
|
Genauigkeit im Nanosekundenbereich gemäß der Spezifikation der Apache Iceberg-Tabelle. Keine Zeitzonensemantik („Wall-Clock“-Zeit). TIMESTAMP(9) wird zuerst entweder dem Snowflake-Typ TIMESTAMP_NTZ (9) oderTIMESTAMP_LTZ (9) zugeordnet, abhängig vom Wert des Snowflake-Parameters TIMESTAMP_TYPE_MAPPING. Dann wird er dem entsprechenden Iceberg-Datentyp zugeordnet. |
|
|
Genauigkeit im Nanosekundenbereich gemäß der Spezifikation der Apache Iceberg-Tabelle. In UTC gespeichert. TIMESTAMP(9) wird zuerst entweder dem Snowflake-Typ TIMESTAMP_NTZ (9) oderTIMESTAMP_LTZ (9) zugeordnet, abhängig vom Wert des Snowflake-Parameters TIMESTAMP_TYPE_MAPPING. Dann wird er dem entsprechenden Iceberg-Datentyp zugeordnet. |
|
Snowflake hat den VARIANT-Datentyp ursprünglich für Snowflake-Standardtabellen entwickelt. VARIANT bietet eine effiziente Binärcodierung für dynamische semistrukturierte Daten wie JSON, Avro, Protobuf, was die Arbeit mit Daten vereinfacht, die andere verschachtelte Datentypen enthalten. Weitere Informationen dazu finden Sie unter Semistrukturierte Datentypen und Introduction to loading semi-structured data. Zerlegung Snowflake bietet eine integrierte Zerlegung (auch Unterspaltenbildung ) für den VARIANT-Datentyp. Beim Zerlegen werden Felder aus einer Spalte vom Typ VARIANT in separate Felder extrahiert und in spaltenbasierter Form (Unterspalten) gespeichert, die Sie mit spezieller Notation durchlaufen und abfragen können. Snowflake verfolgt Metadaten und Statistiken für zerlegte Unterspalten, was ein Abtrennen für schnellere und effizientere Abfragen ermöglicht. Wenn Sie semistrukturierte Daten in eine VARIANT-Spalte einfügen, trennt Snowflake so viele der Daten wie möglich ab. Weitere Informationen dazu finden Sie unter Semistrukturierte Datendateien und Subkolumnarisierung. |
Hinweise zu den Iceberg v3-Datentypen¶
Beachten Sie bei der Verwendung der Iceberg v3-Datentypen Folgendes:
Zeitstempel im Nanosekundenbereich
Nutzungshinweise für den
nanosecond timestamps-Datentyp:Verwenden Sie TIMESTAMP_NTZ (9),TIMESTAMP_LTZ (9) oderTIMESTAMP (9) in CREATE ICEBERG TABLE- und:doc:
/sql-reference/sql/alter-iceberg-table-Anweisungen. Eine Dezimalstellenzahl von``9`` gibt einen neuen Iceberg-Nansekundentyp an. Eine Dezimalstellenzahl von6gibt weiterhin den alten Mikrosekundentyp an.Wenn eine Dezimalstellenzahl weggelassen wird, steuert der Parameter
ICEBERG_TIMESTAMP_DEFAULT_SCALEauf Sitzungsebene die Genauigkeit. Die Standardeinstellung bleibt aus Gründen der Kompatibilität bei6. Wenn Sie möchten, dass die Iceberg-Zeitstempelspalten standardmäßig auf Nanosekunden eingestellt sind, setzen Sie den Parameter auf9.Alle Standardtransformationen von Iceberg-Partitionen (z. B. Identität, Bucket, Jahr, Monat, Tag und Stunde) akzeptieren die neuen Nanosekundentypen genau so wie die Mikrosekundenvarianten.
Kompatibilität
Lesen/Schreiben: Lese- und Schreibvorgänge werden sowohl für von Snowflake verwaltete als auch für extern verwaltete Iceberg-Tabellen unterstützt.
Externe Tools: Es sind keine Konnektoränderungen erforderlich. Nanosekundenwerte werden bei Lese- und Schreibvorgängen als Iceberg-Standardwerte für
timestamp_nsund:code:timestamptz_nsverwendet.
VARIANT
Beachten Sie die folgenden Hinweise und Einschränkungen, wenn Sie den
VARIANT-Datentyp mit Iceberg-Tabellen verwenden:
Die normalen Überlegungen für Iceberg-Datentypen gelten für den VARIANT-Datentyp. Weitere Informationen dazu finden Sie unter Hinweise zur Arbeit mit Datentypen für Iceberg-Tabellen.
Die Schlüssel für Objekte in VARIANT-Spalten sollten vom Typ STRING sein.
Das Verwenden von Snowpipe oder COPYINTO zum Laden von Daten in Iceberg-Tabellen mit Variant-Spalten wird unterstützt. Snowpipe und COPYINTO kann jedoch nicht zum Laden von Daten in OBJECT-, ARRAY- oder MAP-Spalten verwendet werden, die eine verschachtelte Variant-Spalte enthalten.
Verschachtelte Varianten werden nicht unterstützt.
Siehe auch Hinweise zu in VARIANT gespeicherten semistrukturierten Daten.
Beispiele¶
Der folgende Abschnitt enthält Beispiele für die Iceberg v3-Datentypen.
GEOGRAPHY¶
Geben Sie zum Einfügen von Daten in eine GEOGRAPHY-Spalte die Eingabedaten an. Im folgenden Beispiel wird ein Geodatenobjekt, das als bekannter Text (WKT, Well-Known Text) definiert ist, in die geog-Spalte der geog_points-Tabelle eingefügt, die im vorherigen Beispiel erstellt wurde:
INSERT INTO geog_points
SELECT TO_GEOGRAPHY('POINT(-122.3861109 37.61637595)');
Sie können auch Geodaten einfügen, ohne explizit den GEOGRAPHY-Wert zu erstellen:
INSERT INTO geog_points
SELECT 'POINT(-122.3861109 37.61637595)';
GEOMETRY¶
Im folgenden Beispiel wird eine leere Iceberg-Tabelle erstellt, die eine einzelne GEOMETRY-Spalte mit dem Namen``geom`` mit der Standard-SRID 4326 enthält.
CREATE ICEBERG TABLE geo_points (geom GEOMETRY)
CATALOG = 'SNOWFLAKE'
EXTERNAL_VOLUME = 'my_external_volume'
BASE_LOCATION = 'us_states'
ICEBERG_VERSION = 3;
Sie können die SRID auch explizit in der DDL-Anweisung angeben. Im folgenden Beispiel wird die SRID auf 4269 festgelegt:
CREATE ICEBERG TABLE geo_points (geom GEOMETRY(4269))
CATALOG = 'SNOWFLAKE'
EXTERNAL_VOLUME = 'my_external_volume'
BASE_LOCATION = 'us_states'
ICEBERG_VERSION = 3;
Geben Sie zum Einfügen von Daten in eine GEOMETRY-Spalte die Eingabedaten an. Im folgenden Beispiel wird ein Geodatenobjekt, das als bekannter Text (WKT, Well-Known Text) definiert ist, in die geom-Spalte der geo_points-Tabelle eingefügt, die im vorherigen Beispiel erstellt wurde:
INSERT INTO geo_points
SELECT TO_GEOMETRY('POINT(-122.3861109 37.61637595)');
Sie können auch Geodaten einfügen, ohne explizit den GEOMETRY-Wert zu erstellen:
INSERT INTO geo_points
SELECT 'POINT(-122.3861109 37.61637595)';
Wenn die SRID nicht als Teil des GEOMETRY-Objekts verfügbar ist, können Sie sie explizit mit der Konstruktor-Funktion festlegen:
INSERT INTO geo_points
SELECT TO_GEOMETRY('POINT(-122.3861109 37.61637595)', 4326);
Zeitstempel im Nanosekundenbereich¶
Das folgende Beispiel erstellt eine verwaltete Iceberg-Tabelle mit Zeitstempeln im Nanosekundenbereich:
CREATE ICEBERG TABLE sensor_readings (
reading_ntz TIMESTAMP_NTZ(9),
reading_ltz TIMESTAMP_LTZ(9))
ICEBERG_VERSION = 3;
Für diese Anweisung führt Snowflake die folgenden Datentyp-Zuordnungen durch:
Der Datentyp der
reading_ntz-Spalte wird dem Iceberg v3-Datentyptimestamp_nszugeordnet.Der Datentyp der
reading_ltz-Spalte wird dem Iceberg v3-Datentyptimestamptz_nszugeordnet.
VARIANT¶
Sie können eine Iceberg-Tabelle mit einer VARIANT-Spalte mithilfe des Befehls CREATE ICEBERG TABLE erstellen.
Im folgenden Beispiel wird eine leere, von Snowflake verwaltete Iceberg-Tabelle erstellt, die eine einzelne VARIANT-Spalte mit dem Namen record enthält.
CREATE ICEBERG TABLE car_sales (record VARIANT)
CATALOG = 'SNOWFLAKE'
EXTERNAL_VOLUME = 'my_external_volume'
BASE_LOCATION = 'car_sales'
ICEBERG_VERSION = 3;
In ähnlicher Weise erstellt das folgende Beispiel eine leere, extern verwaltete Iceberg-Tabelle in einer mit dem Katalog verknüpften Datenbank, in die Snowflake schreiben kann.
USE DATABASE my_catalog_linked_db;
USE SCHEMA my_namespace;
CREATE ICEBERG TABLE car_sales (record VARIANT)
ICEBERG_VERSION = 3;
Zum Einfügen von Daten in eineVARIANT-Spalte geben Sie das Format der Eingabedaten an. Im folgenden Beispiel wird die PARSE_JSON-Funktion verwendet, um JSON-formatierte Daten in die record-Spalte der (zuvor erstellten) car_sales-Tabelle einzufügen.
INSERT INTO car_sales SELECT
PARSE_JSON(
'{
"date" : "2017-04-28",
"dealership" : "Valley View Auto Sales",
"salesperson" : {
"id": "55",
"name": "John Salesperson"
},
"customer" : [
{"name": "Alice Doe", "phone": "14151234567", "address": "San Francisco, CA"},
{"name": "Bob Doe", "phone": "14151234567", "address": "San Francisco, CA"}
],
"vehicle" : [
{"make": "Honda", "model": "Civic", "year": "2017", "price": "20275", "extras":["ext warranty", "paint protection"]}
]
}'
);
Das Ausführen einer SELECT * FROM-Anweisung für die Tabelle gibt die folgende Ausgabe zurück:
+--------------------------------------------+
| RECORD |
|--------------------------------------------|
| { |
| "customer": [ |
| { |
| "address": "San Francisco, CA", |
| "name": "Alice Doe", |
| "phone": "14151234567" |
| }, |
| { |
| "address": "San Francisco, CA", |
| "name": "Bob Doe", |
| "phone": "14151234567" |
| } |
| ], |
| "date": "2017-04-28", |
| "dealership": "Valley View Auto Sales", |
| "salesperson": { |
| "id": "55", |
| "name": "John Salesperson" |
| }, |
| "vehicle": [ |
| { |
| "extras": [ |
| "ext warranty", |
| "paint protection" |
| ], |
| "make": "Honda", |
| "model": "Civic", |
| "price": "20275", |
| "year": "2017" |
| } |
| ] |
| } |
+--------------------------------------------+
Zum Abfragen der Daten in einer VARIANT-Spalte können Sie die Punkt- oder Klammernotation verwenden, um auf Elemente zuzugreifen, die in den Daten verschachtelt sind.
Im folgenden Beispiel wird die Punktnotation verwendet, um die Namen aller Verkaufenden zu erhalten, die Autos verkauft haben. Da es nur eine Zeile in der Tabelle gibt, erzeugt die Abfrage einen einzigen Ergebniswert.
SELECT record:salesperson.name
FROM car_sales
ORDER BY 1;
Ausgabe:
+-------------------------+
| RECORD:SALESPERSON.NAME |
|-------------------------|
| "John Salesperson" |
+-------------------------+
Weitere Informationen zum Abfragen von semistrukturierten Daten finden Sie unter Abfragen von semistrukturierten Daten.
Bemerkung
Wenn Sie Apache Spark verwenden, um Iceberg-Tabellen mit Variant-Spalten zu lesen oder zu schreiben, müssen Sie die Version Apache Spark 4.0 oder höher verwenden, die Variant-Unterstützung bietet.
Variant-Spalten in von Snowflake verwalteten Iceberg-Tabellen können von Engines gelesen werden, die Iceberg Variant unterstützen, wie z. B. Apache Spark. Engines können von Snowflake verwaltete Iceberg v3-Tabellen über die Horizon IcebergREST Catalog API lesen.
spark.sql(""" SELECT variant_get(record, '$.customer[0].name', 'string') AS customer_1_name variant_get(record, '$.salesperson.name', 'string') AS name FROM CAR_SALES ORDER BY name """).show()
In ähnlicher Weise kann Snowflake extern verwaltete Iceberg-Tabellen, die Variant-Spalten enthalten, lesen oder schreiben.
Snowflake kann bei Bedarf Nullwerte in eine Tabelle schreiben.
Beispiel:
INSERT INTO my_table_new SELECT ARRAY_CONSTRUCT( OBJECT_CONSTRUCT_KEEP_NULL('field1', NULL, 'field2', 123) )::ARRAY(OBJECT(field1 STRING, field2 INT));
Delta-Datentypen¶
Die folgende Tabelle zeigt die Zuordnung von Delta-Datentypen zu Snowflake-Datentypen für Iceberg-Tabellen, die aus Delta-Tabellendateien erstellt wurden.
Deltatyp |
Snowflake-Datentyp |
Hinweis |
|---|---|---|
BINARY |
BINARY |
|
BOOLEAN |
BOOLEAN |
|
BYTE |
NUMBER(3,0) |
|
DATE |
DATE |
|
DECIMAL(P,S) |
NUMBER(P,S) |
|
DOUBLE |
REAL |
|
FLOAT |
REAL |
|
INTEGER |
NUMBER(10,0) |
|
LONG |
NUMBER(20,0) |
|
SHORT |
NUMBER(5,0) |
|
STRING |
TEXT |
|
TIMESTAMP |
TIMESTAMP_LTZ(6) |
Sie können auch den physischen Parquet-Typ |
TIMESTAMP_NTZ |
TIMESTAMP_NTZ(6) |
Die folgende Tabelle zeigt, wie die verschachtelten Delta-Datentypen den Snowflake-Datentypen zugeordnet werden.
Delta verschachtelter Typ |
Snowflake-Datentyp |
|---|---|
STRUCT |
|
ARRAY |
|
MAP |
Hinweise¶
Beachten Sie die folgenden Punkte, wenn Sie Datentypen für Iceberg-Tabellen verwenden:
Das Konvertieren einer Tabelle mit Spalten, die die folgenden Iceberg-Datentypen verwenden, wird nicht unterstützt:
uuidfixed(L)
Bei Tabellen, die Snowflake als Katalog verwenden, wird das Erstellen einer Tabelle, die den Iceberg-Datentyp
uuidverwendet, nicht unterstützt.Für Tabellen, die einen externen Katalog verwenden, können Sie keine Iceberg v3-Tabellen mit strukturierten Spalten erstellen, die OBJECT, ARRAY oder MAP enthalten. Sie können zum Beispiel nicht CREATE ICEBERG TABLE … AS SELECT (CTAS) verwenden, um eine extern verwaltete Iceberg v3-Tabelle mit strukturierten Spalten zu erstellen.
Sie können von Snowflake verwaltete Iceberg v3-Tabellen mit strukturierte Spalten erstellen.
Für alle Iceberg-Tabellentypen gilt:
Spalten vom strukturierten Typ unterstützen maximal 1.000 Unterspalten.
Iceberg unterstützt Mikrosekundengenauigkeit für Zeit- und Zeitstempeltypen. Folglich können Sie in Snowflake keine Iceberg-Tabelle erstellen, die eine andere Genauigkeit wie z. B. Millisekunden oder Nanosekunden verwendet.
Sie können
floatoderdoublenicht als Primärschlüssel verwenden (in Übereinstimmung mit der Apache Iceberg-Spezifikation).Bei Parquet-Dateien, die den logischen Typ
LISTverwenden, sollten Sie Folgendes beachten:Die dreistufige Anmerkungsstruktur mit dem Schlüsselwort
elementwird unterstützt. Weitere Informationen dazu finden Sie unter Definitionen für logische Parquet-Typen. Wenn Ihre Parquet-Datei ein veraltetes Format mit dem Schlüsselwortarrayverwendet, müssen Sie Ihre Daten auf der Grundlage des unterstützten Formats neu generieren.
Bei Tabellen, die aus Delta-Dateien erstellt wurden, sollten Sie Folgendes beachten:
Parquet-Dateien (Datendateien für Delta-Tabellen), die eines der folgenden Features oder Datentypen verwenden, werden nicht unterstützt:
Feld-IDs
Der Datentyp INTERVAL.
Der Datentyp DECIMAL mit einer Präzision von mehr als 38.
LIST oder MAP-Typen mit ein- oder zweistufiger Darstellung.
Ganzzahl-Typen ohne Vorzeichen (INT(vorzeichenbehaftet = falsch)).
Der Datentyp FLOAT16.
Sie können den physischen Parquet-Typ
int96für TIMESTAMP verwenden, aber Snowflake unterstütztint96nicht für TIMESTAMP_NTZ.