SQL-Übersetzungen mithilfe von YAML-Konfigurationsdateien transformieren
In diesem Dokument erfahren Sie, wie Sie YAML-Konfigurationsdateien verwenden, um SQL-Code während der Migration zu BigQuery zu transformieren. Es enthält Richtlinien zum Erstellen Ihrer eigenen YAML-Konfigurationsdateien sowie Beispiele für verschiedene Übersetzungstransformationen, die von diesem Feature unterstützt werden.
Wenn Sie den interaktiven BigQuery-SQL-Übersetzer verwenden oder eine Batch-SQL-Übersetzung durchführen, können Sie YAML-Konfigurationsdateien bereitstellen, um eine SQL-Abfrageübersetzung zu ändern. Mithilfe von YAML-Konfigurationsdateien können Sie bei der Übersetzung von SQL-Abfragen aus Ihrer Quelldatenbank weitere Anpassungen vornehmen.
Sie können eine YAML-Konfigurationsdatei zur Verwendung in einer SQL-Übersetzung auf folgende Weisen angeben:
- Wenn Sie eine Batch-SQL-Übersetzung durchführen, platzieren Sie die YAML-Konfigurationsdatei im selben Cloud Storage-Bucket wie die SQL-Eingabedateien.
- Wenn Sie den interaktiven SQL-Übersetzer verwenden, geben Sie den Dateipfad zur Konfigurationsdatei oder zur Batchübersetzungsjob-ID in den Übersetzungseinstellungen an.
- Wenn Sie den Python-Client für die Batchübersetzung verwenden, platzieren Sie die YAML-Konfigurationsdatei im Eingabeordner für die lokale Übersetzung.
Der interaktive SQL-Übersetzer, der Batch-SQL-Übersetzer und der Python-Client für die Batchübersetzung unterstützen die Verwendung mehrerer YAML-Konfigurationsdateien in einem einzigen Übersetzungsjob. Weitere Informationen finden Sie unter Mehrere YAML-Konfigurationen anwenden.
Anforderungen an die YAML-Konfigurationsdatei
Prüfen Sie vor dem Erstellen einer YAML-Konfigurationsdatei die folgenden Informationen, um sicherzustellen, dass Ihre YAML-Datei für die Verwendung 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 zum 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
zum Transformieren eines Namensfalls verwendet:
type: object_rewriter
global:
case:
all: UPPERCASE
Entitätsauswahl
Für entitätsspezifische Transformationen geben Sie die Entität in der Konfigurationsdatei an. Alle match
-Attribute sind optional. verwenden Sie nur die für eine Transformation erforderlichen match
-Attribute. 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
-Attribute:
db
: Die Komponente "project_id".schema
: Die Dataset-Komponente.relation
: Die Tabellenkomponente.attribute
: Die Spaltenkomponente. Nur für die Attributauswahl gültigdbRegex
: 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 Gilt 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 und eine Teilmenge von Entitäten auszuwählen. Im folgenden Beispiel werden alle Beziehungen vom tmp_schema
-Schema in testdb
zu temporär geändert, solange ihr Name mit tmp_
beginnt:
type: object_rewriter
relation:
-
match:
schema: tmp_schema
relationRegex: "tmp_.*"
temporary: true
Bei den Literal- und regex
-Attributen wird die Groß- und Kleinschreibung nicht berücksichtigt.
Sie können die Groß- und Kleinschreibung berücksichtigen, indem Sie regex
mit einem deaktivierten i
-Flag verwenden, wie im folgenden Beispiel gezeigt:
match:
relationRegex: "(?-i:<actual_regex>)"
Sie können auch vollständig qualifizierte Entitäten mit einer entsprechenden Kurzstring-Syntax angeben. Eine Kurzstring-Syntax erwartet genau drei (für die Beziehungsauswahl) oder vier (für die Attributauswahl) durch Punkte getrennte Namenssegmente, wie im Beispiel testdb.acme.employee
. Die Segmente werden dann intern so interpretiert, als wären sie db
, schema
, relation
und attribute
respektive übergeben worden.
Das heißt, dass Namen exakt abgeglichen werden. Daher sind reguläre Ausdrücke in der abgekürzten Syntax nicht zulässig. Das folgende Beispiel zeigt die Verwendung der Kurzstring-Syntax zur Angabe einer voll 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 in einer abgekürzten Syntax angeben. In diesem Fall müssen Sie eine Objektübereinstimmung verwenden. Im folgenden Beispiel wird die Tabelle testdb.acme.stg.employee
zu 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, Entitäten abzugleichen, indem das Attribut db
in match
weggelassen wird.
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 verwenden, um Attributtyptransformationen durchzuführen, bei denen Sie den Datentyp einer Spalte vom Quelltyp in einen Zieltyp umwandeln. 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
Dieser Abschnitt enthält Beispiele zum Erstellen verschiedener YAML-Konfigurationsdateien für die Verwendung mit Ihren SQL-Übersetzungen. In jedem Beispiel wird die YAML-Syntax zum Transformieren Ihrer SQL-Übersetzung auf bestimmte Weisen beschrieben, und zwar mit einer kurzen Beschreibung.
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 wird auch testdb
als Standarddatenbank und testschema
als Schemasuchpfad verwendet.
Objektnamen ändern
Mit der folgenden YAML-Konfigurationsdatei wird die Groß- oder Kleinschreibung von Objektnamen geändert:
type: object_rewriter
global:
case:
all: UPPERCASE
database: LOWERCASE
attribute: LOWERCASE
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte 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 als temporär festlegen
Mit der folgenden YAML-Konfigurationsdatei wird eine reguläre Tabelle in eine temporäre Tabelle umgewandelt:
type: object_rewriter
relation:
-
match: "testdb.testschema.x"
temporary: true
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte 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 YAML-Konfigurationsdatei 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 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 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 YAML-Konfigurationsdatei werden der externe Speicherort und die Formatierung für eine 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 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 YAML-Konfigurationsdatei 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 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 YAML-Konfigurationsdatei 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 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-Konfigurationsdatei wird das Clustering-Schema einer Tabelle geändert:
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 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 YAML-Konfigurationsdatei 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 der unterstützten Zielattributtypen umwandeln.
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte 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, die auf in einem externen Data Lake gespeicherte Daten verweist. Der Data Lake wird durch eine Data-Lake-Verbindung angegeben.
type: object_rewriter
relation:
-
key: "testdb.acme.employee"
external:
connection_id: "connection_test"
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte 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 der BigQuery Migration Service die Codierung einer Datei falsch erkennt, können Sie die Zeichencodierung mit einer YAML-Konfigurationsdatei explizit angeben.
Die folgende YAML-Konfigurationsdatei 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
Die folgende YAML-Konfigurationsdatei ändert einen Datentyp in allen Skripts in einen anderen. Außerdem wird 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 Datentypkonvertierungen:
DATETIME
bisTIMESTAMP
TIMESTAMP
nachDATETIME
TIMESTAMP WITH TIME ZONE
nachDATETIME
CHAR
bisVARCHAR
Im folgenden Beispiel wandelt die YAML-Konfiguration den Datentyp DATETIME
in TIMESTAMP
um.
type: experimental_object_rewriter
global:
typeConvert:
timestamp: DATETIME
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte 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
(Standard)EXPAND
groupBy
und orderBy
unterstützen die folgenden Konfigurationen:
EXPRESSION
ALIAS
INDEX
Im folgenden Beispiel konfiguriert die YAML-Konfiguration die Sternprojektion auf EXPAND
.
type: experimental_statement_rewriter
select:
starProjection: EXPAND
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte 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-Konfigurationsdatei gibt die Signatur der benutzerdefinierten Funktionen (UDFs) an, die in den Quellskripts verwendet werden. Ähnlich wie Metadaten-ZIP-Dateien können UDF-Definitionen eine genauere Übersetzung von Eingabeskripts ermöglichen.
type: metadata
udfs:
- "date parse_short_date(dt int)"
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte 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 ; |
Strenge der Dezimalpräzision festlegen
Standardmäßig erhöht der 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 so aussehen:
teradata-input.sql |
create table x(a decimal(3,0)); |
bq-output.sql |
CREATE TABLE x ( a NUMERIC(3) ) ; |
Zuordnung von Ausgabenamen
Sie können die YAML-Konfigurationsdatei verwenden, um SQL-Objektnamen zuzuordnen. Sie können verschiedene Teile des Namens ändern, je nachdem, welches Objekt zugeordnet wird.
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 ein, die geändert werden müssen.
Mit der folgenden YAML-Konfigurationsdatei 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 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 neue Namen anhand der zugeordneten Objekte zu erstellen.
Mit der folgenden YAML-Konfigurationsdatei wird der Name aller Tabellen geändert. Dazu wird den Tabellen, die zum Schema staging
gehören, das Präfix stg_
hinzugefügt. Anschließend 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 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
Die folgende YAML-Konfigurationsdatei gibt eine Standarddatenbank und einen Schemasuchpfad an.
type: environment
session:
defaultDatabase: myproject
schemaSearchPath: [myschema1, myschema2]
Eine SQL-Übersetzung mit dieser YAML-Konfigurationsdatei könnte 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 YAML-Konfigurationsdatei 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 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 einzelnen Übersetzungsjob auswählen, um verschiedene Transformationen widerzuspiegeln. Wenn mehrere Konfigurationen in Konflikt stehen, kann eine Transformation eine andere überschreiben. Wir empfehlen, in jeder Datei unterschiedliche Konfigurationseinstellungen zu verwenden, um widersprüchliche 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 eine, um die Tabelle als temporär zu bestimmen:
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) ) ; |