SnowConvert : Teradata¶
Qu’est-ce que SnowConvert pour Teradata ?¶
SnowConvert est un logiciel qui comprend les scripts Teradata SQL, BTEQ, et d’autres scripts propres à Teradata (tels que les fichiers Fastload, Multiload, TPump et TPT) et convertit ce code source en code Snowflake fonctionnellement équivalent.
Types de conversion¶
Plus précisément, SnowConvert pour Teradata effectue les conversions suivantes :
Teradata SQL vers Snowflake SQL¶
SnowConvert comprend le code source Teradata et convertit le langage de définition des données (DDL), le langage de manipulation des données (DML) et les fonctions du code source en SQL correspondants dans la cible : Snowflake. SnowConvert peut migrer le code source dans l’une de ces trois extensions . sql, .dml, ddl
Procédures stockées Teradata en procédures JavaScript intégrées dans Snowflake SQL¶
SnowConvert prend les procédures stockées Teradata (généralement écrites en SQL) et les convertit en procédures JavaScript intégrées dans Snowflake SQL. Le langage des commandes CREATE PROCEDURE et REPLACE PROCEDURE de Teradata est remplacé par le langage des commandes CREATE OR REPLACE PROCEDURE de Snowflake. JavaScript est appelé comme une langue de script, et toutes les instructions internes sont converties en JavaScript.
Teradata BTEQ, Fastload, Multiload, et TPT vers Python¶
Basic Teradata Query (BTEQ) est le langage de script propriétaire de Teradata. Tous les fichiers de script BTEQ seront convertis en scripts Python. Une classe d’assitant sera appelée à partir des scripts convertis pour créer l’équivalence fonctionnelle entre la source et la cible. Vous trouverez plus d’informations sur les aides Python sur notre page Référence à la traduction. BTEQ peut être exécuté en lot en dehors de l’environnement Snowflake. Découvrez comment vous pouvez connecter des scripts Python directement à Snowflake.
Les fichiers BTEQ constituent également la base de nombreux autres types de données propriétaires créés par Teradata :
Fastload
Multiload
TPUMP
Chacun de ces types de fichiers est une extension de BTEQ. SnowConvert traduit chacun de ces types de fichiers en Python.
Chacune de ces conversions est optimisée pour vous donner la sortie la plus équivalente sur le plan fonctionnel, prête à être utilisée dans Snowflake. Pour plus d’informations sur la puissance du type de conversion que SnowConvert peut fournir, découvrez notre outil en consultant notre Guide de référence SQL complet.
SnowConvert Terminologie¶
Avant de nous perdre dans la magie de ces conversions de code, voici quelques termes/définitions afin que vous sachiez de quoi nous parlons lorsque nous commençons à les utiliser dans la documentation :
SQL (Structured Query Language) : langage standard pour stocker, manipuler et récupérer des données dans la plupart des architectures de bases de données modernes.
BTEQ (Batch Teradata Query) : BTEQ a été le premier utilitaire et outil de requête pour Teradata.
TPT (Teradata Parallel Transporter) : TPT est un outil de nouvelle génération qui vise à créer un outil unique pour toutes les activités liées au chargement et à l’exportation de données depuis/vers les bases de données Teradata.
SnowConvert : logiciel qui convertit automatiquement et en toute sécurité vos fichiers Teradata vers la plateforme de données Cloud Snowflake.
Règle de conversion ou Règle de transformation : Règles qui permettent à SnowConvert de convertir une partie du code source en code cible attendu.
Analyser : L’analyse est un processus initial effectué par SnowConvert pour comprendre le code source et construire une structure de données interne pour traiter les règles de conversion.
Les pages suivantes vous permettront d’en savoir plus sur le type de conversion dont SnowConvert pour Teradata est capable. Si vous êtes prêt à commencer, visitez la page Prise en main de cette documentation. Si vous souhaitez obtenir plus d’informations sur SnowConvert en général, consultez notre page d’information SnowConvert pour Teradata.
Exemple de traduction¶
Instruction SQL Teradata
-- CREATE TABLE DDL
CREATE SET TABLE TABLE1,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
COL1 VARCHAR(15) CHARACTER SET LATIN NOT CASESPECIFIC,
Col2 BYTEINT CHECK ( CurrentFlag IN (0 ,1 ) ) NOT NULL,
COL3 DATE FORMAT 'yyyy-mm-dd',
COL4 BLOB(2097088000),
COL5 BYTEINT,
COL7 INTEGER NOT NULL COMPRESS (1 ,2 ,3 ,4),
COL8 INTERVAL HOUR(2) TO MINUTE
);
-- REPLACE VIEW DDL
REPLACE VIEW VIEW1 AS
SELECT * FROM TABLE1
UNION ALL
SELECT MAX(COL1) FROM TABLE1;
Code SQL Snowflake converti :
-- CREATE TABLE DDL
--** SSC-FDM-TD0024 - SET TABLE FUNCTIONALITY NOT SUPPORTED. TABLE MIGHT HAVE DUPLICATE ROWS **
CREATE OR REPLACE TABLE TABLE1
(
COL1 VARCHAR(15) COLLATE 'en-cs',
Col2 BYTEINT
!!!RESOLVE EWI!!! /*** SSC-EWI-0035 - CHECK STATEMENT NOT SUPPORTED ***/!!!
CHECK ( CurrentFlag IN (0 ,1 ) ) NOT NULL,
COL3 DATE,
COL4 BINARY /*** SSC-FDM-TD0001 - COLUMN CONVERTED FROM BLOB DATA TYPE ***/,
COL5 BYTEINT,
COL7 INTEGER NOT NULL,
COL8 VARCHAR(21) !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - INTERVAL HOUR(2) TO MINUTE DATA TYPE CONVERTED TO VARCHAR ***/!!!
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"teradata"}}'
;
-- REPLACE VIEW DDL
CREATE OR REPLACE VIEW VIEW1
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"teradata"}}'
AS
SELECT
* FROM
TABLE1
UNION ALL
SELECT
MAX(COL1) FROM
TABLE1;
Dans ce SQL converti, vous remarquerez que nous convertissons de nombreuses choses :
Ajout d’un schéma
PUBLIC
par défaut pour tous les noms de tables et de vues si l’utilisateur n’en spécifie pas (voir la section relative à la spécification d’un schéma).CREATE SET TABLE
àCREATE TABLE
REPLACE VIEW
àCREATE OR REPLACE VIEW
Types de données :
BLOB
àBINARY
etINTERVAL
àVARCHAR
Attributs du type de données :
NOT CASESPECIFIC
àCOLLATE
Suppression d’éléments de Teradata SQL qui ne sont pas nécessaires dans Snowflake en raison de l’architecture de Snowflake, tels que
NO BEFORE JOURNAL
,NO AFTER JOURNAL
,CHECKSUM
,COMPRESS
etDEFAULT MERGEBLOCKRATIO
.