Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób używania operacji kopiowania w potoku do kopiowania danych z i do Teradata.
Obsługiwana konfiguracja
W przypadku konfiguracji każdej zakładki podczas czynności kopiowania przejdź odpowiednio do poniższych sekcji.
General
W obszarze Konfiguracja karty Ogólne przejdź do pozycji Ogólne.
Źródło
Wskazówka
Aby wydajnie ładować dane z Teradata przy użyciu technologii partycjonowania danych, dowiedz się więcej z sekcji Kopiowanie równoległe z Teradata.
Następujące właściwości są obsługiwane dla Teradata na karcie Źródło aktywności kopiowania.
Wymagane są następujące właściwości:
Połączenie: wybierz połączenie Teradata z listy połączeń. Jeśli połączenie nie istnieje, utwórz nowe połączenie Teradata.
Użyj zapytania: Wybierz tabelę lub kwerendę.
W przypadku wybrania pozycji Tabela:
- Tabela: określ nazwę tabeli w teradata, aby odczytywać dane. Wybierz tabelę z listy rozwijanej lub wybierz pozycję Wprowadź ręcznie , aby wprowadzić nazwę schematu i tabeli.
W przypadku wybrania pozycji Zapytanie:
W obszarze Zaawansowane można określić następujące pola:
Opcja partycji: określa opcje partycjonowania danych używane do ładowania danych z teradata. Dozwolone wartości to: Brak (wartość domyślna), DynamicRange i Hash. Jeśli opcja partycji jest włączona (czyli nie
None), stopień równoległości ładowania danych z Teradata jest kontrolowany przez stopień równoległości kopiowania w ustawieniach na karcie działania kopiowania.Brak: wybierz to ustawienie, aby nie używać partycji.
Zakres dynamiczny: w przypadku używania zapytania z włączonym przetwarzaniem równoległym wymagany jest parametr partycji zakresu
?DfDynamicRangePartitionCondition. Przykładowe zapytanie:SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.Nazwa kolumny partycji: określ nazwę kolumny źródłowej w typie całkowitym lub daty/daty i godziny (
int,smallint,bigint,date,smalldatetime,datetime,datetime2, lubdatetimeoffset) wykorzystywaną przez partycjonowanie zakresu na potrzeby kopiowania równoległego. Jeśli nie zostanie określony, indeks lub klucz podstawowy tabeli jest automatycznie wykrywany i używany jako kolumna partycji.Górna granica partycji: określ maksymalną wartość kolumny partycji dla podziału zakresu partycji. Ta wartość służy do decydowania o kroku partycji, a nie do filtrowania wierszy w tabeli. Wszystkie wiersze w tabeli lub wyniku zapytania są partycjonowane i kopiowane.
Dolna granica partycji: określ minimalną wartość kolumny partycji dla podziału zakresu partycji. Ta wartość służy do decydowania o kroku partycji, a nie do filtrowania wierszy w tabeli. Wszystkie wiersze w tabeli lub wyniku zapytania są partycjonowane i kopiowane.
Skrót: W przypadku używania zapytania z włączonym trybem równoległym, wymagane są parametry partycji skrótu (
?AdfHashPartitionCondition). Przykładowe zapytanie:select * from <TableName> where ?AdfHashPartitionCondition.Nazwa kolumny partycji: określ nazwę kolumny źródłowej w typie całkowitym lub daty/daty i godziny (
int,smallint,bigint,date,smalldatetime,datetime,datetime2, lubdatetimeoffset) wykorzystywaną przez partycjonowanie zakresu na potrzeby kopiowania równoległego. Jeśli nie zostanie określony, indeks lub klucz podstawowy tabeli jest automatycznie wykrywany i używany jako kolumna partycji.
Dodatkowe kolumny: dodaj więcej kolumn danych, aby przechowywać ścieżkę względną plików źródłowych lub wartość statyczną. Wyrażenie jest obsługiwane dla tego ostatniego przypadku.
Destynacja
Następujące właściwości są obsługiwane dla Teradata na karcie Miejsce docelowe procesu kopiowania.
Wymagane są następujące właściwości:
Połączenie: wybierz połączenie Teradata z listy połączeń. Jeśli połączenie nie istnieje, utwórz nowe połączenie Teradata.
Tabela: określ nazwę tabeli w teradata, aby zapisywać dane. Wybierz tabelę z listy rozwijanej lub wybierz pozycję Wprowadź ręcznie , aby wprowadzić nazwę schematu i tabeli.
W obszarze Zaawansowane można określić następujące pola:
- Dodatkowe opcje formatu Teradata: określ dodatkowe opcje formatu, które będą używane w instrukcji COPY do ładowania danych. Przykłady: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Aby uzyskać więcej informacji, zobacz Format Daty Teradata. Ta właściwość działa tylko w przypadku kopiowania bezpośredniego ze źródła formatu DelimitedText do teradata.
Bezpośrednia kopia do teradata
Jeśli źródłowy magazyn danych i format spełniają kryteria opisane w tej sekcji, możesz użyć działania Kopiowania, aby bezpośrednio skopiować ze źródła do teradata. Usługa sprawdza ustawienia i zakończy działanie Kopiowania niepowodzeniem, jeśli nie zostanie spełnione następujące kryterium.
Połączenie źródłowe to Azure Blob Storage i Azure Data Lake Storage Gen2 z kluczem konta i uwierzytelnieniem za pomocą sygnatury dostępu współdzielonego.
Format danych źródłowych to Parquet i DelimitedText z następującymi konfiguracjami:
W przypadku formatu Parquet koder kompresji to None lub Snappy.
W przypadku formatu DelimitedText :
-
rowDelimiterjest \n. -
compressionmoże być bez kompresji lub gzip. Jeśli wybrano kompresję gzip , plik musi kończyć się rozszerzeniem .gz. -
encodingNamejest pozostawiony jako domyślny lub ustawiony na UTF-8. -
quoteCharjest podwójnym cudzysłowem"lub pustym ciągiem. -
escapeCharjest podwójnym cudzysłowem"lub pustym ciągiem. -
nullValuejest ciągiem null lub pustym.
-
W źródle aktywności kopiowania
- Tylko ścieżka statyczna jest dozwolona w przypadku korzystania z usługi Azure Data Lake Storage Gen2.
- Tylko ścieżka statyczna i
prefixjest dozwolona w przypadku korzystania z usługi Azure Blob Storage.
Ścieżki statyczne będą służyć jako prefiksy podczas kopiowania do Teradata.
Kopiowanie etapowe do Teradata
Jeśli źródłowy magazyn danych lub format nie jest natywnie zgodny z poleceniem Teradata COPY, jak wspomniano w ostatniej sekcji, włącz wbudowaną kopię etapową przy użyciu tymczasowego wystąpienia usługi Azure Blob Storage. Funkcja kopiowania etapowego zapewnia również lepszą przepływność. Usługa automatycznie konwertuje dane, aby spełniały wymagania dotyczące formatu danych Teradata. Następnie wywołuje polecenie COPY, aby załadować dane do teradata. Na koniec czyści dane tymczasowe z magazynu obiektów BLOB.
Aby użyć tej funkcji, utwórz połączenie usługi Azure Blob Storage, które odwołuje się do konta usługi Azure Storage jako przejściowego. Następnie określ właściwości enableStaging i stagingSettings w czynności Kopiuj.
Uwaga / Notatka
Przejściowe połączenie usługi Azure Blob Storage musi używać klucza konta lub uwierzytelniania sygnatury dostępu współdzielonego zgodnie z wymaganiami polecenia Teradata COPY.
Mapowanie
W obszarze Konfiguracja karty Mapowanie przejdź do tematu Konfigurowanie mapowań na karcie mapowania.
Ustawienia
Aby uzyskać konfigurację karty Ustawienia, przejdź do Konfiguruj pozostałe ustawienia na karcie ustawień.
Kopiowanie równoległe z Teradata
Łącznik Teradata zapewnia wbudowane partycjonowanie danych, dzięki czemu możliwe jest równoległe kopiowanie danych z Teradata. Opcje partycjonowania danych można znaleźć w tabeli źródłowej operacji kopiowania.
Po włączeniu kopii partycjonowanej usługa uruchamia zapytania równoległe względem źródła Teradata w celu załadowania danych według partycji. Stopień równoległy jest kontrolowany przez stopień równoległości kopiowania na karcie ustawień działania kopiowania. Jeśli na przykład ustawisz opcję Stopień równoległości kopiowania na cztery, usługa jednocześnie generuje i uruchamia cztery zapytania na podstawie określonej opcji partycji i ustawień, a każde zapytanie pobiera część danych z teradata.
Zaleca się włączenie kopiowania równoległego przy użyciu partycjonowania danych, szczególnie w przypadku ładowania dużej ilości danych z danych Teradata. Poniżej przedstawiono sugerowane konfiguracje dla różnych scenariuszy. Podczas kopiowania danych do magazynu danych opartego na plikach zaleca się zapisywanie w folderze jako wielu plików (tylko określ nazwę folderu), w tym przypadku wydajność jest lepsza niż zapisywanie w jednym pliku.
| Scenario | Sugerowane ustawienia |
|---|---|
| Pełne wczytywanie z dużej tabeli. |
Opcja partycji: hasz. Podczas wykonywania usługa automatycznie wykrywa kolumnę indeksu podstawowego, stosuje skrót względem niej i kopiuje dane według partycji. |
| Załaduj dużą ilość danych przy użyciu zapytania niestandardowego. |
Opcja partycji: hasz. Zapytanie: SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>.Kolumna partycji: Aby zastosować partycjonowanie skrótami, określ kolumnę. Jeśli nie zostanie określony, usługa automatycznie wykryje kolumnę PK tabeli określonej w danych Teradata. Podczas wykonywania usługa zastępuje ?AdfHashPartitionCondition logiką partycji skrótu i wysyła do Teradata. |
| Załaduj dużą ilość danych przy użyciu zapytania niestandardowego, zawierającą kolumnę całkowitą z równomiernie rozproszoną wartością partycjonowania zakresu. |
Opcje partycji: partycja zakresu dynamicznego. Zapytanie: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.Kolumna partycji: określ kolumnę używaną do partycjonowania danych. Kolumnę można podzielić na partycje, stosując typ danych całkowitych. Górna granica partycji i dolna granica partycji: określ, czy chcesz filtrować względem kolumny partycji, aby pobrać dane tylko między dolnym i górnym zakresem. Podczas wykonywania usługa zastępuje ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound i ?AdfRangePartitionLowbound rzeczywistymi nazwami kolumn i wartości zakresów dla każdej partycji i wysyła je do Teradata. Na przykład, jeśli dla kolumny partycji "ID" ustawiono dolną granicę na 1 i górną granicę na 80, a liczba kopii równoległych została ustawiona na 4, usługa pobiera dane z 4 partycji. Ich identyfikatory to odpowiednio [1, 20], [21, 40], [41, 60] i [61, 80]. |
Przykład: zapytanie z partycjonowaniem haszowym
"source": {
"type": "TeradataSource",
"query": "SELECT * FROM <TABLENAME> WHERE ?AdfHashPartitionCondition AND <your_additional_where_clause>",
"partitionOption": "Hash",
"partitionSettings": {
"partitionColumnName": "<hash_partition_column_name>"
}
}
Przykład: zapytanie z dynamicznym podziałem zakresu
"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>"
}
}
Podsumowanie tabeli
Poniższe tabele zawierają więcej informacji na temat zadania kopiowania w Teradata.
Informacje źródłowe
| Name | Description | Wartość | Wymagane | Właściwość skryptu JSON |
|---|---|---|---|---|
| Połączenie | Twoja łączność z źródłowym magazynem danych. | < połączenie teradata > | Tak | połączenie |
| Użyj zapytania | Sposób odczytywania danych z teradata. Zastosuj tabelę , aby odczytać dane z określonej tabeli lub zastosować zapytanie , aby odczytywać dane przy użyciu zapytań. | • Tabela • Kwerenda |
Nie. | / |
| Dla tabeli | ||||
| nazwa schematu | Nazwa schematu. | < nazwa schematu > | Nie. | schemat |
| nazwa tabeli | Nazwa tabeli. | < nazwa tabeli > | Nie. | tabela |
| Kwerenda | ||||
| Zapytanie | Użyj niestandardowego zapytania SQL do odczytu danych. | < Zapytania SQL > | Nie. | kwerenda |
| Opcja partycji | Opcje partycjonowania danych używane do ładowania danych z teradata. | • Brak • Zakres dynamiczny • Funkcja skrótu |
Nie. | / |
| W przypadku zakresu dynamicznego | ||||
| Nazwa kolumny partycji | Określ nazwę kolumny źródłowej typu liczba całkowita lub data/czas (int, smallint, bigint, date, smalldatetime, datetime, datetime2, lub datetimeoffset) używaną przez partycjonowanie zakresu na potrzeby kopiowania równoległego.Jeśli nie zostanie określony, indeks lub klucz podstawowy tabeli jest automatycznie wykrywany i używany jako kolumna partycji. |
< nazwy kolumn partycji > | Nie. | nazwa kolumny partycji |
| Górna granica partycji | Określ maksymalną wartość kolumny partycji dla podziału zakresu partycji. Ta wartość służy do decydowania o kroku partycji, a nie do filtrowania wierszy w tabeli. Wszystkie wiersze w tabeli lub wyniku zapytania są partycjonowane i kopiowane. | < górna granica partycji > | Nie. | górna granica partycji |
| Dolna granica partycji | Określ minimalną wartość kolumny partycji dla podziału zakresu partycji. Ta wartość służy do decydowania o kroku partycji, a nie do filtrowania wierszy w tabeli. Wszystkie wiersze w tabeli lub wyniku zapytania są partycjonowane i kopiowane. | < dolna granica partycji > | Nie. | dolna granica partycji |
| Dla skrótu | ||||
| Nazwa kolumny partycji | Określ nazwę kolumny źródłowej typu liczba całkowita lub data/czas (int, smallint, bigint, date, smalldatetime, datetime, datetime2, lub datetimeoffset) używaną przez partycjonowanie zakresu na potrzeby kopiowania równoległego.Jeśli nie zostanie określony, indeks lub klucz podstawowy tabeli jest automatycznie wykrywany i używany jako kolumna partycji. |
< nazwy kolumn partycji > | Nie. | nazwa kolumny partycji |
| Dodatkowe kolumny | Dodaj dodatkowe kolumny danych, aby przechowywać ścieżkę względną plików źródłowych lub wartość statyczną. Wyrażenie jest obsługiwane dla tego ostatniego przypadku. | •Nazwa •Wartość |
Nie. | dodatkoweKolumny: •nazwa •wartość |
Informacje o lokalizacji docelowej
| Name | Description | Wartość | Wymagane | Właściwość skryptu JSON |
|---|---|---|---|---|
| Połączenie | Twoje połączenie z docelowym magazynem danych. | < połączenie teradata > | Tak | połączenie |
| tabela | Docelowa tabela danych do zapisywania danych. | < nazwa tabeli > | Tak | / |
| nazwa schematu | Nazwa schematu. | < nazwa schematu > | Nie. | schemat |
| nazwa tabeli | Nazwa tabeli. | < nazwa tabeli > | Nie. | tabela |
| Dodatkowe opcje formatu Teradata | Określ dodatkowe opcje formatu, które będą używane w instrukcji COPY do ładowania danych. Przykłady: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Aby uzyskać więcej informacji, zobacz Format Daty Teradata. Ta właściwość działa tylko w przypadku kopiowania bezpośredniego ze źródła formatu DelimitedText do teradata. | • DATE_FORMAT • TIME_FORMAT • TIMESTAMP_FORMAT |
Nie. | dodatkoweOpcjeFormatowania • DATE_FORMAT • TIME_FORMAT • TIMESTAMP_FORMAT |