SnowConvert AI - Teradata - Types de données¶
Cette section montre les équivalents entre les types de données dans Teradata et dans Snowflake.
Table de conversion¶
Teradata |
Snowflake |
Remarques |
|---|---|---|
|
|
|
|
|
|
|
|
Limité à 8MB. |
|
|
|
|
|
|
|
|
|
|
|
Limité à 16MB. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Les intervalles sont stockés sous la forme |
|
|
Les intervalles sont stockés sous la forme |
|
|
Les intervalles sont stockés sous la forme |
|
|
Les intervalles sont stockés sous la forme |
|
|
Les intervalles sont stockés sous la forme |
|
|
<p>Les éléments à l’intérieur d’un JSON sont ordonnés par leurs clés lorsqu’ils sont insérés dans une table.<br>[Consultez <a href= »data-types.md#json-data-type »>note</a>].</p> |
|
|
Non pris en charge |
|
|
|
|
|
Les périodes sont stockées sous la forme de |
|
|
Les périodes sont stockées sous la forme de |
|
|
Les périodes sont stockées sous la forme de |
|
|
Les périodes sont stockées sous la forme de |
|
|
Les périodes sont stockées sous la forme de |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Un avertissement SSC-FDM-0005 est généré. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Remarques¶
Note
Voir la documentation sur les types de données Teradata
Types de données entiers¶
Pour la conversion des types de données entiers (INTEGER, SMALLINT et BIGINT), chaque type est converti en alias dans Snowflake avec le même nom. Chacun de ces alias est converti en NUMBER(38,0), un type de données considérablement plus grand que le type de données des entiers. Vous trouverez ci-dessous une comparaison de la gamme de valeurs pouvant être présentes dans chaque type de données :
Teradata
INTEGER: -2 147 483 648 à 2 147 483 647Teradata
SMALLINT: -32768 à 32767Teradata
BIGINT: -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807Snowflake
NUMBER(38,0): -99999999999999999999999999999999999999 à +99999999999999999999999999999999999999
Un avertissement SSC-EWI-0036 est généré.
Types de données relatifs aux intervalles/périodes¶
Les intervalles et les périodes sont stockés sous la forme d’une chaîne (VARCHAR) dans Snowflake. Lors de la conversion, SnowConvert AI crée un UDF qui recrée la même expression qu’une chaîne. Un avertissement SSC-EWI-TD0053 est généré.
Vous pouvez voir d’autres UDF dans le référentiel public des UDF actuellement créées par Snowflake SnowConvert.
Ces UDF supposent que les périodes sont stockées dans un VARCHAR où les parties données/temps sont séparées par un *. Par exemple, pour une période Teradata comme PERIOD('2018-01-01','2018-01-20'), elle devrait être stockée dans Snowflake sous la forme d’une VARCHAR comme '2018-01-01*2018-01-20'.
La seule exception à la transformation VARCHAR pour les intervalles sont les littéraux d’intervalles utilisés pour ajouter/soustraire des valeurs d’une expression Datetime, Snowflake n’a pas de type de données INTERVAL mais des constantes d’intervalles existent pour l’objectif spécifique mentionné. Exemples :
Code d’entrée :
SELECT TIMESTAMP '2018-05-13 10:30:45' + INTERVAL '10 05:30' DAY TO MINUTE;
Code de sortie :
SELECT
TIMESTAMP '2018-05-13 10:30:45' + INTERVAL '10 DAY, 05 HOUR, 30 MINUTE';
Les cas où l’intervalle est multiplié/divisé par une expression numérique sont transformés en appels de fonctions DATEADD équivalents :
Code d’entrée :
SELECT TIME '03:45:15' - INTERVAL '15:32:01' HOUR TO SECOND * 10;
Code de sortie :
SELECT
DATEADD('SECOND', 10 * -1, DATEADD('MINUTE', 10 * -32, DATEADD('HOUR', 10 * -15, TIME '03:45:15')));
Type de données JSON¶
Les éléments à l’intérieur d’un JSON sont classés par leurs clés lorsqu’ils sont insérés dans une table. Les résultats de la requête peuvent donc être différents. Toutefois, cela n’affecte pas l’ordre des tableaux à l’intérieur de JSON.
Par exemple, si le JSON original est :
{
"firstName":"Peter",
"lastName":"Andre",
"age":31,
"cities": ["Los Angeles", "Lima", "Buenos Aires"]
}
Utilisation de Snowflake PARSE_JSON() qui interprète une chaîne d’entrée comme un document JSON, produisant une valeur VARIANT. Le JSON inséré sera :
{
"age": 31,
"cities": ["Los Angeles", "Lima", "Buenos Aires"],
"firstName": "Peter",
"lastName": "Andre"
}
Notez que « âge » est désormais le premier élément. Toutefois, le tableau des « villes » conserve son ordre initial.
Problèmes connus ¶
Aucun problème n’a été constaté.