SnowConvert : Types de données Teradata¶
Types de données¶
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
L’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 forme de chaîne (VARCHAR
) dans Snowflake. Lors de la conversion, SnowConvert crée une UDF qui recrée la même expression sous forme de chaîne. L’avertissement SSC-EWI-TD0053est 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é.