Freigeben über


Konfigurieren von Teradata in einer Kopieraktivität

In diesem Artikel wird beschrieben, wie Sie die Kopieraktivität in einer Pipeline verwenden, um Daten aus und in Teradata zu kopieren.

Unterstützte Konfiguration

Die Konfiguration der einzelnen Registerkarten unter der Copy-Aktivität finden Sie in den folgenden Abschnitten.

Allgemein

Wechseln Sie für die Konfiguration der Registerkarte "Allgemein " zu " Allgemein".

Quelle

Tipp

Weitere Informationen zum effizienten Laden von Daten aus Teradata mithilfe der Datenpartitionierung finden Sie im Abschnitt "Parallel copy from Teradata ".

Die folgenden Eigenschaften werden für Teradata auf der Registerkarte " Quelle " einer Kopieraktivität unterstützt.

Screenshot zeigt die Quell-Tab und die Liste der Eigenschaften.

Die folgenden Eigenschaften sind erforderlich:

  • Verbindung: Wählen Sie eine Teradata-Verbindung aus der Verbindungsliste aus. Wenn keine Verbindung vorhanden ist, erstellen Sie eine neue Teradata-Verbindung.

  • Verwenden Sie die Abfrage: Tabelle oder Abfrage auswählen.

    • Wenn Sie "Tabelle" auswählen:

      • Tabelle: Geben Sie den Namen der Tabelle in den Teradata an, um Daten zu lesen. Wählen Sie die Tabelle aus der Dropdownliste aus, oder drücken Sie manuell die EINGABETASTE , um den Schema- und Tabellennamen einzugeben.
    • Wenn Sie "Abfrage" auswählen:

      • Abfrage: Geben Sie die benutzerdefinierte SQL-Abfrage an, um Daten zu lesen.

        Screenshot der Abfrage.

Unter "Erweitert" können Sie die folgenden Felder angeben:

  • Partitionsoption: Gibt die Datenpartitionierungsoptionen an, die zum Laden von Daten aus Teradata verwendet werden. Zulässige Werte sind: None (Standard), DynamicRange und Hash. Wenn eine Partitionsoption aktiviert ist (d. h. nicht None), wird der Grad der Parallelität zum gleichzeitigen Laden von Daten aus Teradata durch den Grad der Kopierparallelität auf der Registerkarte "Kopieraktivitätseinstellungen" gesteuert.

    • Keine: Wählen Sie diese Einstellung aus, um keine Partition zu verwenden.

    • Dynamischer Bereich: Wenn Sie eine Abfrage mit parallel aktivierter Funktion verwenden, wird der Bereichspartitionsparameter(?DfDynamicRangePartitionCondition) benötigt. Beispielabfrage: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • Partitionsspaltenname: Geben Sie den Namen der Quellspalte im Integer- oder Date/Datetime-Typ (int, smallint, bigint, date, smalldatetime, datetime, datetime2 oder datetimeoffset) an, die von der Bereichspartitionierung für parallele Kopie verwendet wird. Wenn nichts angegeben wurde, wird der Index oder der Primärschlüssel der Tabelle automatisch erkannt und als Partitionsspalte verwendet.

      • Partition obere Grenze: Geben Sie den Maximalwert der Partitionsspalte für die Partitionsbereichsteilung an. Dieser Wert wird verwendet, um den Partitionsschritt zu bestimmen, nicht zum Filtern der Zeilen in der Tabelle. Alle Zeilen im Tabellen- oder Abfrageergebnis werden partitioniert und kopiert.

      • Partition untere Grenze: Geben Sie den Minimalwert der Partitionsspalte für die Partitionsbereichsteilung an. Dieser Wert wird verwendet, um den Partitionsschritt zu bestimmen, nicht zum Filtern der Zeilen in der Tabelle. Alle Zeilen im Tabellen- oder Abfrageergebnis werden partitioniert und kopiert.

        Screenshot mit dynamischem Bereich.

    • Hash: Bei Verwendung der Abfrage mit parallel aktivierter Hashpartition () sind Hashpartitionsparameter (?AdfHashPartitionCondition) erforderlich. Beispielabfrage: select * from <TableName> where ?AdfHashPartitionCondition.

      • Partitionsspaltenname: Geben Sie den Namen der Quellspalte im Integer- oder Date/Datetime-Typ (int, smallint, bigint, date, smalldatetime, datetime, datetime2 oder datetimeoffset) an, die von der Bereichspartitionierung für parallele Kopie verwendet wird. Wenn nichts angegeben wurde, wird der Index oder der Primärschlüssel der Tabelle automatisch erkannt und als Partitionsspalte verwendet.

        Screenshot mit Hash.

  • Zusätzliche Spalten: Fügen Sie weitere Datenspalten hinzu, um den relativen Pfad oder statischen Wert von Quelldateien zu speichern. Für Letzteres wird ein Ausdruck unterstützt.

Bestimmungsort

Die folgenden Eigenschaften werden für Teradata auf der Registerkarte "Ziel " einer Kopieraktivität unterstützt.

Screenshot, der die Zielregisterkarte zeigt.

Die folgenden Eigenschaften sind erforderlich:

  • Verbindung: Wählen Sie eine Teradata-Verbindung aus der Verbindungsliste aus. Wenn keine Verbindung vorhanden ist, erstellen Sie eine neue Teradata-Verbindung.

  • Tabelle: Geben Sie den Namen der Tabelle in Teradata an, um Daten zu schreiben. Wählen Sie die Tabelle aus der Dropdownliste aus, oder drücken Sie manuell die EINGABETASTE , um den Schema- und Tabellennamen einzugeben.

Unter "Erweitert" können Sie die folgenden Felder angeben:

  • Zusätzliche Teradata-Formatoptionen: Geben Sie zusätzliche Formatoptionen an, die in COPY-Anweisung zum Laden von Daten verwendet werden. Beispiele: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Weitere Informationen finden Sie im Datumsformat von Teradata. Diese Eigenschaft funktioniert nur bei der direkten Kopie aus dem DelimitedText-Format-Quelltext nach Teradata.

Direkte Kopie in Teradata

Wenn Ihr Quelldatenspeicher und -format den in diesem Abschnitt beschriebenen Kriterien entsprechen, können Sie die Kopieraktivität verwenden, um direkt aus der Quelle in Teradata zu kopieren. Der Dienst überprüft die Einstellungen und gibt bei der Copy-Aktivitätsausführung einen Fehler aus, wenn die folgenden Kriterien nicht erfüllt werden:

  • Die Quellverbindung ist Azure Blob Storage und Azure Data Lake Storage Gen2 mit Kontoschlüssel und Authentifizierung für gemeinsame Zugriffssignaturen .

  • Das Quelldatenformat ist Parquet und DelimitedText mit den folgenden Konfigurationen:

    • Für das Parquet-Format ist der Komprimierungscodec None oder Snappy.

    • Für das Format DelimitedText (Durch Trennzeichen getrennter Text):

      • rowDelimiter ist \n.
      • compression kann keine Komprimierung oder gzip sein. Wenn Gzip-Komprimierung ausgewählt ist, muss die Datei mit der Erweiterung .gz enden.
      • encodingName ist entweder auf den Standardwert belassen oder auf UTF-8 festgelegt.
      • quoteChar ist doppelte Anführungszeichen" oder leere Zeichenfolge.
      • escapeChar ist doppelte Anführungszeichen" oder leere Zeichenfolge.
      • nullValue ist NULL oder leere Zeichenfolge.
  • In der Quelle der Copy-Aktivität:

    • Nur statischer Pfad ist zulässig, wenn Azure Data Lake Storage Gen2 verwendet wird.
    • Nur statischer Pfad und prefix ist bei Verwendung von Azure Blob Storage zulässig.

    Statische Pfade dienen als Präfixe, wenn sie in Teradata kopiert werden.

Gestufte Kopie zu Teradata

Wenn Ihr Quelldatenspeicher oder -format nicht nativ mit dem Befehl "Teradata COPY" kompatibel ist, wie im letzten Abschnitt erwähnt, aktivieren Sie die integrierte mehrstufige Kopie mithilfe einer zwischengespeicherten Azure Blob Storage-Instanz. Das Feature für gestaffeltes Kopieren bietet Ihnen auch einen höheren Durchsatz. Der Dienst konvertiert die Daten automatisch, um die Datenformatanforderungen von Teradata zu erfüllen. Anschließend wird der Befehl KOPIEREN aufgerufen, um Daten in Teradata zu laden. Abschließend werden Sie die temporären Daten in Blob Storage bereinigt.

Um diese Funktion verwenden zu können, erstellen Sie eine mit Azure Blob Storage-Verbindung, die auf das Azure Storage-Konto als Staging-Zwischenspeicher verweist. Geben Sie dann die Eigenschaften enableStaging und stagingSettings in der Kopieraktivität an.

Hinweis

Die Staging-Azure Blob Storage-Verbindung muss kontoschlüssel - oder freigegebene Zugriffssignaturauthentifizierung verwenden, wie vom Befehl "Teradata COPY" erforderlich.

Kartierung

Wechseln Sie zur Registerkarte "Zuordnung" und konfigurieren Sie Ihre Zuordnungen unter der Registerkarte „Zuordnung konfigurieren“.

Einstellungen

Wechseln Sie für die Konfiguration der Registerkarte "Einstellungen " auf der Registerkarte "Einstellungen" zu "Andere Einstellungen konfigurieren".

Parallele Kopie aus Teradata

Der Teradata-Connector bietet integrierte Datenpartitionierung, um Daten aus Teradata parallel zu kopieren. Sie finden die Optionen für die Datenpartitionierung in der Quelltabelle der Kopieraktivität.

Wenn Sie partitionierte Kopie aktivieren, führt der Dienst parallele Abfragen für Ihre Teradata-Quelle aus, um Daten nach Partitionen zu laden. Der parallele Grad wird durch den Grad der Kopierparallelität auf der Registerkarte "Kopieraktivitätseinstellungen" gesteuert. Wenn Sie z. B. den Grad der Kopierparallelität auf vier festlegen, generiert der Dienst gleichzeitig vier Abfragen basierend auf Ihrer angegebenen Partitionsoption und -einstellungen, und jede Abfrage ruft einen Teil von Daten aus Ihren Teradata ab.

Sie werden empfohlen, parallele Kopie mit Datenpartitionierung zu aktivieren, insbesondere wenn Sie eine große Menge von Daten aus Ihren Teradata laden. Im Anschluss finden Sie empfohlene Konfigurationen für verschiedene Szenarien. Beim Kopieren von Daten in einen dateibasierten Datenspeicher wird empfohlen, mehrere Dateien in einen Ordner zu schreiben (nur den Ordnernamen anzugeben). In diesem Fall ist die Leistung besser als beim Schreiben in eine einzelne Datei.

Scenario Empfohlene Einstellungen
Vollständiges Laden aus einer großen Tabelle. Partitionsoption: Hash.

Während der Ausführung erkennt der Dienst automatisch die primäre Indexspalte, wendet einen Hash darauf an und kopiert Daten nach Partitionen.
Laden Sie große Datenmengen mithilfe einer benutzerdefinierten Abfrage. Partitionsoption: Hash.
Abfrage: SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>.
Partitionsspalte: Geben Sie die Spalte an, die für die Anwendung der Hashpartition verwendet wird. Wenn nicht angegeben, erkennt der Dienst automatisch die PK-Spalte der Tabelle, die Sie in den Teradata-Daten angegeben haben.

Während der Ausführung ersetzt der Dienst ?AdfHashPartitionCondition durch die Hashpartitionslogik und sendet diese an Teradata.
Laden Sie große Datenmengen mithilfe einer benutzerdefinierten Abfrage, wobei eine Ganzzahlspalte mit gleichmäßig verteilten Werten für die Bereichspartitionierung vorhanden ist. Partitionsoptionen: Partition des dynamischen Bereichs.
Abfrage: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Partitionsspalte: Geben Sie die Spalte an, die zum Partitionieren von Daten verwendet wird. Die Partitionierung kann auf der Grundlage der Spalte mit dem Datentyp „Integer“ erfolgen.
Obergrenze der Partition und Untergrenze der Partition: Geben Sie an, ob Sie nach der Partitionsspalte filtern möchten, um Daten nur zwischen der Unter- und Obergrenze abzurufen.

Während der Ausführung ersetzt der Dienst ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound und ?AdfRangePartitionLowbound durch den tatsächlichen Spaltennamen und die Wertbereiche für jede Partition und sendet diese an Teradata.
Wenn Ihre Partitionsspalte "ID" beispielsweise mit der unteren Grenze 1 und der oberen Grenze 80 festgelegt ist und der parallele Kopiervorgang auf 4 gesetzt ist, ruft der Dienst Daten in 4 Partitionen ab. Die ID-Bereiche sehen dann wie folgt aus: [1–20], [21–40], [41–60] und [61–80].

Beispiel: Abfrage mit Hashpartition

"source": {
    "type": "TeradataSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "Hash",
    "partitionSettings": {
        "partitionColumnName": "<hash_partition_column_name>"
    }
}

Beispiel: Abfrage mit dynamischer Bereichspartition

"source": {
    "type": "TeradataSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<dynamic_range_partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column>",
        "partitionLowerBound": "<lower_value_of_partition_column>"
    }
}

Tabellenzusammenfassung

Die folgenden Tabellen enthalten weitere Informationen zu einer Kopieraktivität in einem Teradata.The following tables contain more information about a copy activity in a Teradata.

Quellinformationen

Name Description Wert Erforderlich JSON-Skripteigenschaft
Verbindung Ihre Verbindung zum Quelldatenspeicher. < Ihre Teradata-Verbindung > Yes connection
Abfrage verwenden Die Möglichkeit zum Lesen von Daten aus Teradata. Wenden Sie Tabelle an, um Daten aus der angegebenen Tabelle zu lesen, oder wenden Sie Abfrage zum Lesen von Daten mithilfe von Abfragen an. Tabelle
Abfrage
Nein /
Für Tabelle
Schemaname Name des Schemas. < Ihr Schemaname > Nein schema
Tabellenname Name der Tabelle. < Der Tabellenname > Nein Tisch
Für Abfrage
Abfrage Verwenden Sie die benutzerdefinierte SQL-Abfrage, um Daten zu lesen. < SQL-Abfragen > Nein Anfrage
Partitionsoption Die Datenpartitionierungsoptionen zum Laden von Daten aus Teradata. Keine
Dynamischer Bereich
Hash
Nein /
Für dynamischen Bereich
Partitionsspaltenname Geben Sie den Namen der Quellspalte im Ganzzahl- oder Datum/Datetime-Typ (int, smallint, bigint, date, smalldatetime, datetime, datetime2 oder datetimeoffset) an, die für die Bereichspartitionierung zur parallelen Kopie verwendet wird.
Wenn nichts angegeben wurde, wird der Index oder der Primärschlüssel der Tabelle automatisch erkannt und als Partitionsspalte verwendet.
< Ihre Partitionsspaltennamen > Nein partitionColumnName
Partition obergrenze Geben Sie den Maximalwert der Partitionsspalte für die Partitionsbereichsteilung an. Dieser Wert wird verwendet, um den Partitionsschritt zu bestimmen, nicht zum Filtern der Zeilen in der Tabelle. Alle Zeilen im Tabellen- oder Abfrageergebnis werden partitioniert und kopiert. < Ihre Partition obergrenze > Nein Partition-Obergrenze
Partition untere Grenze Geben Sie den Minimalwert der Partitionsspalte für die Partitionsbereichsteilung an. Dieser Wert wird verwendet, um den Partitionsschritt zu bestimmen, nicht zum Filtern der Zeilen in der Tabelle. Alle Zeilen im Tabellen- oder Abfrageergebnis werden partitioniert und kopiert. < Ihre Partition untere Grenze > Nein partitionLowerBound
Für Hash
Partitionsspaltenname Geben Sie den Namen der Quellspalte im Ganzzahl- oder Datum/Datetime-Typ (int, smallint, bigint, date, smalldatetime, datetime, datetime2 oder datetimeoffset) an, die für die Bereichspartitionierung zur parallelen Kopie verwendet wird.
Wenn nichts angegeben wurde, wird der Index oder der Primärschlüssel der Tabelle automatisch erkannt und als Partitionsspalte verwendet.
< Ihre Partitionsspaltennamen > Nein partitionColumnName
Zusätzliche Spalten Fügen Sie zusätzliche Datenspalten hinzu, um den relativen Pfad oder statischen Wert der Quelldateien zu speichern. Für Letzteres wird ein Ausdruck unterstützt. •Name
•Wert
Nein zusätzlicheSpalten:
•Name
• Wert

Zielinformationen

Name Description Wert Erforderlich JSON-Skripteigenschaft
Verbindung Ihre Verbindung zum Zieldatenspeicher. < Ihre Teradata-Verbindung > Yes connection
Tabelle Die Zieldatentabelle zum Schreiben von Daten. < Der Tabellenname > Yes /
Schemaname Name des Schemas. < Ihr Schemaname > Nein schema
Tabellenname Name der Tabelle. < Der Tabellenname > Nein Tisch
Zusätzliche Teradata-Formatoptionen Geben Sie zusätzliche Formatoptionen an, die in COPY-Anweisung zum Laden von Daten verwendet werden. Beispiele: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Weitere Informationen finden Sie im Datumsformat von Teradata. Diese Eigenschaft funktioniert nur bei der direkten Kopie aus dem DelimitedText-Format-Quelltext nach Teradata. • DATE_FORMAT
• TIME_FORMAT
• TIMESTAMP_FORMAT
Nein zusätzlicheFormatOptionen
• DATE_FORMAT
• TIME_FORMAT
• TIMESTAMP_FORMAT