SnowConvert: Teradata¶
Was ist SnowConvert for Teradata?¶
SnowConvert ist eine Software, die Teradata SQL, BTEQ und andere Teradata-spezifische Skripte (wie Fastload-, Multiload-, TPump- und TPT-Dateien) versteht und diesen Quellcode in funktional gleichwertigen Snowflake-Code konvertiert.
Konvertierungstypen¶
Konkret führt SnowConvert for Teradata die folgenden Konvertierungen durch:
Teradata SQL zu Snowflake SQL¶
SnowConvert versteht den Teradata-Quellcode und konvertiert die Datendefinitionssprache (Data Definition Language, DDL), Datenbearbeitungssprache (Data Manipulation Language, DML) und Funktionen im Quellcode in das entsprechenden SQL im Ziel: Snowflake. SnowConvert kann den Quellcode in jeder der drei Erweiterungen .sql, .dml, .ddl migrieren
Gespeicherte Teradata-Prozeduren in JavaScript, das in Snowflake SQL eingebettet ist¶
SnowConvert akzeptiert gespeicherte Teradata-Prozeduren (in der Regeln in SQL geschrieben) und konvertiert sie in JavaScript, das in Snowflake SQL eingebettet ist. CREATE PROCEDURE und REPLACE PROCEDURE von Teradata werden durch CREATE OR REPLACE PROCEDURE von Snowflake ersetzt. JavaScript wird als Skriptsprache aufgerufen, und alle inneren Anweisungen werden in JavaScript konvertiert.
Konvertierung von Teradata BTEQ, Fastload, Multiload und TPT in Python¶
Basic Teradata Query (BTEQ) ist die proprietäre Skriptsprache von Teradata. Alle BTEQ-Skriptdateien werden in Python-Skripte konvertiert. Eine Hilfsklasse wird von den konvertierten Skripten aufgerufen, um die funktionale Gleichwertigkeit zwischen der Quelle und dem Ziel herzustellen. Weitere Informationen über die Python-Helfer finden Sie auf unserer Seite für die Übersetzungsreferenz. BTEQ kann außerhalb der Snowflake-Umgebung im Batch ausgeführt werden. Erfahren Sie mehr darüber, wie Sie Python-Skripte direkt mit Snowflake verbinden können.
BTEQ-Dateien sind auch die Grundlage für mehrere andere proprietäre Datentypen, die Teradata erstellt hat:
Fastload
Multiload
TPUMP
Jeder dieser Dateitypen ist eine Erweiterung von BTEQ. SnowConvert übersetzt jeden dieser Dateitypen in Python.
Jede dieser Konvertierungen ist so optimiert, dass Sie die funktional gleichwertigste Ausgabe für die Verwendung in Snowflake erhalten. Für weitere Informationen über die Leistungsfähigkeit der Art von Konvertierung, die SnowConvert bereitstellen kann, können Sie sich über unser Tool informieren, indem Sie unser vollständiges SQL-Referenzhandbuch öffnen.
SnowConvert-Terminologie¶
Bevor wir uns in der Magie dieser Codekonvertierungen verlieren, hier ein paar Begriffe/Definitionen, damit Sie wissen, was wir meinen, wenn wir sie in der gesamten Dokumentation verwenden:
SQL (Structured Query Language):_ Die Standardsprache zum Speichern, Bearbeiten und Abfragen von Daten in den meisten modernen Datenbankarchitekturen.
BTEQ (Batch Teradata Query):_ BTEQ war das erste Dienstprogramm und Abfragetool für Teradata.
TPT (Teradata Parallel Transporter): TPT ist ein Dienstprogramm der neuen Generation, das darauf abzielt, alle Aktivitäten im Zusammenhang mit dem Laden von Daten aus und dem Export der Daten in Teradata-Datenbanken zu erledigen.
SnowConvert_: die Software, die Ihre Teradata-Dateien sicher und automatisch in die Snowflake Cloud-Datenplattform konvertiert.
Konvertierungsregel oder Transformationsregel: Regeln, die es SnowConvert ermöglichen, einen Teil des Quellcodes in den erwarteten Zielcode zu konvertieren.
Parsen: Parsen oder Parsing ist ein erster Prozess, der von SnowConvert durchgeführt wird, um den Quellcode zu verstehen und eine interne Datenstruktur aufzubauen, um die Konvertierungsregeln zu verarbeiten.
Auf den nächsten Seiten erfahren Sie mehr über die Art von Konvertierungen, zu denen SnowConvert for Teradata in der Lage ist. Wenn Sie bereit sind, loszulegen, besuchen Sie die Seite Erste Schritte in dieser Dokumentation. Wenn Sie an weiteren Informationen über SnowConvert im Allgemeinen interessiert sind, besuchen Sie unsere Informationsseite SnowConvert for Teradata.
Übersetzungsbeispiel¶
Teradata SQL-Anweisung
-- 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;
Der konvertierte Snowflake SQL-Code:
-- 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;
In diesem konvertierten SQL werden Sie feststellen, dass wir viele Dinge konvertieren, wie z. B.:
Standardmäßiges Hinzufügen eines
PUBLIC
-Schemas für alle Tabellen- und Ansichtsnamen, wenn der Benutzer kein Schema angibt (erfahren sie, wie ein Schema angegeben wird).CREATE SET TABLE
inCREATE TABLE
REPLACE VIEW
inCREATE OR REPLACE VIEW
Datentypen:
BLOB
inBINARY
undINTERVAL
inVARCHAR
Datentypattribute:
NOT CASESPECIFIC
inCOLLATE
Entfernen von Teilen des Teradata SQL, die in Snowflake aufgrund der Architektur von Snowflake nicht erforderlich sind, wie
NO BEFORE JOURNAL
,NO AFTER JOURNAL
,CHECKSUM
,COMPRESS
undDEFAULT MERGEBLOCKRATIO
.