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.
DOTYCZY:
Azure Data Factory
Azure Synapse Analytics
Wskazówka
Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !
W tym artykule opisano sposób używania działania kopiowania w usłudze Azure Data Factory do kopiowania danych z i do bazy danych Oracle. Jest on oparty na omówieniu działania kopiowania.
Ważne
Łącznik Oracle w wersji 2.0 zapewnia ulepszoną natywną obsługę Oracle. Jeśli używasz łącznika Oracle w wersji 1.0 w swoim rozwiązaniu, prosimy o uaktualnienie łącznika Oracle, gdyż wersja 1.0 jest na etapie zakończenia wsparcia technicznego. Potok zakończy się niepowodzeniem po 31 marca 2026 r. Zapoznaj się z tą sekcją , aby uzyskać szczegółowe informacje na temat różnic między wersją 2.0 a wersją 1.0.
Obsługiwane możliwości
Ten łącznik Oracle jest obsługiwany dla następujących funkcji.
| Obsługiwane możliwości | środowisko IR |
|---|---|
| Działanie kopiowania (źródło/ujście) | (1) (2) |
| Aktywność wyszukiwania | (1) (2) |
| Działanie skryptu | (1) (2) |
(1) Środowisko uruchomieniowe Azure (2) Lokalne środowisko uruchomieniowe
Aby uzyskać listę magazynów danych obsługiwanych jako źródła lub ujścia przez działanie kopiowania, zobacz tabelę Obsługiwane magazyny danych.
W szczególności ten łącznik Oracle obsługuje następujące funkcje:
- Następujące wersje bazy danych Oracle dla wersji 2.0:
- Oracle Database 19c i nowsze wersje
- Oracle Database 18c i nowsze wersje
- Oracle Database 12c i nowsze wersje
- Oracle Database 11g i nowsze
- Następujące wersje bazy danych Oracle dla wersji 1.0:
- Oracle 19c R1 (19.1) i nowsze
- Oracle 18c R1 (18.1) i nowsze
- Oracle 12c R1 (12.1) i nowsze
- Oracle 11g R1 (11.1) i nowsze
- Oracle 10g R1 (10.1) i nowsze
- Oracle 9i R2 (9.2) i nowsze
- Oracle 8i R3 (8.1.7) i nowsze
- Usługa Oracle Database Cloud Exadata
- Równoległe kopiowanie ze źródła Oracle. Aby uzyskać szczegółowe informacje, zobacz sekcję Równoległa kopia z bazy danych Oracle .
Uwaga
Serwer proxy Oracle nie jest obsługiwany.
Wymagania wstępne
Jeśli magazyn danych znajduje się wewnątrz sieci lokalnej, wirtualnej sieci platformy Azure lub Amazon Virtual Private Cloud, musisz skonfigurować samodzielnie hostowane środowisko uruchomieniowe integracji do połączenia się z nim.
Jeśli magazyn danych jest zarządzaną usługą danych w chmurze, możesz użyć środowiska Azure Integration Runtime. Jeśli dostęp jest ograniczony do adresów IP zatwierdzonych w regułach zapory, możesz dodać adresy IP środowiska Azure Integration Runtime do listy dozwolonych.
Możesz również użyć funkcji zarządzanego środowiska uruchomieniowego integracji sieci wirtualnej w usłudze Azure Data Factory, aby uzyskać dostęp do sieci lokalnej bez instalowania i konfigurowania własnego środowiska uruchomieniowego integracji.
Aby uzyskać więcej informacji na temat mechanizmów zabezpieczeń sieci i opcji obsługiwanych przez usługę Data Factory, zobacz Strategie dostępu do danych.
Środowisko Integration Runtime udostępnia wbudowany sterownik Oracle. W związku z tym nie trzeba ręcznie instalować sterownika podczas kopiowania danych z i do oracle.
Wprowadzenie
Aby wykonać działanie kopiowania za pomocą pipeline'u, możesz użyć jednego z następujących narzędzi lub zestawów SDK:
- Narzędzie do kopiowania danych
- Portal Azure
- zestawu SDK platformy .NET
- Zestaw SDK dla języka Python
- Azure PowerShell
- API REST
- Szablon usługi Azure Resource Manager
Tworzenie połączonej usługi z bazą danych Oracle przy użyciu interfejsu użytkownika
Wykonaj poniższe kroki, aby utworzyć połączoną usługę z bazą danych Oracle w interfejsie użytkownika witryny Azure Portal.
Przejdź do karty Zarządzanie w obszarze roboczym usługi Azure Data Factory lub Synapse i wybierz pozycję Połączone usługi, a następnie kliknij pozycję Nowy:
Wyszukaj Oracle i wybierz łącznik Oracle.
Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.
Szczegóły konfiguracji łącznika
Poniższe sekcje zawierają szczegółowe informacje o właściwościach używanych do definiowania jednostek specyficznych dla łącznika Oracle.
Właściwości połączonej usługi
Łącznik Oracle w wersji 2.0 obsługuje protokół TLS 1.3. Zapoznaj się z tą sekcją , aby uaktualnić wersję łącznika Oracle z wersji 1.0. Aby uzyskać informacje szczegółowe dotyczące nieruchomości, zobacz odpowiednie sekcje.
Wersja 2.0
Połączona usługa Oracle obsługuje następujące właściwości w przypadku zastosowania wersji 2.0:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type musi być ustawiona na Oracle. | Tak |
| wersja | Wersja, którą określisz. Wartość to 2.0. |
Tak |
| serwer | Lokalizacja bazy danych Oracle, z którą chcesz nawiązać połączenie. Możesz odwołać się do konfiguracji właściwości serwera , aby ją określić. | Tak |
| typ uwierzytelniania | Typ uwierzytelniania na potrzeby nawiązywania połączenia z bazą danych Oracle. Obecnie obsługiwane jest tylko uwierzytelnianie podstawowe . | Tak |
| nazwa użytkownika | Nazwa użytkownika bazy danych Oracle. | Tak |
| hasło | Hasło bazy danych Oracle. Oznacz to pole jako SecureString , aby bezpiecznie je przechowywać. Możesz też odwołać się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. | Tak |
| connectVia | Środowisko Integration Runtime będzie użyte do połączenia z repozytorium danych. Dowiedz się więcej w sekcji Wymagania wstępne . Jeśli nie zostanie określony, zostanie użyte domyślne środowisko Azure Integration Runtime. | Nie. |
W zależności od przypadku możesz ustawić następujące dodatkowe właściwości połączenia w połączonej usłudze.
| Nieruchomość | Opis | Wymagane | Wartość domyślna |
|---|---|---|---|
| klient szyfrowania | Określa zachowanie klienta szyfrowania. Obsługiwane wartości to accepted, , rejectedrequested, lub required. Typ: ciąg |
Nie. | required |
| TypySzyfrowaniaKlient | Określa algorytmy szyfrowania, których może używać klient. Obsługiwane wartości to AES128, , AES192, AES2563DES112, . 3DES168 Typ: ciąg |
Nie. | (AES256) |
| cryptoChecksumClient (klient kryptowaluty) | Określa żądane zachowanie integralności danych, gdy ten klient nawiązuje połączenie z serwerem. Obsługiwane wartości to accepted, , rejectedrequested, lub required. Typ: ciąg |
Nie. | required |
| cryptoChecksumTypesClient | Określa algorytmy sumy kontrolnej kryptograficznej, których może używać klient. Obsługiwane wartości to SHA1, , SHA256SHA384, SHA512. Typ: ciąg |
Nie. | (SHA512) |
| initialLobFetchSize | Określa kwotę, którą źródło początkowo pobiera dla kolumn biznesowych. Typ: int | Nie. | 0 |
| fetchSize (rozmiar pobierania) | Określa liczbę bajtów przydzielanych przez sterownik do pobierania danych w jednej rundzie bazy danych. Typ: int | Nie. | 10 MB |
| statementCacheSize (rozmiar) | Określa liczbę kursorów lub zapytań do buforowania dla każdego połączenia z bazą danych. Typ: int | Nie. | 0 |
| initializationString (ciąg inicjalizacji) | Określa polecenie, które jest wydawane natychmiast po nawiązaniu połączenia z bazą danych w celu zarządzania ustawieniami sesji. Typ: ciąg | Nie. | null |
| WłączMasoweŁadowanie | Określa, czy używać kopiowania zbiorczego, czy wsadowego podczas ładowania danych do bazy danych. Typ: wartość logiczna | Nie. | prawda |
| wsparcieTypyDanychV1 | Określa, czy używać mapowań typu danych w wersji 1.0. Nie ustawiaj tego na wartość true, chyba że chcesz zachować zgodność wsteczną z mapowaniami typów danych w wersji 1.0. Typ: wartość logiczna | Nie, ta właściwość jest przeznaczona wyłącznie do zapewnienia wstecznej kompatybilności. | fałszywy |
| pobierzTswtzJakoZnacznikCzasu | Określa, czy sterownik zwraca wartość kolumny z timeSTAMP WITH TIME ZONE data type as DateTime lub string. To ustawienie jest ignorowane, jeśli wartość supportV1DataTypes nie jest prawdziwa. Typ: wartość logiczna | Nie, ta właściwość jest przeznaczona wyłącznie do zapewnienia wstecznej kompatybilności. | prawda |
Przykład:
{
"name": "OracleLinkedService",
"properties": {
"type": "Oracle",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"username": "<user name>",
"password": "<password>",
"authenticationType": "<authentication type>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Przykład: przechowywanie hasła w usłudze Azure Key Vault
{
"name": "OracleLinkedService",
"properties": {
"type": "Oracle",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"username": "<user name>",
"authenticationType": "<authentication type>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
server konfiguracja właściwości
Dla server właściwości można określić ją w jednym z następujących trzech formatów:
| Forma | Przykład |
|---|---|
| Deskryptor połączenia | (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com))) |
| Nazewnictwo Easy Connect (Plus) | salesserver1:1521/sales.us.example.com |
| Nazwa usług Oracle Net Services (alias TNS) ( wyłącznie dla własnego środowiska uruchomieniowego integracji) | sprzedaż |
Na poniższej liście przedstawiono obsługiwane parametry używane w programie server. Jeśli używasz parametrów, które nie znajdują się na poniższej liście, połączenie nie powiedzie się.
W przypadku korzystania z środowiska Azure Integration Runtime:
GOSPODARZ
port morski
PROTOKÓŁ
SERVICE_NAME
SID
INSTANCE_NAME
SERWER
Limit czasu połączenia (CONNECT_TIMEOUT)
LICZBA_POWTÓRZEŃ
OPÓŹNIENIE_PRÓBY
SSL_VERSION
Dopasowanie DN serwera SSL (SSL_SERVER_DN_MATCH)
SSL_SERVER_CERT_DNKorzystając z samodzielnie zarządzanego środowiska uruchomieniowego integracji:
GOSPODARZ
port morski
PROTOKÓŁ
UMOŻLIWIAĆ
CZAS_WYGASANIA
PRZEŁĄCZENIE AWARYJNE
Równoważenie obciążenia
Rozmiar_bufora_odbioru (RECV_BUF_SIZE)
SDU
Rozmiar_bufora_wysyłania
TRASA_ŹRÓDŁOWA
RODZAJ_USŁUGI
COLOCATION_TAG
CONNECTION_ID_PREFIX
Tryb_przełączania_awaryjnego
GLOBAL_NAME
HS
INSTANCE_NAME
OGRANICZENIE BASENU
KLASA_POŁĄCZENIOWA_PULA
POOL_NAME
Czystość Basenu
RDB_BAZA_DANYCH
Klucz shardingowy
Identyfikator_klucza_shardowania
SUPER_KLUCZ_SZARDOWANIA
SERWER
SERVICE_NAME
SID
Nazwa_usługi_tunelowej
uwierzytelnianie klienta SSL
SSL_CERTIFICATE_ALIAS (alias certyfikatu SSL)
ODCISK PALCA CERTYFIKATU SSL
SSL_VERSION
Dopasowanie DN serwera SSL (SSL_SERVER_DN_MATCH)
SSL_SERVER_CERT_DN
LOKALIZACJA_PORTFELA
Limit czasu połączenia (CONNECT_TIMEOUT)
LICZBA_POWTÓRZEŃ
OPÓŹNIENIE_PRÓBY
Przekroczono czas oczekiwania na połączenie transportowe
RECV_TIMEOUT (Limit czasu odbioru)
KOMPRESJA
POZIOMY KOMPRESJI
Wersja 1.0
Połączona usługa Oracle obsługuje następujące właściwości w przypadku zastosowania wersji 1.0:
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type musi być ustawiona na Oracle. | Tak |
| Parametry połączenia | Określa informacje potrzebne do nawiązania połączenia z wystąpieniem bazy danych Oracle. Możesz również umieścić hasło w usłudze Azure Key Vault i ściągnąć password konfigurację z parametry połączenia. Aby uzyskać więcej informacji, zapoznaj się z poniższymi przykładami i zapisz poświadczenia w usłudze Azure Key Vault . Obsługiwany typ połączenia: aby zidentyfikować bazę danych, możesz użyć identyfikatora SID oracle lub nazwy usługi Oracle: - Jeśli używasz identyfikatora SID: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;— Jeśli używasz nazwy usługi: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;W przypadku zaawansowanych opcji połączenia natywnego Oracle można dodać wpis w pliku TNSNAMES.ORA na maszynie, na której zainstalowano samodzielnie hostowane środowisko uruchomieniowe integracji. W połączonej usłudze Oracle wybierz opcję użycia typu połączenia Nazwa usługi Oracle i skonfiguruj odpowiednią nazwę usługi. |
Tak |
| connectVia | Środowisko Integration Runtime będzie użyte do połączenia z repozytorium danych. Dowiedz się więcej w sekcji Wymagania wstępne . Jeśli nie zostanie określony, zostanie użyte domyślne środowisko Azure Integration Runtime. | Nie. |
Wskazówka
Jeśli wystąpi błąd "ORA-01025: parametr UPI poza zakresem", a wersja oracle to 8i, dodaj WireProtocolMode=1 do parametry połączenia. Następnie spróbuj ponownie.
Jeśli masz wiele wystąpień Oracle dla scenariusza trybu failover, możesz utworzyć połączoną usługę Oracle i wypełnić informacje o podstawowym hoście, porcie, nazwie użytkownika, haśle itp., a następnie dodać nowe "Dodatkowe właściwości połączenia" z nazwą właściwości jako i wartością jako AlternateServers — nie pomijaj nawiasów i zwracaj uwagę na dwukropki ((HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>)) jako separator. Na przykład następująca wartość alternatywnych serwerów definiuje dwa alternatywne serwery bazy danych na potrzeby trybu failover połączenia: (HostName=AccountingOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany).
Więcej właściwości połączenia, które można ustawić w ciągu połączenia, dostosowanych do Twojego przypadku:
| Nieruchomość | Opis | Dozwolone wartości |
|---|---|---|
| RozmiarTablicy | Liczba bajtów, które łącznik może pobrać w ramach jednej rundy sieciowej. Np. ArraySize=10485760.Większe wartości zwiększają przepływność, zmniejszając liczbę prób pobierania danych w sieci. Mniejsze wartości zwiększają czas odpowiedzi, ponieważ istnieje mniejsze opóźnienie oczekiwania na przesyłanie danych przez serwer. |
Liczba całkowita z zakresu od 1 do 4294967296 (4 GB). Wartość domyślna to 60000. Wartość 1 nie definiuje liczby bajtów, ale wskazuje przydzielanie miejsca dla dokładnie jednego wiersza danych. |
Aby włączyć szyfrowanie w połączeniu Oracle, dostępne są dwie opcje:
Aby używać szyfrowania Triple-DES (3DES) i Advanced Encryption Standard (AES), po stronie serwera Oracle przejdź do obszaru Oracle Advanced Security (OAS) i skonfiguruj ustawienia szyfrowania. Aby uzyskać szczegółowe informacje, zobacz tę dokumentację Oracle. Łącznik Oracle Application Development Framework (ADF) automatycznie negocjuje metodę szyfrowania w celu użycia tej, którą konfigurujesz w systemie operacyjnym podczas nawiązywania połączenia z oracle.
Aby użyć TLS, skonfiguruj
truststoredla uwierzytelniania serwera SSL, stosując jedną z następujących trzech metod:Metoda 1 (zalecana):
Zainstaluj certyfikat TLS/SSL, importując go do lokalnego magazynu certyfikatów. Wbudowany sterownik Oracle może załadować wymagany certyfikat z magazynu certyfikatów.
W usłudze skonfiguruj parametry połączenia Oracle za pomocą polecenia
EncryptionMethod=1.
Metoda 2:
Uzyskaj informacje o certyfikacie TLS/SSL. Uzyskaj informacje o certyfikacie kodowanym według standardu DER (Distinguished Encoding Rules) lub PEM (Privacy Enhanced Mail) dla swojego certyfikatu TLS/SSL.
openssl x509 -inform (DER|PEM) -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -textW usłudze skonfiguruj łańcuch połączeniowy Oracle z
EncryptionMethod=1i odpowiednią wartościąTrustStore. Na przykładHost=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore= data:// -----BEGIN CERTIFICATE-----<certificate content>-----END CERTIFICATE-----Uwaga
- Wartość
TrustStorepola powinna być poprzedzona prefiksemdata://. - Podczas określania zawartości dla wielu certyfikatów określ zawartość każdego certyfikatu między
-----BEGIN CERTIFICATE-----i-----END CERTIFICATE-----. Liczba kresek (-----) powinna być taka sama przed i po zarównoBEGIN CERTIFICATE, jak iEND CERTIFICATE. Na przykład:
-----BEGIN CERTIFICATE-----<certificate content 1>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate content 2>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate content 3>-----END CERTIFICATE----- - Pole
TrustStoreobsługuje zawartość do 8192 znaków.
- Wartość
Metoda 3:
truststoreUtwórz plik z silnymi szyframi, takimi jak AES256.openssl pkcs12 -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -keypbe AES-256-CBC -certpbe AES-256-CBC -nokeys -exporttruststoreUmieść plik na maszynie własnego środowiska Integration Runtime. Na przykład umieść plik w folderzeC:\MyTrustStoreFile.W usłudze skonfiguruj parametry połączenia Oracle z użyciem
EncryptionMethod=1oraz odpowiednią wartościąTrustStore/TrustStorePassword. Na przykładHost=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>.
Przykład:
{
"name": "OracleLinkedService",
"properties": {
"type": "Oracle",
"typeProperties": {
"connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Przykład: przechowywanie hasła w usłudze Azure Key Vault
{
"name": "OracleLinkedService",
"properties": {
"type": "Oracle",
"typeProperties": {
"connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Właściwości zestawu danych
Ta sekcja zawiera listę właściwości obsługiwanych przez zestaw danych Oracle. Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania zestawów danych, zobacz Zestawy danych.
Aby skopiować dane z i do bazy danych Oracle, ustaw właściwość type zestawu danych na OracleTable. Obsługiwane są następujące właściwości.
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type zestawu danych musi być ustawiona na OracleTable. |
Tak |
| schemat | Nazwa schematu. | Nie dla źródła, Tak dla ujścia |
| tabela | Nazwa tabeli/widoku. | Nie dla źródła, Tak dla ujścia |
| nazwaTabeli | Nazwa tabeli lub widoku ze schemą. Ta właściwość jest obsługiwana w celu zapewnienia zgodności z poprzednimi wersjami. W przypadku nowego obciążenia użyj schema i table. |
Nie dla źródła, Tak dla ujścia |
Przykład:
{
"name": "OracleDataset",
"properties":
{
"type": "OracleTable",
"schema": [],
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
},
"linkedServiceName": {
"referenceName": "<Oracle linked service name>",
"type": "LinkedServiceReference"
}
}
}
Właściwości działania kopiowania
Ta sekcja zawiera listę właściwości obsługiwanych przez źródło i odbiornik Oracle. Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, zobacz Potoki.
Oracle jako źródło
Wskazówka
Aby wydajnie ładować dane z bazy danych Oracle przy użyciu partycjonowania danych, dowiedz się więcej na temat kopiowania równoległego z bazy danych Oracle.
Aby skopiować dane z bazy danych Oracle, ustaw typ źródła w działaniu kopiowania na OracleSource. Poniższe właściwości są obsługiwane w sekcji źródła działania kopiowania.
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type źródła operacji kopiowania musi być ustawiona na OracleSource. |
Tak |
| oracleReaderQuery | Użyj niestandardowego zapytania SQL, aby odczytać dane. Może to być na przykład "SELECT * FROM MyTable". Należy pamiętać, że zapytanie nie powinno kończyć się średnikiem (;). Po włączeniu obciążenia partycjonowanego należy podłączyć wszystkie odpowiednie wbudowane parametry partycji w zapytaniu. Aby zapoznać się z przykładami, zobacz sekcję Kopia równoległa z bazy danych Oracle . |
Nie. |
| konwertujDziesiętnąNaCałkowitą | Typ Oracle NUMBER z liczbą zero lub nieokreśloną skalą zostanie przekonwertowany na odpowiadającą liczbę całkowitą. Dozwolone wartości to true i false (wartość domyślna). Jeśli używasz programu Oracle w wersji 2.0, ta właściwość będzie mogła być ustawiana tylko wtedy, gdy parametr supportV1DataTypes ma wartość true. |
Nie. |
| opcje partycji | Określa opcje partycjonowania danych używane do ładowania danych z oracle. Dozwolone wartości to: Brak (wartość domyślna), PhysicalPartitionsOfTable i DynamicRange. Jeśli opcja partycjonowania jest włączona (czyli nie None), stopień równoległości ładowania danych równocześnie z bazy danych Oracle jest kontrolowany przez ustawienie parallelCopies w działaniu kopiowania. |
Nie. |
| ustawienia partycji | Określ grupę ustawień partycjonowania danych. Zastosuj, gdy opcja partycji nie jest None. |
Nie. |
| nazwy partycji | Lista partycji fizycznych, które należy skopiować. Zastosuj, gdy opcja partycji to PhysicalPartitionsOfTable. Jeśli używasz zapytania do pobierania danych źródłowych, umieść ?AdfTabularPartitionName w klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopia równoległa z bazy danych Oracle . |
Nie. |
| nazwa kolumny partycji | Określ nazwę kolumny źródłowej typu całkowitego, która będzie używana przez partycjonowanie zakresu na potrzeby kopiowania równoległego. Jeśli klucz podstawowy tabeli nie zostanie określony, zostanie on automatycznie wykryty i użyty jako kolumna partycji. Zastosuj, gdy opcja partycji to DynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, umieść ?AdfRangePartitionColumnName w klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopia równoległa z bazy danych Oracle . |
Nie. |
| górna granica partycji | Maksymalna wartość kolumny partycji do skopiowania danych. Zastosuj, gdy opcja partycji to DynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, umieść ?AdfRangePartitionUpbound w klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopia równoległa z bazy danych Oracle . |
Nie. |
| dolna granica partycji | Minimalna wartość kolumny partycji do skopiowania danych. Zastosuj, gdy opcja partycji to DynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, umieść ?AdfRangePartitionLowbound w klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopia równoległa z bazy danych Oracle . |
Nie. |
| precyzja liczby | Określ maksymalną liczbę znaczących cyfr dziesiętnych. Dozwolone wartości wahają się od 1 do 256. Wartość domyślna wynosi 256, jeśli nie zostanie określona. Ta właściwość jest obsługiwana w programie Oracle w wersji 2.0. Dotyczy tylko typów NUMBER, które nie mają precyzji i skalowania jawnie zdefiniowane w bazie danych Oracle. Można to ustawić, gdy supportV1DataTypes nie jest true. Jeśli używasz własnego środowiska Integration Runtime, jego wersja powinna mieć wartość 5.56 lub nowszą. |
Nie. |
| numberScale | Określ liczbę cyfr po przecinku dziesiętnego. Dozwolone wartości wahają się od 0 do 130 i muszą być mniejsze lub równe precyzji. Wartość domyślna to 130, jeśli nie zostanie określona. Ta właściwość jest obsługiwana w programie Oracle w wersji 2.0. Dotyczy tylko typów NUMBER, które nie mają precyzji i skalowania jawnie zdefiniowane w bazie danych Oracle. Można to ustawić, gdy supportV1DataTypes nie jest true. Jeśli używasz własnego środowiska Integration Runtime, jego wersja powinna mieć wartość 5.56 lub nowszą. |
Nie. |
Przykład: kopiowanie danych przy użyciu zapytania podstawowego bez partycji
"activities":[
{
"name": "CopyFromOracle",
"type": "Copy",
"inputs": [
{
"referenceName": "<Oracle input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "OracleSource",
"convertDecimalToInteger": false,
"oracleReaderQuery": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Oracle jako odbiornik
Aby skopiować dane do Oracle, ustaw typ ujścia w działaniu kopiowania na OracleSink. Poniższe właściwości są obsługiwane w sekcji ujścia działania kopiowania.
| Nieruchomość | Opis | Wymagane |
|---|---|---|
| typ | Właściwość Type wyjścia operacji kopiowania musi być ustawiona na OracleSink. |
Tak |
| writeBatchSize | Wstawia dane do tabeli SQL, gdy rozmiar buforu osiągnie writeBatchSizewartość .Dozwolone wartości to liczba całkowita, na przykład liczba wierszy. |
Nie (wartość domyślna to 10 000) |
| writeBatchTimeout | Czas oczekiwania na ukończenie operacji wstawiania wsadowego, zanim upłynie limit czasu. Dozwolone wartości to Timespan. Przykładem jest 00:30:00 (30 minut). |
Nie. |
| preCopyScript | Określ zapytanie SQL dla działania kopiowania, które ma zostać uruchomione przed zapisaniem danych w programie Oracle w każdym uruchomieniu. Za pomocą tej właściwości można wyczyścić wstępnie załadowane dane. | Nie. |
| maksymalnaLiczbaRównoległychPołączeń | Górny limit nawiązywanych jednocześnie połączeń z magazynem danych podczas wykonywania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. | Nie |
Przykład:
"activities":[
{
"name": "CopyToOracle",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Oracle output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "OracleSink"
}
}
}
]
Kopiowanie równoległe z bazy danych Oracle
Łącznik Oracle zapewnia wbudowane partycjonowanie danych w celu równoległego kopiowania danych z bazy danych Oracle. Opcje partycjonowania danych można znaleźć na karcie Źródło działania kopiowania.
Po włączeniu kopii partycjonowanej usługa uruchamia zapytania równoległe względem źródła Oracle w celu załadowania danych według partycji. Stopień równoległości jest kontrolowany przez ustawienie parallelCopies na działaniu kopiowania. Na przykład, jeśli parallelCopies ustawiono na cztery, usługa równocześnie generuje i uruchamia cztery zapytania na podstawie określonej opcji partycji i ustawień, a każde zapytanie pobiera fragment danych z bazy danych Oracle.
Zaleca się włączenie kopiowania równoległego przy użyciu partycjonowania danych, szczególnie w przypadku ładowania dużej ilości danych z bazy danych Oracle. 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.
| Scenariusz | Sugerowane ustawienia |
|---|---|
| Pełne ładowanie dużej tabeli z fizycznymi partycjami. |
Opcja partycji: fizyczne partycje tabeli. Podczas wykonywania usługa automatycznie wykrywa partycje fizyczne i kopiuje dane według partycji. |
| Pełne ładowanie z dużej tabeli, bez partycji fizycznych, ale z kolumną całkowitą na potrzeby partycjonowania danych. |
Opcje partycji: partycja zakresu dynamicznego. Kolumna partycji: określ kolumnę używaną do partycjonowania danych. Jeśli nic nie zostanie określone, zostanie użyta kolumna klucza podstawowego. |
| Dużą ilość danych ładuj przy użyciu zapytania niestandardowego z wykorzystaniem partycji fizycznych. |
Opcja partycji: fizyczne partycje tabeli. Zapytanie: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause>.Nazwa partycji: określ nazwy partycji do skopiowania danych. Jeśli parametr nie został określony, usługa automatycznie wykrywa partycje fizyczne w tabeli określonej w zestawie danych Oracle. Podczas wykonywania usługa zastępuje ?AdfTabularPartitionName rzeczywistą nazwą partycji i wysyła do Oracle. |
| Załaduj dużą ilość danych przy użyciu zapytania niestandardowego, bez partycji fizycznych, natomiast z kolumną całkowitą na potrzeby partycjonowania danych. |
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 oraz zakresami wartości dla każdej partycji, a następnie wysyła je do Oracle. Jeśli na przykład kolumna partycji "ID" jest ustawiona z dolną granicą jako 1 i górną granicą jako 80, przy kopiowaniu równoległym ustawionym na 4, usługa pobiera dane za pomocą 4 partycji. Ich identyfikatory to odpowiednio [1, 20], [21, 40], [41, 60] i [61, 80]. |
Wskazówka
Podczas kopiowania danych z tabeli bez partycji, można użyć opcji partycji "Zakres dynamiczny", aby podzielić dane na podstawie kolumny całkowitoliczbowej. Jeśli dane źródłowe nie mają takiego typu kolumny, możesz użyć funkcji ORA_HASH w zapytaniu źródłowym, aby wygenerować kolumnę i użyć jej jako kolumny partycji.
Przykład: zapytanie z partycją fizyczną
"source": {
"type": "OracleSource",
"query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
"partitionOption": "PhysicalPartitionsOfTable",
"partitionSettings": {
"partitionNames": [
"<partitionA_name>",
"<partitionB_name>"
]
}
}
Przykład: zapytanie z dynamicznym podziałem zakresu
"source": {
"type": "OracleSource",
"query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
"partitionOption": "DynamicRange",
"partitionSettings": {
"partitionColumnName": "<partition_column_name>",
"partitionUpperBound": "<upper_value_of_partition_column>",
"partitionLowerBound": "<lower_value_of_partition_column>"
}
}
Mapowanie typów danych dla oracle
Podczas kopiowania danych z i do programu Oracle w usłudze są używane następujące tymczasowe mapowania typów danych. Aby dowiedzieć się, jak działanie kopiowania mapuje schemat źródłowy i typ danych na docelowy, zobacz Mapowanie schematu i typu danych.
| Typ danych Oracle | Typ danych usługi tymczasowej (wersja 2.0) | Typ danych usługi tymczasowej (wersja 1.0) |
|---|---|---|
| PLIK BFILE | Bajt[] | Bajt[] |
| BINARNY_FLOAT | Singiel | Singiel |
| BINARY_DOUBLE | Podwójny | Podwójny |
| BLOB | Bajt[] | Bajt[] |
| CHAR | Sznurek | Sznurek |
| CLOB | Sznurek | Sznurek |
| DATA | Data i Czas | Data i Czas |
| FLOAT (P < 16) | Podwójny | Podwójny |
| FLOAT (P >= 16) | Liczba dziesiętna | Podwójny |
| INTERWAŁ OD ROKU DO MIESIĄCA | Int64 | Sznurek |
| INTERWAŁ OD DNIA DO SEKUNDY | TimeSpan (przedział czasu) | Sznurek |
| DŁUGI | Sznurek | Sznurek |
| DŁUGI NIEPRZETWORZONY | Bajt[] | Bajt[] |
| NCHAR | Sznurek | Sznurek |
| NCLOB | Sznurek | Sznurek |
| LICZBA (p,s) | Int16, Int32, Int64, Single, Double, Decimal | Liczba dziesiętna, ciąg (jeśli p > 28) |
| LICZBA bez precyzji i skali | Liczba dziesiętna (256 130) | Podwójny |
| NVARCHAR2 | Sznurek | Sznurek |
| SUROWY | Bajt[] | Bajt[] |
| SYGNATURA CZASOWA | Data i Czas | Data i Czas |
| SYGNATURA CZASOWA W LOKALNEJ STREFIE CZASOWEJ | Data i Czas | Data i Czas |
| SYGNATURA CZASOWA ZE STREFĄ CZASOWĄ | PrzesunięcieDatyICzasu | Data i Czas |
| VARCHAR2 | Sznurek | Sznurek |
| TYP XML | Sznurek | Sznurek |
Liczba (p,s) jest mapowana na odpowiedni typ danych usługi tymczasowej w wersji 2.0 w zależności od dokładności (p) i skali (s):
| Typ danych usługi tymczasowej | Warunek |
|---|---|
| Int16 | scale <= 0 AND (precyzja — skala) < 5 |
| Int32 | scale <= 0 I 5 <= (precyzja - skala) < 10 |
| Int64 | scale <= 0 I 10 <= (precyzja - skala) < 19 |
| Singiel | precyzja < 8 I ((skala <= 0 I (precyzja - skala) <= 38) LUB (skala > 0 I skala <= 44)) |
| Liczba dziesiętna | precyzja >= 16 |
| Podwójny | Jeśli żadne z powyższych warunków nie zostaną spełnione. |
Właściwości czynności wyszukiwania
Aby dowiedzieć się więcej o właściwościach, sprawdź Aktywność wyszukiwania.
Uaktualnianie łącznika Oracle
Poniżej przedstawiono kroki ułatwiające uaktualnienie łącznika Oracle:
Na stronie Edytowanie połączonej usługi wybierz pozycję 2.0 w obszarze Wersja i skonfiguruj połączoną usługę, odwołując się do właściwości połączonej usługi w wersji 2.0.
W przypadku właściwości powiązanych z uwierzytelnianiem, w tym nazwy użytkownika i hasła, określ oryginalne wartości w odpowiednich polach w wersji 2.0. Inne właściwości połączenia, takie jak host, port i Nazwa Usługi Oracle/Identyfikator SID Oracle w wersji 1.0, są teraz parametrami właściwości
serverw wersji 2.0.Jeśli na przykład skonfigurujesz połączoną usługę w wersji 1.0, jak pokazano poniżej:
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "typeProperties": { "connectionString": "host=oraclesample.com;port=1521;servicename=db1" }, "connectVia": { "referenceName": "<name of Integration Runtime>", "type": "IntegrationRuntimeReference" } } }Identyczna konfiguracja połączenia usługi w wersji 2.0 przy użyciu nazewnictwa Easy Connect (Plus) to:
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "version": "2.0", "typeProperties": { "server": "oraclesample.com:1521/db1", "username": "<user name>", "password": "<password>", "authenticationType": "<authentication type>" }, "connectVia": { "referenceName": "<name of Integration Runtime>", "type": "IntegrationRuntimeReference" } } }Identyczna konfiguracja połączonej usługi w wersji 2.0 przy użyciu deskryptora łącznika to:
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "version": "2.0", "typeProperties": { "server": "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= oraclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))", "username": "<user name>", "password": "<password>", "authenticationType": "<authentication type>" }, "connectVia": { "referenceName": "<name of Integration Runtime>", "type": "IntegrationRuntimeReference" } } }Wskazówka
Usługa Azure Key Vault jest obsługiwany jako właściwość
server. Możesz edytować kod JSON połączonej usługi, aby dodać odwołanie do usługi Azure Key Vault, jak pokazano poniżej:
Należy pamiętać, że:
Jeśli używasz nazwy usługi Oracle w wersji 1.0, możesz użyć Nazewnictwo Easy Connect (Plus) lub Deskryptora Łącznika jako format serwera w wersji 2.0.
Jeśli używasz identyfikatora SID oracle w wersji 1.0, musisz użyć deskryptora łącznika jako formatu serwera w wersji 2.0.
Dla niektórych dodatkowych właściwości połączenia w wersji 1.0, alternatywne właściwości lub parametry udostępniamy w elemencie
serverw wersji 2.0. Aby uaktualnić właściwości wersji 1.0, zapoznaj się z poniższą tabelą.Wersja 1.0 Wersja 2.0 metoda szyfrowania PROTOKÓŁ (parametr w systemie server)tnsnamesfile TNS_ADMIN (zmienna środowiskowa obsługiwana w własnym środowisku Integration Runtime) nazwa serwera serwer włącz_ładowanie_masowe
Wartość: 1, 0Włącz funkcję BulkLoad
Wartość: prawda, fałszfetchtswtzastimestamp
Wartość: 1, 0fetchTswtzAsTimestamp
Wartość: prawda, fałszalternatywne serwery DESCRIPTION_LIST (parametr w server)rozmiar tablicy fetchSize (rozmiar pobierania) limit pamięci podręcznej kursora statementCacheSize (rozmiar) licznikponownychpróbpołączenia RETRY_COUNT (parametr w server)ciąg inicjalizacyjny initializationString (ciąg inicjalizacji) czas oczekiwania na zalogowanie CONNECT_TIMEOUT (parametr w systemie server)wersja kryptoprotokołu SSL_VERSION (parametr w server)magazyn zaufania WALLET_LOCATION (parametr w systemie server)Jeśli na przykład używasz
alternateserversw wersji 1.0, możesz ustawićDESCRIPTION_LISTparametr we właściwości serwera w wersji 2.0:Połączona usługa w wersji 1.0 przy użyciu
alternateservers:{ "name": "OracleV1", "properties": { "type": "Oracle", "typeProperties": { "connectionString": "host=oraclesample.com;port=1521;servicename=db1;alternateservers=(HostName= oraclesample2.com:PortNumber=1521:SID=db2,HostName=255.201.11.24:PortNumber=1522:ServiceName=db3)" } } }Identyczna wersja 2.0 powiązana usługa, używająca parametru
DESCRIPTION_LISTw deskryptorze łącznika:{ "name": "OracleV2", "properties": { "type": "Oracle", "version": "2.0", "typeProperties": { "server": "(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclesample2.com)(PORT=1521))(CONNECT_DATA=(SID=db2)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=255.201.11.24)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=db3))))", "username": "<user name>", "password": "<password>", "authenticationType": "<authentication type>" } } }
Mapowanie typu danych dla połączonej usługi Oracle w wersji 2.0 różni się od tego dla wersji 1.0. Aby dowiedzieć się więcej na temat najnowszego mapowania typów danych, zobacz Mapowanie typów danych dla bazy danych Oracle.
Dodatkowa właściwość
supportV1DataTypespołączenia w wersji 2.0 może zmniejszyć trudności z uaktualnieniem spowodowane zmianami typu danych. Ustawienie tej właściwości natruezapewnia, że typ danych w wersji 2.0 pozostaje zgodny z wersją 1.0.
Różnice między wersją Oracle 2.0 i wersją 1.0
Łącznik Oracle w wersji 2.0 oferuje nowe funkcje i jest zgodny z większością funkcji wersji 1.0. W poniższej tabeli przedstawiono różnice funkcji między wersją 2.0 a wersją 1.0.
| Wersja 2.0 | Wersja 1.0 |
|---|---|
| Następujące mapowania są używane z typów danych Oracle do tymczasowych typów danych usługi używanych wewnętrznie przez usługę. NUMBER(p,s) —> Int16, Int32, Int64, Single, Double, Decimal FLOAT(p)-> Podwójna lub zmiennoprzecinkowa w zależności od precyzji LICZBA —> liczba dziesiętna SYGNATURA CZASOWA ZE STREFĄ CZASOWĄ —> DATETimeOffset INTERWAŁ ROK DO MIESIĄCA —> int64 INTERWAŁ DO SEKUNDY —> przedział czasu |
Następujące mapowania są używane z typów danych Oracle do tymczasowych typów danych usługi używanych wewnętrznie przez usługę. NUMBER(p,s) —> liczba dziesiętna lub ciąg w zależności od jej precyzji FLOAT(p)-> Podwójne LICZBA —> podwójna ZNACZNIK CZASU ZE STREFĄ CZASOWĄ —> Data i czas INTERWAŁ OD ROKU DO MIESIĄCA —> CIĄG INTERWAŁ OD DNIA DO SEKUNDY —> CIĄG |
Obsługuj convertDecimalToInteger w źródle kopii, gdy supportV1DataTypes jest ustawione na true. |
Obsługuje "convertDecimalToInteger" przy kopiowaniu ze źródła. |
Użycie ? jako symbolu zastępczego parametrów zapytania działania skryptu nie jest obsługiwane. Możesz użyć nazwanego parametru (takiego jak :paramA) lub parametru pozycyjnego (na przykład :1) jako zamiany. |
Obsługa użycia ? jako symbolu zastępczego dla parametrów działania zapytania skryptu. |
| Obsługa protokołu TLS 1.3. | Protokół TLS 1.3 nie jest obsługiwany. |
| Obsługiwany jest dwukierunkowy TLS/SSL z portfelem SSO Oracle. Aby uzyskać więcej informacji, zobacz ten artykuł | Dwukierunkowe protokoły TLS/SSL z portfelem Oracle nie są obsługiwane. |