Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
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:
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,datetime2oderdatetimeoffset) 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.
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,datetime2oderdatetimeoffset) 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.
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.
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):
-
rowDelimiterist \n. -
compressionkann keine Komprimierung oder gzip sein. Wenn Gzip-Komprimierung ausgewählt ist, muss die Datei mit der Erweiterung .gz enden. -
encodingNameist entweder auf den Standardwert belassen oder auf UTF-8 festgelegt. -
quoteCharist doppelte Anführungszeichen"oder leere Zeichenfolge. -
escapeCharist doppelte Anführungszeichen"oder leere Zeichenfolge. -
nullValueist 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
prefixist 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 |