Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Details und Optionen für die Teradata-Migration

In diesem Dokument werden weitere Details, Optionen und Betafunktionen beschrieben, wenn Sie den BigQuery Data Transfer Service für die Migration der Daten von Teradata zu BigQuery verwenden.

Benutzerdefinierte Schemadatei

Transformationen mit einer Schemadatei erstellen

Im Rahmen der Migration können Sie eine benutzerdefinierte Schemadatei angeben, um die name-Felder eines beliebigen Objekts zu ändern, und das useType-Array zu jeder Spalte hinzufügen. Dies ist besonders nützlich, wenn Sie zusätzliche Informationen zu einer Tabelle hinzufügen möchten, z. B. die Partitionierung, die ansonsten bei der Migration verloren gehen würde, wenn keine Schemadatei angegeben wäre.

Die folgenden Nutzungstypen werden unterstützt:

  • PARTITIONING: Mit diesem usageType kann nur eine Spalte pro Tabelle annotiert werden. Das Typfeld einer Spalte muss DATE oder TIMESTAMP sein. Diese Spalte wird für die partitionierte Tabellendefinition verwendet, die ein tables-Objekt enthält.
  • CLUSTERING: Mit diesem usageType können mehrere Spalten in einer Tabelle annotiert werden. Die Spaltentypen sollten den Einschränkungen für das Clustering in BigQuery entsprechen. Wenn für eine Tabelle das Feld PARTITIONING angegeben ist, verwendet BigQuery diese Spalten zum Erstellen einer geclusterten Tabelle. Nur Spalten der Typen INT64, STRING, DATE, TIMESTAMP, BOOL, NUMERIC oder BIGNUMERIC (Vorschau) können Sie mit diesem usageType markiert werden.
  • COMMIT_TIMESTAMP: Mit diesem usageType kann nur eine Spalte pro Tabelle annotiert werden. Verwenden Sie diesen usageType, um eine Spalte mit dem Zeitstempel der Aktualisierung zu annotieren. Diese Spalte wird zum Extrahieren von Zeilen verwendet, die seit der letzten Übertragungsausführung erstellt oder aktualisiert wurden. Sie sollte vom Typ TIMESTAMP oder DATE sein.

Beispiel für eine benutzerdefinierte Schemadatei


{
  "databases": [
    {
      "name": "db",
      "originalName": "db",
      "tables": [
        {
          "name": "test",
          "originalName": "test",
          "columns": [
            {
              "name": "foo",
              "originalName": "foo",
              "type": "INT64",
              "usageType": ["CLUSTERING"]
            },
            {
              "name": "bar",
              "originalName": "bar",
              "type": "DATE",
              "usageType": ["PARTITIONING"]
            },
            {
              "name": "change",
              "originalName": "change",
              "type": "TIMESTAMP",
              "usageType": ["COMMIT_TIMESTAMP"]
            }
          ]
        }
      ]
    }
  ]
}

Weitere Informationen zum Partitionieren oder Clustern von Tabellen in einer Übertragung finden Sie im Abschnitt Inkrementelle Übertragungen.

Zuordnung der Datentypen von Teradata zu BigQuery

Teradata-Typ BigQuery-Typ Unterschied zwischen Typen
INTEGER INTEGER
SMALLINT INTEGER
BYTEINT INTEGER
BIGINT INTEGER
DECIMAL
NUMERIC
NUMBER
FLOAT
NUMERIC oder BIGNUMERIC Der NUMERIC-Typ in BigQuery hat eine Genauigkeit von 38 Ziffern und 9 Dezimalstellen. Der BIGNUMERIC-Typ in BigQuery (Vorschau) hat eine Genauigkeit von mehr als 76 Ziffern (die 77. Ziffer teilweise) und genau 38 Dezimalstellen.
REAL FLOAT64
CHAR STRING
CHARACTER STRING
VARCHAR STRING
CLOB STRING
JSON STRING
BLOB BYTES
BYTE BYTES
VARBYTE BYTES
DATE DATE
TIME
TIMETZ
TIME BigQuery TIME entspricht UTC. BigQuery Data Transfer Service extrahiert die entsprechenden Werte im UTC-Format.
TIMESTAMP
TIMESTAMPTZ
TIMESTAMP BigQuery TIMESTAMP ist in UTC. BigQuery Data Transfer Service extrahiert die entsprechenden Werte im UTC-Format.

TIMESTAMP-Genauigkeit ist auf Mikrosekunden beschränkt.
ARRAY STRING
MULTIDIMENSIONALARRAY STRING
HOUR INTEGER
MINUTE INTEGER
SECOND INTEGER
DAY INTEGER
MONTH INTEGER
YEAR INTEGER
PERIODDATE STRING
PERIODTIMESTAMPTZ STRING
PERIODTIMESTAMP STRING
PERIODTIME STRING
PERIODTIMETZ STRING
USERDEFINED STRING
XML STRING
ANYTYPE STRING

Inkrementelle Übertragungen

BigQuery Data Transfer Service unterstützt wiederkehrende, regelmäßige Übertragungen neuer und aktualisierter Zeilen ("inkrementelle Übertragungen"). Sie legen die Übertragung beim Einrichten einer Übertragung in den Planungsoptionen als On-Demand (einmalig) oder inkrementell fest.

Die Quelltabelle in Teradata muss eine Änderungsverfolgungsspalte vom Datentyp TIMESTAMP enthalten.

Bei inkrementellen Übertragungen erstellt die erste Übertragung immer einen Tabellen-Snapshot in BigQuery. Bei allen nachfolgenden Übertragungen werden neue und geänderte Daten in der vorhandenen Tabelle in BigQuery erfasst, übertragen und angehängt. Das bedeutet, dass für die geänderten Zeilen in BigQuery-Tabellen möglicherweise doppelte Zeilen mit alten und neuen Werten vorhanden sind.

Für jeden Übertragungsdurchlauf wird ein Zeitstempel des Übertragungsdurchlauf gespeichert. Für jede nachfolgende Übertragungsdurchlauf erhält ein Agent den Zeitstempel einer vorherigen Übertragungsdurchlauf (T1) und einen Zeitstempel für den Beginn der aktuellen Übertragungsdurchlauf (T2).

Der Migrations-Agent extrahiert Daten für jede Übertragung nach der ersten Ausführung mithilfe der folgenden Pro-Tabelle-Logik:

  • Wenn ein Tabellenobjekt in einer Schemadatei keine Spalte mit dem usageType COMMIT_TIMESTAMP enthält, wird die Tabelle übersprungen.
  • Wenn eine Tabelle eine Spalte mit dem Nutzungstyp COMMIT_TIMESTAMP enthält, werden alle Zeilen mit einem Zeitstempel zwischen T1 und T2 extrahiert und an die vorhandene Tabelle in BigQuery angehängt.

DDL-/DML-Vorgänge in inkrementellen Übertragungen

Teradata-Vorgang Typ Unterstützung für Teradata-zu-BigQuery
CREATE DDL Wenn der Tabellenname mit dem angegebenen Muster übereinstimmt, wird in BigQuery ein neuer vollständiger Snapshot für die Tabelle erstellt.
DROP DDL Nicht unterstützt
ALTER (RENAME) DDL Wenn ein Tabellenname mit dem angegebenen Muster übereinstimmt, wird in BigQuery ein neuer vollständiger Snapshot für die umbenannte Tabelle erstellt. Der vorherige Snapshot wird nicht aus BigQuery gelöscht. Der Nutzer wird nicht über die umbenannte Tabelle benachrichtigt.
INSERT DML Der übereinstimmenden BigQuery-Tabelle werden neue Zeilen hinzugefügt.
UPDATE DML Zeilen werden nicht geändert. Der entsprechenden BigQuery-Tabelle werden neue Zeilen hinzugefügt, z. B. INSERT. Zeilen aus vorherigen Übertragungen werden nicht aktualisiert oder gelöscht.
MERGE DML Nicht unterstützt. Siehe stattdessen INSERT, UPDATE und DELETE.
DELETE DML Nicht unterstützt

Nächste Schritte