SnowConvert: Teradata Datentypen¶
Datentypen¶
Umrechnungstabelle¶
Teradata |
Snowflake |
Anmerkungen |
---|---|---|
|
|
|
|
|
|
|
|
Begrenzt auf 8MB. |
|
|
|
|
|
|
|
|
|
|
|
Begrenzt auf 16MB. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Intervalle werden in Snowflake als |
|
|
Intervalle werden in Snowflake als |
|
|
Intervalle werden in Snowflake als |
|
|
Intervalle werden in Snowflake als |
|
|
Intervalle werden in Snowflake als |
|
|
<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> |
|
|
Nicht unterstützt |
|
|
|
|
|
Perioden werden in Snowflake als |
|
|
Perioden werden in Snowflake als |
|
|
Perioden werden in Snowflake als |
|
|
Perioden werden in Snowflake als |
|
|
Perioden werden in Snowflake als |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.647Teradata
SMALLINT
: -32768 bis 32767Teradata
BIGINT
: -9,223,372,036,854,775,808 bis 9,223,372,036,854,775,807Snowflake
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;
Ausgabecode:
SELECT
TIMESTAMP '2018-05-13 10:30:45' + INTERVAL '10 DAY, 05 HOUR, 30 MINUTE';
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;
Ausgabecode:
SELECT
DATEADD('SECOND', 10 * -1, DATEADD('MINUTE', 10 * -32, DATEADD('HOUR', 10 * -15, TIME '03:45:15')));
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"]
}
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"
}
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.