SnowConvert: Teradata Datentypen

Datentypen

Umrechnungstabelle

Teradata

Snowflake

Anmerkungen

ARRAY

ARRAY

BIGINT

BIGINT

BIGINTin Snowflake ist ein Alias für NUMBER(38,0).[Lesen Sie die Anmerkung]

BLOB

BINARY

Begrenzt auf 8MB. BLOBwird nicht unterstützt, die Warnung [SSC-FDM-TD0001](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/teradataFDM. md#ssc-fdm-td0001) wird erzeugt

BYTE

BINARY

BYTEINT

BYTEINT

CHAR

CHAR

CLOB

VARCHAR

​Begrenzt auf 16MB. CLOBwird nicht unterstützt, die Warnung SSC-FDM-TD0002 wird erzeugt

DATE

DATE

DECIMAL

DECIMAL

DOUBLE PRECISION

DOUBLE PRECISION

FLOAT

FLOAT

INTEGER

INTEGER

INTEGER in Snowflake ist ein Alias für NUMBER(38,0). [Lesen Sie die Anmerkung]

INTERVAL DAY [TO HOUR | MINUTE | SECOND]

VARCHAR(20)

​Intervalle werden in Snowflake als VARCHAR gespeichert, außer wenn sie in Addition/Subtraktion verwendet werden. [Lesen Sie die Anmerkung].

INTERVAL HOUR [TO MINUTE | SECOND]

VARCHAR(20)

​Intervalle werden in Snowflake als VARCHAR gespeichert, außer wenn sie in Addition/Subtraktion verwendet werden. [Lesen Sie die Anmerkung].

INTERVAL MINUTE [TO SECOND]

VARCHAR(20)

​Intervalle werden in Snowflake als VARCHAR gespeichert, außer wenn sie in Addition/Subtraktion verwendet werden. [Lesen Sie die Anmerkung].

INTERVAL SECOND

VARCHAR(20)

​Intervalle werden in Snowflake als VARCHAR gespeichert, außer wenn sie in Addition/Subtraktion verwendet werden. [Lesen Sie die Anmerkung].

INTERVAL YEAR [TO SECOND]

VARCHAR(20)

​Intervalle werden in Snowflake als VARCHAR gespeichert, außer wenn sie in Addition/Subtraktion verwendet werden. [Lesen Sie die Anmerkung].

JSON

VARIANT

<p>Elemente innerhalb eines JSON werden beim Einfügen in eine Tabelle nach ihren Schlüsseln geordnet.<br>[Lesen Sie die <a href=“data-types.md#json-data-type“>Hinweis</a>] Anmerkung.</p>

MBR

---

Nicht unterstützt

NUMBER

NUMBER(38, 18)

PERIOD(DATE)

VARCHAR(24)

Perioden werden in Snowflake als VARCHAR gespeichert. [Lesen Sie die Anmerkung].

PERIOD(TIME)

VARCHAR(34)

Perioden werden in Snowflake als VARCHAR gespeichert. [Lesen Sie die Anmerkung].

PERIOD(TIME WITH TIME ZONE)

VARCHAR(46)

Perioden werden in Snowflake als VARCHAR gespeichert. [Lesen Sie die Anmerkung].

PERIOD(TIMESTAMP)

VARCHAR(58)

Perioden werden in Snowflake als VARCHAR gespeichert. [Lesen Sie die Anmerkung].

PERIOD(TIMESTAMP WITH TIME ZONE)

VARCHAR(58)

Perioden werden in Snowflake als VARCHAR gespeichert. [Lesen Sie die Anmerkung].

REAL

REAL

SMALLINT

​SMALLINT

SMALLINT in Snowflake ist ein Alias für NUMBER(38,0). [Lesen Sie die Anmerkung]

ST_GEOMETRY

GEOGRAPHY

TIME

TIME

TIME WITH TIME ZONE

TIME

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP_TZ

VARBYTE

BINARY

VARCHAR

VARCHAR

XML

VARIANT

Anmerkungen

Bemerkung

Siehe die Dokumentation zu Teradata Datentypen

Integer-Datentypen

Bei der Konvertierung von Integer-Datentypen (INTEGER, SMALLINT und BIGINT) wird jeder einzelne in den gleichnamigen Alias in Snowflake konvertiert. Jeder dieser Aliase konvertiert zu NUMBER(38,0), einem Datentyp, der wesentlich größer ist als der Datentyp Ganzzahl. Nachfolgend finden Sie einen Vergleich des Wertebereichs, der in jedem Datentyp vorhanden sein kann:

  • Teradata INTEGER: -2.147.483.648 bis 2.147.483.647

  • Teradata SMALLINT: -32768 bis 32767

  • Teradata BIGINT: -9,223,372,036,854,775,808 bis 9,223,372,036,854,775,807

  • Snowflake NUMBER(38,0): -99999999999999999999999999999999999999 to +99999999999999999999999999999999999999

Warnung [SSC-EWI-0036](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0036) wird erzeugt.

Intervall/Periode Datentypen

Intervalle und Perioden werden in Snowflake als Zeichenfolge (VARCHAR) gespeichert. Bei der Konvertierung erstellt SnowConvert eine UDF, die denselben Ausdruck als Zeichenfolge wiederherstellt. Warnung [SSC-EWI-TD0053](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/teradataEWI. md#ssc-ewi-td0053)wird erzeugt.

Sie können weitere UDFs im öffentlichen Repository von UDFs sehen, das derzeit von Snowflake SnowConvert erstellt wird.

Bei diesen UDFwird davon ausgegangen, dass die Zeiträume in einem VARCHAR gespeichert sind, wobei die Datums-/Zeitangaben durch ein * getrennt sind. Zum Beispiel sollte ein Teradata-Zeitraum wie PERIOD('2018-01-01','2018-01-20') in Snowflake als VARCHAR wie '2018-01-01*2018-01-20' gespeichert werden.

Die einzige Ausnahme von der VARCHAR-Transformation für Intervalle sind Intervall-Literale, die zum Addieren/Subtrahieren von Werten aus einem Ausdruck von Datum und Uhrzeit verwendet werden. Snowflake verfügt nicht über einen INTERVAL Datentyp, aber für den genannten Zweck gibt es Intervall-Konstanten. Beispiele:

Eingabecode:

 SELECT TIMESTAMP '2018-05-13 10:30:45' + INTERVAL '10 05:30' DAY TO MINUTE;
Copy

Ausgabecode:

 SELECT
TIMESTAMP '2018-05-13 10:30:45' + INTERVAL '10 DAY, 05 HOUR, 30 MINUTE';
Copy

Fälle, in denen das Intervall mit einem numerischen Ausdruck multipliziert/geteilt wird, werden stattdessen in entsprechende DATEADD Funktionsaufrufe umgewandelt:

Eingabecode:

 SELECT TIME '03:45:15' - INTERVAL '15:32:01' HOUR TO SECOND * 10;
Copy

Ausgabecode:

 SELECT
DATEADD('SECOND', 10 * -1, DATEADD('MINUTE', 10 * -32, DATEADD('HOUR', 10 * -15, TIME '03:45:15')));
Copy

JSON-Datentyp

Elemente innerhalb einer JSON werden beim Einfügen in eine Tabelle nach ihren Schlüsseln geordnet. Daher können die Abfrageergebnisse abweichen. Dies hat jedoch keinen Einfluss auf die Reihenfolge der Arrays innerhalb der JSON.

Wenn zum Beispiel das Original JSON lautet:

 { 
   "firstName":"Peter",
   "lastName":"Andre",
   "age":31,
   "cities": ["Los Angeles", "Lima", "Buenos Aires"]
}
Copy

Verwendung der Snowflake PARSE_JSON(), die eine Eingabezeichenfolge als JSON-Dokument interpretiert und einen VARIANT-Wert erzeugt. Die eingefügte JSON wird sein:

 { 
   "age": 31,
   "cities": ["Los Angeles", "Lima", "Buenos Aires"],
   "firstName": "Peter",
   "lastName": "Andre" 
}
Copy

Beachten Sie, dass „Alter“ jetzt das erste Element ist. Der Array der „Städte“ behält jedoch seine ursprüngliche Reihenfolge bei.

Bekannte Probleme

Es wurden keine Probleme gefunden.