SQL-Übersetzungen mit YAML-Konfigurationsdateien transformieren
In diesem Dokument erfahren Sie, wie Sie mit YAML-Konfigurationsdateien SQL-Code während der Migration zu BigQuery transformieren. Es enthält Richtlinien zum Erstellen eigener YAML-Konfigurationsdateien und Beispiele für verschiedene Übersetzungstransformationen, die von diesem Feature unterstützt werden.
Wenn Sie den interaktiven SQL-Übersetzer in BigQuery verwenden oder eine Batch-SQL-Übersetzung durchführen, können Sie YAML-Konfigurationsdateien angeben, um eine SQL-Abfrageübersetzung zu ändern. YAML-Konfigurationsdateien ermöglichen eine weitere Anpassung beim Übersetzen von SQL-Abfragen aus der Quelldatenbank.
Sie können eine YAML-Konfigurationsdatei für eine SQL-Übersetzung so angeben:
- Wenn Sie eine Batch-SQL-Übersetzung ausführen, platzieren Sie die Konfigurations-YAML im selben Cloud Storage-Bucket wie die Eingabe-SQL-Dateien.
- Wenn Sie den interaktiven SQL-Übersetzer verwenden, geben Sie den Dateipfad zur Konfigurationsdatei oder der Batchübersetzungsjob-ID in den Übersetzungseinstellungen an.
- Wenn Sie den Python-Client für die Batchübersetzung verwenden, legen Sie die YAML-Konfigurationsdatei im lokalen Ordner für die Übersetzung ab.
Der interaktive SQL-Übersetzer, der Batch-SQL-Übersetzer und der Batchübersetzungs-Python-Client unterstützen die Verwendung mehrerer YAML-Konfigurationsdateien in einem einzigen Übersetzungsjob. Weitere Informationen finden Sie unter Mehrere YAML-Konfigurationen anwenden.
Anforderungen an YAML-Konfigurationsdateien
Prüfen Sie vor dem Erstellen einer YAML-Konfigurationsdatei die folgenden Informationen, um sicherzustellen, dass Ihre YAML-Datei mit dem BigQuery-Migrationsdienst kompatibel ist:
- Sie müssen die YAML-Konfigurationsdateien in das Stammverzeichnis des Cloud Storage-Buckets hochladen, der Ihre Eingabedateien für die SQL-Übersetzung enthält. Informationen zum Erstellen von Buckets und zum Hochladen von Dateien in Cloud Storage erhalten Sie unter Buckets erstellen und Objekte aus einem Dateisystem hochladen.
- Die Dateigröße für eine einzelne YAML-Konfigurationsdatei darf 1 MB nicht überschreiten.
- Die Gesamtgröße aller YAML-Konfigurationsdateien, die in einem einzelnen SQL-Übersetzungsjob verwendet werden, darf 4 MB nicht überschreiten.
- Wenn Sie die
regex
-Syntax für den Namensabgleich verwenden, nutzen Sie RE2/J. - Alle YAML-Dateinamen für die Konfiguration müssen die Erweiterung
.config.yaml
haben, z. B.change-case.config.yaml
.config.yaml
allein ist kein gültiger Name für die Konfigurationsdatei.
Richtlinien für das Erstellen einer YAML-Konfigurationsdatei
Dieser Abschnitt enthält einige allgemeine Richtlinien zum Erstellen einer YAML-Konfigurationsdatei:
Header
Jede Konfigurationsdatei muss einen Header enthalten, der den Konfigurationstyp angibt. Mit dem Typ object_rewriter
werden SQL-Übersetzungen in einer YAML-Konfigurationsdatei angegeben. Im folgenden Beispiel wird der Typ object_rewriter
verwendet, um einen Namensfall zu transformieren:
type: object_rewriter
global:
case:
all: UPPERCASE
Entitätsauswahl
Wenn Sie entitätsspezifische Transformationen durchführen möchten, geben Sie die Entität in der Konfigurationsdatei an. Alle match
-Attribute sind optional. Verwenden Sie nur die match
-Attribute, die für eine Transformation erforderlich sind. In der folgenden YAML-Konfigurationsdatei werden Attribute enthüllt, die zugeordnet werden sollen, um bestimmte Entitäten auszuwählen:
match:
db: <literal_name>
schema: <literal_name>
relation: <literal_name>
attribute: <literal_name>
dbRegex: <regex>
schemaRegex: <regex>
relationRegex: <regex>
attributeRegex: <regex>
Beschreibung der einzelnen match
-Properties:
db
: die Projekt-ID-Komponente.schema
: Die Dataset-Komponente.relation
: Die Tabellenkomponente.attribute
: Spaltenkomponente Nur gültig für die AttributauswahldbRegex
: ordnetdb
-Attribut einem regulären Ausdruck (Vorschau) zu.schemaRegex
: ordnetschema
-Attribute regulären Ausdrücken zu (Vorschau).relationRegex
: ordnetrelation
-Attribute regulären Ausdrücken zu (Vorschau).attributeRegex
: ordnetattribute
-Attribute regulären Ausdrücken zu Nur gültig für die Attributauswahl (Vorschau).
Die folgende YAML-Konfigurationsdatei gibt beispielsweise die match
-Attribute an, um die Tabelle testdb.acme.employee
für eine temporäre Tabellentransformation auszuwählen.
type: object_rewriter
relation:
-
match:
db: testdb
schema: acme
relation: employee
temporary: true
Sie können die Attribute dbRegex
, schemaRegex
, relationRegex
und attributeRegex
verwenden, um reguläre Ausdrücke anzugeben, um einen Teil der Entitäten auszuwählen. Im folgenden Beispiel werden alle Beziehungen vom Schema tmp_schema
in testdb
zu temporären Änderungen geändert, solange ihr Name mit tmp_
beginnt:
type: object_rewriter
relation:
-
match:
schema: tmp_schema
relationRegex: "tmp_.*"
temporary: true
Bei den Attributen literal und regex
wird zwischen Groß- und Kleinschreibung unterschieden.
Sie können den Abgleich der Groß- und Kleinschreibung mithilfe eines regex
mit einem deaktivierten Flag i
erzwingen, wie im folgenden Beispiel gezeigt:
match:
relationRegex: "(?-i:<actual_regex>)"
Sie können auch vollständig qualifizierte Entitäten mithilfe einer entsprechenden Kurzstringsyntax angeben. Eine Kurzstring-Syntax erwartet genau 3 (für die Beziehungsauswahl) oder 4 (für die Attributauswahl) Namenssegmente, die durch Punkte getrennt sind, wie im Beispiel testdb.acme.employee
. Die Segmente werden dann intern so interpretiert, als würden sie als db
, schema
, relation
oder attribute
übergeben.
Dies bedeutet, dass Namen wörtlich abgeglichen werden. Daher sind reguläre Ausdrücke in Kurzsyntax nicht zulässig. Das folgende Beispiel zeigt die Verwendung der Kurzstringsyntax zur Angabe einer vollständig qualifizierten Entität in einer YAML-Konfigurationsdatei:
type: object_rewriter
relation:
-
match : "testdb.acme.employee"
temporary: true
Wenn eine Tabelle einen Punkt im Namen enthält, können Sie den Namen nicht mit einer kurzen Syntax angeben. In diesem Fall müssen Sie die Objektübereinstimmung verwenden. Im folgenden Beispiel wird die Tabelle testdb.acme.stg.employee
in „temporär“ geändert:
type: object_rewriter
relation:
-
match:
db: testdb
schema: acme
relation: stg.employee
temporary: true
Die YAML-Konfigurationsdatei akzeptiert key
als Alias für match
.
Standarddatenbank
Einige Eingabe-SQL-Dialekte, insbesondere Teradata, unterstützen database-name
im qualifizierten Namen nicht. In diesem Fall ist es am einfachsten, die Entitäten mit dem Attribut db
in match
auszuschließen.
Sie können jedoch das Attribut default_database
des BigQuery-Migrationsdienstes festlegen und diese Standarddatenbank in match
verwenden.
Unterstützte Zielattributtypen
Sie können die YAML-Konfigurationsdatei für Transformationen von Attributtypen verwenden, bei denen Sie den Datentyp einer Spalte vom Quelltyp in einen Zieltyp transformieren. Die YAML-Konfigurationsdatei unterstützt die folgenden Zieltypen:
BOOLEAN
TINYINT
SMALLINT
INTEGER
BIGINT
FLOAT
DOUBLE
NUMERIC
(Unterstützt optionale Genauigkeit und Skalierung, z. B.NUMERIC(18, 2)
)TIME
TIMETZ
DATE
DATETIME
TIMESTAMP
TIMESTAMPTZ
CHAR
(Unterstützt optionale Genauigkeit, z. B.CHAR(42)
)VARCHAR
(Unterstützt optionale Genauigkeit, z. B.VARCHAR(42)
)
YAML-Konfigurationsbeispiele
In diesem Abschnitt finden Sie Beispiele zum Erstellen verschiedener YAML-Konfigurationsdateien, die Sie mit Ihren SQL-Übersetzungen verwenden können. In jedem Beispiel wird die YAML-Syntax zum Transformieren der SQL-Übersetzung auf bestimmte Weise beschrieben. Außerdem wird eine kurze Beschreibung verwendet.
Jedes Beispiel enthält auch den Inhalt einer teradata-input.sql
- oder hive-input.sql
-Datei und einer bq-output.sql
-Datei, sodass Sie die Auswirkungen einer Konfigurations-YAML in einer BigQuery-SQL-Abfrageübersetzung vergleichen können.
In den folgenden Beispielen wird Teradata oder Hive als Eingabe-SQL-Dialekt und BigQuery SQL als Ausgabedialekt verwendet. In den folgenden Beispielen werden auch testdb
als Standarddatenbank und testschema
als Schemasuchpfad verwendet.
Groß-/Kleinschreibung bei Objektnamen ändern
Die folgende YAML-Konfiguration ändert die Groß- und Kleinschreibung von Objektnamen:
type: object_rewriter
global:
case:
all: UPPERCASE
database: LOWERCASE
attribute: LOWERCASE
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a int); select * from x; |
bq-output.sql |
CREATE TABLE testdb.TESTSCHEMA.X ( a INT64 ) ; SELECT X.a FROM testdb.TESTSCHEMA.X ; |
Tabelle temporär erstellen
Mit der folgenden Konfigurations-YAML-Datei wird eine reguläre Tabelle in eine temporäre Tabelle geändert:
type: object_rewriter
relation:
-
match: "testdb.testschema.x"
temporary: true
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a int); |
bq-output.sql |
CREATE TEMPORARY TABLE x ( a INT64 ) ; |
Tabelle sitzungsspezifisch machen
Mit der folgenden Konfigurations-YAML-Datei wird eine reguläre Tabelle in eine sitzungsspezifische Tabelle mit einer Ablaufzeit von 60 Sekunden geändert.
type: object_rewriter
relation:
-
match: "testdb.testschema.x"
ephemeral:
expireAfterSeconds: 60
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a int); |
bq-output.sql |
CREATE TABLE testdb.testschema.x ( a INT64 ) OPTIONS( expiration_timestamp=timestamp_add(current_timestamp(), interval 60 SECOND) ); |
Partitionsablauf festlegen
Mit der folgenden Konfigurations-YAML-Datei wird der Ablauf einer partitionierten Tabelle in 1 Tag geändert:
type: object_rewriter
relation:
-
match: "testdb.testschema.x"
partitionLifetime:
expireAfterSeconds: 86400
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a int, b int) partition by (a); |
bq-output.sql |
CREATE TABLE testdb.testschema.x ( a INT64, b INT64 ) CLUSTER BY a OPTIONS( partition_expiration_days=1 ); |
Externen Speicherort oder Format für eine Tabelle ändern
Mit der folgenden Konfigurations-YAML-Datei wird der externe Speicherort und die Formation einer Tabelle geändert:
type: object_rewriter
relation:
-
match: "testdb.testschema.x"
external:
locations: "gs://path/to/department/files"
format: ORC
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a int); |
bq-output.sql |
CREATE EXTERNAL TABLE testdb.testschema.x ( a INT64 ) OPTIONS( format='ORC', uris=[ 'gs://path/to/department/files' ] ); |
Tabellenbeschreibung festlegen oder ändern
Mit der folgenden Konfigurations-YAML wird die Beschreibung einer Tabelle festgelegt:
type: object_rewriter
relation:
-
match: "testdb.testschema.x"
description:
text: "Example description."
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a int); |
bq-output.sql |
CREATE TABLE testdb.testschema.x ( a INT64 ) OPTIONS( description='Example description.' ); |
Tabellenpartitionierung festlegen oder ändern
Mit der folgenden Konfigurations-YAML wird das Partitionierungsschema einer Tabelle geändert:
type: object_rewriter
relation:
-
match: "testdb.testschema.x"
partition:
simple:
add: [a]
-
match: "testdb.testschema.y"
partition:
simple:
remove: [a]
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a date, b int); create table y(a date, b int) partition by (a); |
bq-output.sql |
CREATE TABLE testdb.testschema.x ( a DATE, b INT64 ) PARTITION BY a; CREATE TABLE testdb.testschema.y ( a DATE, b INT64 ) ; |
Tabellen-Clustering festlegen oder ändern
Mit der folgenden YAML-Konfiguration ändert sich das Clustering-Schema einer Tabelle:
type: object_rewriter
relation:
-
match: "testdb.testschema.x"
clustering:
add: [a]
-
match: "testdb.testschema.y"
clustering:
remove: [b]
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
hive-input.sql |
create table x(a int, b int); create table y(a int, b int) clustered by (b) into 16 buckets; |
bq-output.sql |
CREATE TABLE testdb.testschema.x ( a INT64, b INT64 ) CLUSTER BY a; CREATE TABLE testdb.testschema.y ( a INT64, b INT64 ) ; |
Typ eines Spaltenattributs ändern
Mit der folgenden Konfigurations-YAML-Datei wird der Datentyp für ein Attribut einer Spalte geändert:
type: object_rewriter
attribute:
-
match:
db: testdb
schema: testschema
attributeRegex: "a+"
type:
target: NUMERIC(10,2)
Sie können den Quelldatentyp in einen beliebigen unterstützten Zielattributtyp umwandeln.
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a int, b int, aa int); |
bq-output.sql |
CREATE TABLE testdb.testschema.x ( a NUMERIC(31, 2), b INT64, aa NUMERIC(31, 2) ) ; |
Verbindung zum externen Data Lake hinzufügen
Mit der folgenden YAML-Konfigurationsdatei wird die Quelltabelle als externe Tabelle gekennzeichnet. Diese verweist auf Daten, die in einem externen Data Lake gespeichert sind und durch eine Data-Lake-Verbindung angegeben werden.
type: object_rewriter
relation:
-
key: "testdb.acme.employee"
external:
connection_id: "connection_test"
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
hive-input.sql |
CREATE TABLE x ( a VARCHAR(150), b INT ); |
bq-output.sql |
CREATE EXTERNAL TABLE x ( a STRING, b INT64 ) WITH CONNECTION `connection_test` OPTIONS( ); |
Zeichencodierung einer Eingabedatei ändern
Standardmäßig versucht der BigQuery Migration Service, die Zeichencodierung von Eingabedateien automatisch zu erkennen. Wenn BigQuery Migration Service die Codierung einer Datei falsch identifiziert, können Sie die YAML-Konfigurationsdatei verwenden, um die Zeichencodierung explizit anzugeben.
Die folgende Konfigurations-YAML gibt die explizite Zeichencodierung der Eingabedatei als ISO-8859-1
an.
type: experimental_input_formats
formats:
- source:
pathGlob: "*.sql"
contents:
raw:
charset: iso-8859-1
Globale Typkonvertierung
Mit der folgenden YAML-Konfigurationsdatei wird ein Datentyp in allen Skripts zu einem anderen geändert und ein Quelldatentyp angegeben, der im transpilierten Skript vermieden werden soll. Dies unterscheidet sich von der Konfiguration Spaltenattributstyp ändern, bei der nur der Datentyp für ein einzelnes Attribut geändert wird.
BigQuery unterstützt die folgenden Datentyp-Konvertierungen:
DATETIME
bisTIMESTAMP
TIMESTAMP
nachDATETIME
TIMESTAMP WITH TIME ZONE
nachDATETIME
CHAR
bisVARCHAR
Im folgenden Beispiel konvertiert die YAML-Konfigurationsdatei den Datentyp DATETIME
in TIMESTAMP
.
type: experimental_object_rewriter
global:
typeConvert:
timestamp: DATETIME
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a timestamp); |
bq-output.sql |
CREATE TABLE x ( a TIMESTAMP ) ; |
Anweisungsänderung auswählen
Mit der folgenden YAML-Konfigurationsdatei werden die Klauseln „Sternprojektion“, GROUP BY
und ORDER BY
in SELECT
-Anweisungen geändert.
starProjection
unterstützt die folgenden Konfigurationen:
ALLOW
PRESERVE
(Standardeinstellung)EXPAND
groupBy
und orderBy
unterstützen die folgenden Konfigurationen:
EXPRESSION
ALIAS
INDEX
Im folgenden Beispiel konfiguriert die YAML-Konfigurationsdatei die Sternprojektion auf EXPAND
.
type: experimental_statement_rewriter
select:
starProjection: EXPAND
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a int, b TIMESTAMP); select * from x; |
bq-output.sql |
CREATE TABLE x ( a INT64, b DATETIME ) ; SELECT x.a x.b FROM x ; |
UDF-Spezifikation
Die folgende YAML-Konfiguration gibt die Signatur von benutzerdefinierten Funktionen (UDFs) an, die in den Quellskripts verwendet werden. Ähnlich wie Metadaten-ZIP-Dateien können UDF-Definitionen für eine genauere Übersetzung von Eingabeskripts beitragen.
type: metadata
udfs:
- "date parse_short_date(dt int)"
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(dt int); select parse_short_date(dt) + 1 from x; |
bq-output.sql |
CREATE TABLE x ( dt INT64 ) ; SELECT date_add(parse_short_date(x.dt), interval 1 DAY) FROM x ; |
Strengheit mit Dezimalgenauigkeit festlegen
Standardmäßig erhöht BigQuery Migration Service die numerische Genauigkeit auf die höchste Genauigkeit, die für eine bestimmte Skalierung verfügbar ist. Das folgende Konfigurations-YAML überschreibt dieses Verhalten, indem die Genauigkeitsstriktheit so konfiguriert wird, dass die Dezimalgenauigkeit der Quellanweisung beibehalten wird.
type: experimental_statement_rewriter
common:
decimalPrecision: STRICT
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table x(a decimal(3,0)); |
bq-output.sql |
CREATE TABLE x ( a NUMERIC(3) ) ; |
Zuordnung des Ausgabenamens
Sie können die YAML-Konfigurationsdatei verwenden, um SQL-Objektnamen zuzuordnen. Je nach zugeordnetem Objekt können Sie verschiedene Teile des Namens ändern.
Zuordnung statischer Namen
Verwenden Sie die statische Namenszuordnung, um den Namen einer Entität zuzuordnen. Wenn Sie nur bestimmte Teile des Namens ändern, aber andere Teile des Namens beibehalten möchten, fügen Sie nur die Teile hinzu, die geändert werden müssen.
Mit der folgenden Konfigurations-YAML wird der Name der Tabelle von my_db.my_schema.my_table
in my_new_db.my_schema.my_new_table
geändert.
type: experimental_object_rewriter
relation:
-
match: "my_db.my_schema.my_table"
outputName:
database: "my_new_db"
relation: "my_new_table"
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table my_db.my_schema.my_table(a int); |
bq-output.sql |
CREATE TABLE my_new_db.my_schema.my_new_table ( a INT64 ) |
Dynamische Namenszuordnung
Verwenden Sie die dynamische Namenszuordnung, um mehrere Objekte gleichzeitig zu ändern, und erstellen Sie neue Namen basierend auf den zugeordneten Objekten.
Mit der folgenden YAML-Konfigurationsdatei wird der Name aller Tabellen geändert. Dabei wird das Präfix stg_
zu den Tabellen hinzugefügt, die zum Schema staging
gehören, und dann werden diese Tabellen in das Schema production
verschoben.
type: experimental_object_rewriter
relation:
-
match:
schema: staging
outputName:
schema: production
relation: "stg_${relation}"
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table staging.my_table(a int); |
bq-output.sql |
CREATE TABLE production.stg_my_table ( a INT64 ) ; |
Standard-Datenbank und Schemasuchepfad angeben
In der folgenden YAML-Konfigurationsdatei werden eine Standarddatenbank und ein Schemasuchpfad angegeben.
type: environment
session:
defaultDatabase: myproject
schemaSearchPath: [myschema1, myschema2]
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
SELECT * FROM database.table SELECT * FROM table1 |
bq-output.sql |
SELECT * FROM myproject.database.table. SELECT * FROM myproject.myschema1.table1 |
Umschreibung des globalen Ausgabenamens
Mit der folgenden Konfigurations-YAML werden die Ausgabenamen aller Objekte (Datenbank, Schema, Beziehung und Attribute) im Skript gemäß den konfigurierten Regeln geändert.
type: experimental_object_rewriter
global:
outputName:
regex:
- match: '\s'
replaceWith: '_'
- match: '>='
replaceWith: 'gte'
- match: '^[^a-zA-Z_].*'
replaceWith: '_$0'
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte in etwa so aussehen:
teradata-input.sql |
create table "test special chars >= 12"("42eid" int, "custom column" varchar(10)); |
bq-output.sql |
CREATE TABLE test_special_chars_employees_gte_12 ( _42eid INT64, custom_column STRING ) ; |
Mehrere YAML-Konfigurationen anwenden
Wenn Sie eine YAML-Konfigurationsdatei in einer Batch- oder interaktiven SQL-Übersetzung angeben, können Sie mehrere YAML-Konfigurationsdateien in einem einzigen Übersetzungsjob auswählen, um mehrere Transformationen widerzuspiegeln. Wenn mehrere Konfigurationen in Konflikt stehen, wird eine Transformation möglicherweise durch eine andere überschrieben. Wir empfehlen, in jeder Datei verschiedene Arten von Konfigurationseinstellungen zu verwenden, um Konflikte mit Transformationen im selben Übersetzungsjob zu vermeiden.
Im folgenden Beispiel werden zwei separate YAML-Konfigurationsdateien aufgelistet, die für einen einzelnen SQL-Übersetzungsjob bereitgestellt wurden. Eine zum Ändern des Attributs einer Spalte und die andere zum Festlegen der Tabelle als temporärer Job:
change-type-example.config.yaml
:
type: object_rewriter
attribute:
-
match: "testdb.testschema.x.a"
type:
target: NUMERIC(10,2)
make-temp-example.config.yaml
:
type: object_rewriter
relation:
-
match: "testdb.testschema.x"
temporary: true
Eine SQL-Übersetzung mit diesen beiden YAML-Konfigurationsdateien könnte so aussehen:
teradata-input.sql |
create table x(a int); |
bq-output.sql |
CREATE TEMPORARY TABLE x ( a NUMERIC(31, 2) ) ; |