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.
GILT FÜR:
Azure Data Factory
Azure Synapse Analytics
Tipp
Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. In Microsoft Fabric können Sie alle erforderlichen Aufgaben ausführen, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!
In diesem Artikel wird beschrieben, wie Sie die Kopieraktivität in Azure Data Factory verwenden, um Daten aus einer Oracle-Datenbank und in eine Oracle-Datenbank zu kopieren. Der Artikel baut auf der Übersicht über die Kopieraktivität auf.
Von Bedeutung
Die Oracle Connector Version 2.0 bietet verbesserte native Oracle-Unterstützung. Wenn Sie die Oracle-Connector-Version 1.0 in Ihrer Lösung verwenden, bitte aktualisieren Sie den Oracle-Connector, da sich die Version 1.0 am Ende der Supportphase befindet. Ihre Pipeline schlägt nach dem 31. März 2026 fehl. Ausführliche Informationen zu den Unterschieden zwischen Version 2.0 und Version 1.0 finden Sie in diesem Abschnitt.
Unterstützte Funktionen
Dieser Oracle-Connector wird für die folgenden Funktionen unterstützt:
| Unterstützte Funktionen | IR |
|---|---|
| Copy-Aktivität (Quelle/Senke) | (1) (2) |
| Lookup-Aktivität | (1) (2) |
| Skript-Aktivität | (1) (2) |
① Azure Integration Runtime ② Selbstgehostete Integration Runtime
Eine Liste der Datenspeicher, die als Quellen oder Senken für die Kopieraktivität unterstützt werden, finden Sie in der Tabelle Unterstützte Datenspeicher.
Dieser Oracle-Connector unterstützt insbesondere Folgendes:
- Die folgenden Versionen einer Oracle-Datenbank für Version 2.0:
- Oracle Database 19c und höher
- Oracle Database 18c und höher
- Oracle Database 12c und höher
- Oracle Database 11g und höher
- Die folgenden Versionen einer Oracle-Datenbank für Version 1.0:
- Oracle 19c R1 (19.1) und höher
- Oracle 18c R1 (18.1) und höher
- Oracle 12c R1 (12.1) und höher
- Oracle 11g R1 (11.1) und höher
- Oracle 10g R1 (10.1) und höher
- Oracle 9i R2 (9.2) und höher
- Oracle 8i R3 (8.1.7) und höher
- Oracle Database Cloud Exadata Service
- Paralleles Kopieren aus einer Oracle-Quelle. Weitere Informationen finden Sie im Abschnitt Paralleles Kopieren aus Oracle.
Hinweis
Der Oracle-Proxyserver wird nicht unterstützt.
Voraussetzungen
Wenn sich Ihr Datenspeicher in einem lokalen Netzwerk, in einem virtuellen Azure-Netzwerk oder in Amazon Virtual Private Cloud befindet, müssen Sie eine selbstgehostete Integration Runtime konfigurieren, um eine Verbindung herzustellen.
Handelt es sich bei Ihrem Datenspeicher um einen verwalteten Clouddatendienst, können Sie die Azure Integration Runtime verwenden. Ist der Zugriff auf IP-Adressen beschränkt, die in den Firewallregeln genehmigt sind, können Sie Azure Integration Runtime-IPs zur Positivliste hinzufügen.
Sie können auch das Feature managed virtual network integration runtime (Integration Runtime für verwaltete virtuelle Netzwerke) in Azure Data Factory verwenden, um auf das lokale Netzwerk zuzugreifen, ohne eine selbstgehostete Integration Runtime zu installieren und zu konfigurieren.
Weitere Informationen zu den von Data Factory unterstützten Netzwerksicherheitsmechanismen und -optionen finden Sie unter Datenzugriffsstrategien.
Die Integration Runtime stellt einen integrierten Oracle-Treiber bereit. Daher müssen Sie zum Kopieren von Daten aus und nach Oracle nicht manuell einen Treiber erstellen.
Erste Schritte
Zum Ausführen der Kopieraktivität mit einer Pipeline können Sie eines der folgenden Tools oder SDKs verwenden:
- Tool zum Kopieren von Daten
- Azure-Portal
- .NET SDK
- Python SDK
- Azure PowerShell
- REST-API
- Azure Resource Manager-Vorlage
Erstellen eines verknüpften Diensts zu Oracle mittels Benutzeroberfläche
Verwenden Sie die folgenden Schritte, um einen verknüpften Dienst zu Oracle im Azure-Portal zu erstellen.
Navigieren Sie in Ihrem Azure Data Factory- oder Synapse-Arbeitsbereich zur Registerkarte „Verwalten“, wählen Sie „Verknüpfte Dienste“ aus, und klicken Sie dann auf „Neu“:
Suchen Sie nach Oracle, und wählen Sie den Oracle Connector aus.
Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.
Details zur Connectorkonfiguration
Die folgenden Abschnitte geben Details an von Eigenschaften, die zum Definieren von Entitäten speziell für den Salesforce-Connector verwendet werden.
Eigenschaften des verknüpften Diensts
Die Oracle Connector Version 2.0 unterstützt TLS 1.3. Lesen Sie diesen Abschnitt , um Ihre Oracle Connector-Version von Version 1.0 zu aktualisieren. Einzelheiten zur Eigenschaft finden Sie in den entsprechenden Abschnitten.
Version 2.0
Der verknüpfte Oracle-Dienst unterstützt die folgenden Eigenschaften, wenn Version 2.0 angewendet wird:
| Eigenschaft | Beschreibung | Erforderlich |
|---|---|---|
| Typ | Die type-Eigenschaft muss auf Oracle festgelegt werden. | Ja |
| version | Die von Ihnen angegebene Version. Der Wert ist 2.0. |
Ja |
| server | Der Speicherort der Oracle-Datenbank, mit der Sie eine Verbindung herstellen möchten. Sie können auf die Servereigenschaftenkonfiguration verweisen, um sie anzugeben. | Ja |
| Authentifizierungstyp | Authentifizierungstyp für die Verbindung mit der Oracle-Datenbank. Nur die Standardauthentifizierung wird jetzt unterstützt. | Ja |
| Benutzername | Der Benutzername der Oracle-Datenbank. | Ja |
| Kennwort | Das Oracle-Datenbankkennwort. Markieren Sie dieses Feld als SecureString, um es sicher zu speichern. Alternativ können Sie auf ein in Azure Key Vault gespeichertes Geheimnis verweisen. | Ja |
| connectVia | Die Integration Runtime, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet werden soll. Weitere Informationen finden Sie im Abschnitt Voraussetzungen. Wenn keine Option angegeben ist, wird die standardmäßige Azure Integration Runtime verwendet. | Nein |
Je nach Fall können Sie die folgenden zusätzlichen Verbindungseigenschaften im verknüpften Dienst festlegen.
| Eigenschaft | Beschreibung | Erforderlich | Standardwert |
|---|---|---|---|
| Verschlüsselungsclient | Legt das Verhalten des Verschlüsselungsclients fest Unterstützte Werte sind accepted, , rejected, requestedoder required. Typ: Zeichenfolge |
Nein | required |
| VerschlüsselungsartenClient | Gibt die Verschlüsselungsalgorithmen an, die der Client verwenden kann Unterstützte Werte sind AES128, AES192, AES256, 3DES112, 3DES168. Typ: Zeichenfolge |
Nein | (AES256) |
| cryptoChecksumClient | Gibt das gewünschte Datenintegritätsverhalten an, wenn dieser Client eine Verbindung mit einem Server herstellt Unterstützte Werte sind accepted, , rejected, requestedoder required. Typ: Zeichenfolge |
Nein | required |
| cryptoChecksumTypesClient | Gibt die Krypto-Prüfsummenalgorithmen an, die der Client verwenden kann Unterstützte Werte sind SHA1, SHA256, SHA384, SHA512. Typ: Zeichenfolge |
Nein | (SHA512) |
| initialLobFetchSize | Gibt die Menge an, die die Quelle anfänglich für LOB-Spalten abruft. Typ: int | Nein | 0 |
| fetchSize | Gibt die Anzahl der Bytes an, die der Treiber zuordnet, um die Daten in einem Datenbank-Roundtrip abzurufen. Typ: int | Nein | 10 MB |
| statementCacheSize | Gibt die Anzahl der Cursor oder Anweisungen an, die für jede Datenbankverbindung zwischengespeichert werden sollen. Typ: int | Nein | 0 |
| initializationString | Gibt einen Befehl an, der unmittelbar nach dem Herstellen einer Verbindung mit der Datenbank zum Verwalten von Sitzungseinstellungen ausgegeben wird Typ: Zeichenfolge | Nein | NULL |
| enableBulkLoad | Gibt an, ob beim Laden von Daten in die Datenbank Massenkopie oder Batcheinfügung verwendet werden soll. Typ: boolean | Nein | Wahr |
| supportV1DataTypes | Gibt an, ob die Datentypzuordnungen der Version 1.0 verwendet werden sollen. Legen Sie dies nicht auf "true" fest, es sei denn, Sie möchten die Abwärtskompatibilität mit den Datentypzuordnungen der Version 1.0 beibehalten. Typ: boolean | Nein, diese Eigenschaft dient nur zur Abwärtskompatibilität. | Falsch |
| fetchTswtzAsTimestamp | Gibt an, ob der Treiber den Spaltenwert mit dem Datentyp TIMESTAMP WITH TIME ZONE als DateTime oder Zeichenfolge zurückgibt Diese Einstellung wird ignoriert, wenn supportV1DataTypes nicht wahr ist. Typ: boolean | Nein, diese Eigenschaft dient nur zur Abwärtskompatibilität. | Wahr |
Beispiel:
{
"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"
}
}
}
Beispiel: Speichern des Kennworts in 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 Eigenschaftenkonfiguration
Für die Eigenschaft server können Sie eines der folgenden drei Formate angeben.
| Format | Beispiel |
|---|---|
| Verbindungsdeskriptor | (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com))) |
| Easy Connect (Plus)-Benennung | salesserver1:1521/sales.us.example.com |
| Oracle Net Services Name (TNS Alias) ( nur für die selbst gehostete Integrationslaufzeit) | Umsatz |
In der folgenden Liste sind die unterstützten Parameter aufgeführt, die in server verwendet werden. Wenn Sie Parameter verwenden, die sich nicht in der folgenden Liste befinden, schlägt die Verbindung fehl.
Bei Verwendung der Azure-Integrationslaufzeit:
GASTGEBER
HAFEN
PROTOKOLL
SERVICE_NAME
SID
INSTANCE_NAME
SERVER
CONNECT_TIMEOUT
RETRY_COUNT
RETRY_DELAY
SSL_VERSION
SSL_SERVER_DN_MATCH
SSL_SERVER_CERT_DNBei Verwendung der selbst gehosteten Integrationslaufzeit:
GASTGEBER
HAFEN
PROTOKOLL
ENABLE
Ablaufzeit
FAILOVER
Lastenausgleich
RECV_BUF_SIZE
SDU
SEND_BUF_SIZE
SOURCE_ROUTE
DIENSTLEISTUNGSTYP
COLOCATION_TAG
VERBINDUNGS_ID_PRÄFIX
Fehlermodus
GLOBAL_NAME
HS
INSTANCE_NAME
Poolgrenze
POOL_CONNECTION_CLASS
POOL_NAME
POOL_REINHEIT
RDB_DATABASE
SHARDING_KEY
SHARDING_KEY_ID
SUPER_SHARDING_KEY
SERVER
SERVICE_NAME
SID
TUNNEL_SERVICE_NAME
SSL_CLIENT_AUTHENTIFIZIERUNG
SSL_CERTIFICATE_ALIAS
SSL_ZERTIFIKAT_FINGERABDRUCK
SSL_VERSION
SSL_SERVER_DN_MATCH
SSL_SERVER_CERT_DN
WALLET_LOCATION
CONNECT_TIMEOUT
RETRY_COUNT
RETRY_DELAY
TRANSPORT_CONNECT_TIMEOUT
RECV_TIMEOUT
Kompression
KOMPRESSIONSEBENEN
Version 1.0
Der verknüpfte Oracle-Dienst unterstützt die folgenden Eigenschaften, wenn Version 1.0 angewendet wird:
| Eigenschaft | Beschreibung | Erforderlich |
|---|---|---|
| Typ | Die type-Eigenschaft muss auf Oracle festgelegt werden. | Ja |
| connectionString | Gibt die Informationen an, die zum Herstellen einer Verbindung mit der Oracle-Datenbankinstanz erforderlich sind. Sie können auch ein Kennwort in Azure Key Vault speichern und die password-Konfiguration aus der Verbindungszeichenfolge pullen. Ausführlichere Informationen finden Sie in den folgenden Beispielen sowie unter Speichern von Anmeldeinformationen in Azure Key Vault. Unterstützter Verbindungstyp: Sie können Oracle SID oder Oracle-Dienstname zur Identifizierung Ihrer Datenbank verwenden: – Wenn Sie die SID verwenden: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;– Wenn Sie den Dienstnamen verwenden: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;Für erweiterte native Oracle-Verbindungsoptionen können Sie wahlweise einen Eintrag in der Datei TNSNAMES.ORA auf dem Computer hinzufügen, auf dem die selbstgehostete Integration Runtime installiert ist, und im verknüpften Oracle-Dienst wählen Sie den Verbindungstyp „Oracle-Dienstname“ aus, und konfigurieren Sie den entsprechenden Dienstnamen. |
Ja |
| connectVia | Die Integration Runtime, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet werden soll. Weitere Informationen finden Sie im Abschnitt Voraussetzungen. Wenn keine Option angegeben ist, wird die standardmäßige Azure Integration Runtime verwendet. | Nein |
Tipp
Wenn Ihnen der Fehler „UPI parameter out of range“ (ORA-01025: URI-Parameter außerhalb des zulässigen Bereichs) angezeigt wird und Sie die Oracle-Version 8i verwenden, fügen Sie Ihrer Verbindungszeichenfolge WireProtocolMode=1 hinzu. Versuchen Sie es anschließend noch mal.
Wenn Sie mehrere Oracle-Instanzen für ein Failoverszenario haben, können Sie den mit Oracle verknüpften Dienst erstellen und den primären Host, den Port, den Benutzernamen, das Kennwort usw. ausfüllen sowie ein neues „Zusätzliche Verbindungseigenschaften“ mit dem Eigenschaftsnamen AlternateServers und dem Wert (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>) hinzufügen. Vergessen dabei nicht die eckigen Klammern, und achten Sie auf die Doppelpunkte (:) als Trennzeichen. Beispielsweise definiert der folgende Wert von alternativen Servern zwei alternative Datenbankserver für das Verbindungsfailover: (HostName=AccountingOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany).
Weitere Verbindungseigenschaften, die Sie abhängig von Ihrem Anwendungsfall in der Verbindungszeichenfolge festlegen können:
| Eigenschaft | Beschreibung | Zulässige Werte |
|---|---|---|
| ArraySize | Die Anzahl von Bytes, die der Connector in einem einzelnen Netzwerkroundtrip abrufen kann. Beispiel: ArraySize=10485760.Größere Werte erhöhen den Durchsatz, indem seltener Daten über das Netzwerk abgerufen werden. Kleinere Werte erhöhen die Reaktionszeit, da weniger lange auf die Übertragung von Daten durch den Server gewartet werden muss. |
Eine ganze Zahl zwischen 1 und 4.294.967.296 (4 GB). Der Standardwert ist 60000. Der Wert 1 definiert nicht die Anzahl von Bytes, sondern gibt die Zuordnung von Speicherplatz für genau eine Datenzeile an. |
Zum Aktivieren der Verschlüsselung bei einer Oracle-Verbindung haben Sie zwei Möglichkeiten:
Um die Triple-DES-Verschlüsselung (3DES) und Advanced Encryption Standard (AES) zu verwenden, wechseln Sie aufseiten des Oracle-Servers zu Oracle Advanced Security (OAS), und konfigurieren Sie die Verschlüsselungseinstellungen. Ausführliche Informationen finden Sie in der Oracle-Dokumentation. Der Oracle-ADF-Connector (Application Development Framework) handelt automatisch die zu verwendende Verschlüsselungsmethode als diejenige aus, die Sie in OAS bei der Verbindungsherstellung mit Oracle konfigurieren.
Um TLS zu verwenden, richten Sie
truststorefür die SSL-Serverauthentifizierung ein, indem Sie eine der folgenden drei Methoden anwenden:Methode 1 (empfohlen):
Installieren Sie das TLS- bzw. SSL-Zertifikat, indem Sie es in den lokalen Zertifikatspeicher importieren. Der integrierte Oracle-Treiber kann das erforderliche Zertifikat aus dem Zertifikatspeicher laden.
Konfigurieren Sie im Dienst die Oracle-Verbindungszeichenfolge mit
EncryptionMethod=1.
Methode 2:
Rufen Sie die TLS- bzw. SSL-Zertifikatinformationen ab. Rufen Sie die DER-codierten (Distinguished Encoding Rules) oder PEM-codierten (Privacy Enhanced Mail) Zertifikatinformationen Ihres TLS- bzw. SSL-Zertifikats ab.
openssl x509 -inform (DER|PEM) -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -textKonfigurieren Sie im Dienst die Oracle-Verbindungszeichenfolge mit
EncryptionMethod=1und dem entsprechenden Wert vonTrustStore. Zum Beispiel,Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore= data:// -----BEGIN CERTIFICATE-----<certificate content>-----END CERTIFICATE-----Hinweis
- Dem Wert des Felds für
TrustStoresolltedata://vorangestellt werden. - Wenn Sie Inhalt für mehrere Zertifikate angeben, geben Sie den Inhalt jedes Zertifikats zwischen
-----BEGIN CERTIFICATE-----und-----END CERTIFICATE-----an. Die Anzahl der Gedankenstriche (-----) sollte vor und nachBEGIN CERTIFICATEundEND CERTIFICATEidentisch sein. Beispiel:
-----BEGIN CERTIFICATE-----<certificate content 1>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate content 2>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate content 3>-----END CERTIFICATE----- - Das Feld für
TrustStoreunterstützt eine Länge von bis zu 8.192 Zeichen.
- Dem Wert des Felds für
Methode 3:
Erstellen Sie die
truststore-Datei mit einem starken Verschlüsselungsverfahren wie 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 -exportLegen Sie die
truststore-Datei auf dem Computer mit der selbstgehosteten Integration Runtime ab. Legen Sie die Datei beispielsweise unterC:\MyTrustStoreFileab.Konfigurieren Sie im Dienst die Oracle-Verbindungszeichenfolge mit
EncryptionMethod=1und dem entsprechenden Wert vonTrustStore/TrustStorePassword. Beispiel:Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>.
Beispiel:
{
"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"
}
}
}
Beispiel: Speichern des Kennworts in 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"
}
}
}
Dataset-Eigenschaften
Dieser Abschnitt enthält eine Liste der Eigenschaften, die vom Oracle-Dataset unterstützt werden. Eine vollständige Liste mit den Abschnitten und Eigenschaften, die zum Definieren von Datasets zur Verfügung stehen, finden Sie im Artikel zu Datasets.
Legen Sie zum Kopieren von Daten aus bzw. nach Oracle die Eigenschaft „type“ des Datasets auf OracleTable fest. Die folgenden Eigenschaften werden unterstützt.
| Eigenschaft | Beschreibung | Erforderlich |
|---|---|---|
| Typ | Die Eigenschaft „type“ des Datasets muss auf OracleTable festgelegt werden. |
Ja |
| schema | Name des Schemas. | Quelle: Nein, Senke: Ja |
| Tisch | Name der Tabelle/Ansicht. | Quelle: Nein, Senke: Ja |
| Tabellenname | Name der Tabelle/Ansicht mit Schema. Diese Eigenschaft wird aus Gründen der Abwärtskompatibilität weiterhin unterstützt. Verwenden Sie für eine neue Workload schema und table. |
Quelle: Nein, Senke: Ja |
Beispiel:
{
"name": "OracleDataset",
"properties":
{
"type": "OracleTable",
"schema": [],
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
},
"linkedServiceName": {
"referenceName": "<Oracle linked service name>",
"type": "LinkedServiceReference"
}
}
}
Eigenschaften der Kopieraktivität
Dieser Abschnitt enthält eine Liste der Eigenschaften, die von der Oracle-Quelle und -Senke unterstützt werden. Eine vollständige Liste der verfügbaren Abschnitte und Eigenschaften zum Definieren von Aktivitäten finden Sie unter Pipelines.
Oracle als Quelle
Tipp
Weitere Informationen zum effizienten Laden von Daten aus Oracle mittels Datenpartitionierung finden Sie unter Parallele Kopie von Oracle.
Legen Sie zum Kopieren von Daten aus Oracle den Quelltyp in der Kopieraktivität auf OracleSource fest. Die folgenden Eigenschaften werden im Abschnitt source der Kopieraktivität unterstützt.
| Eigenschaft | Beschreibung | Erforderlich |
|---|---|---|
| Typ | Die Eigenschaft „type“ der Quelle der Kopieraktivität muss auf OracleSource festgelegt werden. |
Ja |
| oracleReaderQuery | Verwendet die benutzerdefinierte SQL-Abfrage zum Lesen von Daten. z. B. "SELECT * FROM MyTable". Beachten Sie, dass die Abfrage nicht mit einem Semikolon (;)) enden soll. Wenn Sie partitioniertes Laden aktivieren, müssen Sie die entsprechenden integrierten Partitionsparameter in Ihre Abfrage integrieren. Beispiele finden Sie im Abschnitt Paralleles Kopieren aus Oracle. |
Nein |
| DezimalInGanzzahlUmwandeln | Der Oracle NUMBER-Typ mit null oder nicht angegebener Skalierung wird in die entsprechende ganze Zahl konvertiert. Zulässige Werte sind true und false (Standard). Wenn Sie Oracle Version 2.0 verwenden, darf diese Eigenschaft nur festgelegt werden, wenn supportV1DataTypes true ist. |
Nein |
| Partitionierungsoptionen | Gibt die Datenpartitionierungsoptionen an, mit denen Daten aus Oracle geladen werden. Zulässige Werte sind: None (Standard), PhysicalPartitionsOfTable und DynamicRange. Wenn eine Partitionsoption aktiviert ist (d. h. nicht None), wird der Grad an Parallelität zum gleichzeitigen Laden von Daten aus einer Oracle-Datenbank durch die Einstellung parallelCopies für die Kopieraktivität gesteuert. |
Nein |
| Partitionseinstellungen | Geben Sie die Gruppe der Einstellungen für die Datenpartitionierung an. Verwenden Sie diese Option, wenn die Partitionsoption nicht None lautet. |
Nein |
| partitionNames | Die Liste der physischen Partitionen, die kopiert werden müssen. Verwenden Sie diese Option, wenn die Partitionsoption PhysicalPartitionsOfTable lautet. Wenn Sie die Quelldaten mithilfe einer Abfrage abrufen, integrieren Sie ?AdfTabularPartitionName in die WHERE-Klausel. Ein Beispiel finden Sie im Abschnitt Paralleles Kopieren aus Oracle. |
Nein |
| partitionColumnName | Geben Sie den Namen der Quellspalte als Integer an, der von der Bereichspartitionierung für den parallelen Kopiervorgang verwendet wird. Ohne Angabe wird der Primärschlüssel der Tabelle automatisch erkannt und als Partitionsspalte verwendet. Verwenden Sie diese Option, wenn die Partitionsoption DynamicRange lautet. Wenn Sie die Quelldaten mithilfe einer Abfrage abrufen, integrieren Sie ?AdfRangePartitionColumnName in die WHERE-Klausel. Ein Beispiel finden Sie im Abschnitt Paralleles Kopieren aus Oracle. |
Nein |
| Partition-Obergrenze | Der Höchstwert der Partitionsspalte zum Herauskopieren von Daten. Verwenden Sie diese Option, wenn die Partitionsoption DynamicRange lautet. Wenn Sie die Quelldaten mithilfe einer Abfrage abrufen, integrieren Sie ?AdfRangePartitionUpbound in die WHERE-Klausel. Ein Beispiel finden Sie im Abschnitt Paralleles Kopieren aus Oracle. |
Nein |
| partitionLowerBound | Der Mindestwert der Partitionsspalte zum Herauskopieren von Daten. Verwenden Sie diese Option, wenn die Partitionsoption DynamicRange lautet. Wenn Sie die Quelldaten mithilfe einer Abfrage abrufen, integrieren Sie ?AdfRangePartitionLowbound in die WHERE-Klausel. Ein Beispiel finden Sie im Abschnitt Paralleles Kopieren aus Oracle. |
Nein |
| Zahlenpräzision | Geben Sie die maximale Anzahl signifikanter Dezimalziffern an. Zulässige Werte liegen zwischen 1 und 256. Wird standardmäßig auf 256 zurückgesetzt, wenn nicht anders angegeben. Diese Eigenschaft wird in Oracle Version 2.0 unterstützt. Gilt nur für NUMBER-Typen, die keine Präzision und keinen Umfang explizit in der Oracle-Datenbank definiert haben. Kann festgelegt werden, wenn supportV1DataTypes nicht true ist. Wenn Sie selbst gehostete Integrationslaufzeit verwenden, sollte die Version 5.56 oder höher sein. |
Nein |
| Zahlenskala | Geben Sie die Anzahl der Ziffern nach dem Dezimalkomma an. Zulässige Werte liegen zwischen 0 und 130 und müssen kleiner oder gleich der Genauigkeit sein. Bei fehlender Angabe standardmäßig 130 Diese Eigenschaft wird in Oracle Version 2.0 unterstützt. Gilt nur für NUMBER-Typen, die keine Präzision und keinen Umfang explizit in der Oracle-Datenbank definiert haben. Kann festgelegt werden, wenn supportV1DataTypes nicht true ist. Wenn Sie selbst gehostete Integrationslaufzeit verwenden, sollte die Version 5.56 oder höher sein. |
Nein |
Beispiel: Kopieren von Daten mit einer einfachen Abfrage ohne Partition
"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 als Senke
Legen Sie zum Kopieren von Daten in Oracle den Senkentyp in der Kopieraktivität auf OracleSink fest. Die folgenden Eigenschaften werden im Abschnitt sink der Kopieraktivität unterstützt.
| Eigenschaft | Beschreibung | Erforderlich |
|---|---|---|
| Typ | Die Eigenschaft „type“ der Senke der Kopieraktivität muss auf OracleSink festgelegt werden. |
Ja |
| writeBatchSize | Fügt Daten in die SQL-Tabelle ein, wenn die Puffergröße writeBatchSize erreicht.Zulässige Werte sind Integer-Werte (Anzahl der Zeilen). |
Nein (Standardwert ist 10.000) |
| writeBatchTimeout | Die Wartezeit für den Abschluss der Batcheinfügung, bevor ein Timeout auftritt. Zulässige Werte sind Timespan-Werte. Beispiel: 00:30:00 (30 Minuten). |
Nein |
| preCopyScript | Geben Sie eine SQL-Abfrage an, die bei jeder Ausführung von der Kopieraktivität ausgeführt werden soll, bevor Daten in Oracle geschrieben werden. Sie können diese Eigenschaft nutzen, um die vorab geladenen Daten zu bereinigen. | Nein |
| maxConcurrentConnections | Die Obergrenze gleichzeitiger Verbindungen mit dem Datenspeicher während der Aktivitätsausführung. Geben Sie diesen Wert nur an, wenn Sie die Anzahl der gleichzeitigen Verbindungen begrenzen möchten. | Nein |
Beispiel:
"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"
}
}
}
]
Parallele Kopie von Oracle
Der Oracle-Connector stellt eine integrierte Datenpartitionierung zum parallelen Kopieren von Daten aus Oracle zur Verfügung. Die Datenpartitionierungsoptionen befinden sich auf der Registerkarte Quelle der Kopieraktivität.
Wenn Sie partitioniertes Kopieren aktivieren, führt der Dienst parallele Abfragen gegenüber Ihrer Oracle-Quelle aus, um Daten anhand von Partitionen zu laden. Der Parallelitätsgrad wird über die Einstellung parallelCopies der Kopieraktivität gesteuert. Wenn Sie z. B. parallelCopies auf vier einstellen, generiert der Dienst gleichzeitig vier Abfragen auf der Grundlage der von Ihnen angegebenen Partitionsoption und -einstellungen und führt sie aus, wobei jede Abfrage einen Teil der Daten aus Ihrer Oracle-Datenbank abruft.
Es wird empfohlen, das parallele Kopieren mit Datenpartitionierung zu aktivieren, vor allem, wenn Sie große Datenmengen aus Ihrer Oracle-Datenbank 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.
| Szenario | Empfohlene Einstellungen |
|---|---|
| Vollständiges Laden aus einer großen Tabelle mit physischen Partitionen |
Partitionsoption: Physische Partitionen der Tabelle. Während der Ausführung erkennt der Dienst automatisch die physischen Partitionen und kopiert Daten nach Partitionen. |
| Vollständiges Laden aus einer großen Tabelle ohne physische Partitionen, aber mit einer Integerspalte für die Datenpartitionierung |
Partitionsoptionen: Partition des dynamischen Bereichs Partitionsspalte: Geben Sie die Spalte an, die zum Partitionieren von Daten verwendet wird. Ohne Angabe wird die Primärschlüsselspalte verwendet. |
| Laden einer großen Datenmenge unter Verwendung einer benutzerdefinierten Abfrage mit physischen Partitionen |
Partitionsoption: Physische Partitionen der Tabelle. Abfrage: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause>Partitionsname: Geben Sie den/die Namen der Partition(en) an, aus denen Daten kopiert werden sollen. Wenn nicht angegeben, erkennt der Dienst automatisch die physischen Partitionen der Tabelle, die Sie im Oracle-Datensatz angegeben haben. Während der Ausführung ersetzt der Dienst ?AdfTabularPartitionName durch den tatsächlichen Partitionsnamen und sendet ihn an Oracle. |
| Laden einer großen Datenmenge unter Verwendung einer benutzerdefinierten Abfrage ohne physische Partitionen, aber mit einer Integerspalte für die Datenpartitionierung |
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. Partition obere Grenze und Partition untere Grenze: Geben Sie an, ob Sie die Partitionsspalte filtern möchten, um nur Daten zwischen dem unteren und oberen Bereich abzurufen. Während der Ausführung ersetzt der Dienst ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound und ?AdfRangePartitionLowbound durch die tatsächlichen Spaltennamen und Wertebereiche für jede Partition und sendet sie an Oracle. Wenn z. B. für Ihre Partitionsspalte „ID“ die untere Grenze auf 1 und die obere Grenze auf 80 festgelegt ist und die Parallelkopie auf 4 eingestellt ist, ruft der Dienst Daten nach 4 Partitionen ab. Die ID-Bereiche sehen dann wie folgt aus: [1–20], [21–40], [41–60] und [61–80]. |
Tipp
Beim Kopieren von Daten aus einer nicht partitionierten Tabelle können Sie die Partitionsoption „Dynamischer Bereich“ verwenden, um eine Partitionierung auf Grundlage einer ganzzahlige Spalte durchzuführen. Wenn die Quelldaten keinen solchen Spaltentyp enthalten, können Sie mithilfe der ORA_HASH-Funktion in der Quellabfrage eine Spalte generieren und diese als Partitionsspalte verwenden.
Beispiel: Abfrage mit physischer Partition
"source": {
"type": "OracleSource",
"query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
"partitionOption": "PhysicalPartitionsOfTable",
"partitionSettings": {
"partitionNames": [
"<partitionA_name>",
"<partitionB_name>"
]
}
}
Beispiel: Abfrage mit dynamischer Bereichspartition
"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>"
}
}
Datentypzuordnung für Oracle
Wenn Sie Daten von und nach Oracle kopieren, werden die folgenden vorläufigen Datentypzuordnungen innerhalb des Dienstes verwendet. Weitere Informationen dazu, wie die Kopieraktivität das Quellschema und den Datentyp zur Senke zuordnet, finden Sie unter Schema- und Datentypzuordnungen.
| Oracle-Datentyp | Zwischendienstdatentyp (für Version 2.0) | Zwischendienstdatentyp (für Version 1.0) |
|---|---|---|
| BFILE | Byte[] | Byte[] |
| BINARY_FLOAT | Ledig | Ledig |
| BINARY_DOUBLE | Double | Double |
| BLOB | Byte[] | Byte[] |
| CHAR | Schnur | Schnur |
| CLOB | Schnur | Schnur |
| Datum | Datum/Uhrzeit | Datum/Uhrzeit |
| FLOAT (P < 16) | Double | Double |
| FLOAT (P >= 16) | Dezimalzahl | Double |
| INTERVALL VON JAHR ZU MONAT | Int64 | Schnur |
| Intervall von Tag bis Sekunde | Zeitspanne | Schnur |
| LONG | Schnur | Schnur |
| LONG RAW | Byte[] | Byte[] |
| NCHAR | Schnur | Schnur |
| NCLOB | Schnur | Schnur |
| NUMBER (p,s) | Int16, Int32, Int64, Single, Double, Decimal | Dezimal, Zeichenfolge (wenn p > 28) |
| NUMBER ohne Genauigkeit und Dezimalstellen | Dezimal (256,130) | Double |
| NVARCHAR2 | Schnur | Schnur |
| RAW | Byte[] | Byte[] |
| timestamp | Datum/Uhrzeit | Datum/Uhrzeit |
| TIMESTAMP MIT LOKALER ZEITZONE | Datum/Uhrzeit | Datum/Uhrzeit |
| ZEITSTEMPEL MIT ZEITZONE | DateTimeOffset | Datum/Uhrzeit |
| VARCHAR2 | Schnur | Schnur |
| XMLTYPE | Schnur | Schnur |
NUMBER(p,s) wird je nach Präzision (p) und Skalierung (s) dem entsprechenden Interimdatentyp der Version 2.0 zugeordnet.
| Datentyp der Zwischendienstleistung | Zustand |
|---|---|
| Int16 | scale <= 0 AND (precision - scale) < 5 |
| Int32 | Skala <= 0 UND 5 <= (Präzision - Skala) < 10 |
| Int64 | scale <= 0 AND 10 <= (Precision - scale) < 19 |
| Ledig | Genauigkeit < 8 UND ((Skalierung <= 0 UND (Genauigkeit - Skalierung) <= 38) ODER (Skalierung > 0 UND Skalierung <= 44)) |
| Dezimalzahl | Genauigkeit >= 16 |
| Double | Wenn keine der oben genannten Bedingungen erfüllt ist. |
Eigenschaften der Lookup-Aktivität
Ausführliche Informationen zu den Eigenschaften finden Sie unter Lookup-Aktivität.
Upgrade des Oracle-Connectors
Die folgenden Schritte helfen Ihnen beim Upgrade des Oracle-Connectors:
Wählen Sie auf der Seite "Verknüpften Dienst bearbeiten " die Option 2.0 unter "Version " aus, und konfigurieren Sie den verknüpften Dienst, indem Sie auf die Verknüpften Diensteigenschaften Version 2.0 verweisen.
Geben Sie für die Authentifizierungseigenschaften einschließlich Benutzername und Kennwort die ursprünglichen Werte in den entsprechenden Feldern in Version 2.0 an. Andere Verbindungseigenschaften wie Host, Port und Oracle Service Name/Oracle SID in Version 1.0 sind jetzt Parameter der
serverEigenschaft in Version 2.0.Wenn Sie z. B. den verknüpften Dienst version 1.0 wie unten dargestellt konfigurieren:
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "typeProperties": { "connectionString": "host=oraclesample.com;port=1521;servicename=db1" }, "connectVia": { "referenceName": "<name of Integration Runtime>", "type": "IntegrationRuntimeReference" } } }Die identische, mit Version 2.0 verknüpfte Dienstkonfiguration mit Easy Connect (Plus) Naming lautet:
{ "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" } } }Die identische, mit Version 2.0 verknüpfte Dienstkonfiguration mit Connectordeskriptor lautet:
{ "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" } } }Tipp
Azure Key Vault wird für die
serverEigenschaft unterstützt. Sie können den verknüpften Dienst-JSON bearbeiten, um den Azure Key Vault-Verweis hinzuzufügen, wie unten gezeigt:
Beachten Sie dabei Folgendes:
Wenn Sie Oracle Service Name in Version 1.0 verwenden, können Sie easy Connect (Plus) Naming or Connector Descriptor als Serverformat in Version 2.0 verwenden.
Wenn Sie Oracle SID in Version 1.0 verwenden, müssen Sie Connector-Deskriptor als Serverformat in Version 2.0 verwenden.
Für einige zusätzliche Verbindungseigenschaften in Version 1.0 stellen wir alternative Eigenschaften oder Parameter in der
serverEigenschaft in Version 2.0 bereit. Sie können auf die nachstehende Tabelle verweisen, um die Version 1.0-Eigenschaften zu aktualisieren.Version 1.0 Version 2.0 Verschlüsselungsmethode PROTOCOL (Parameter in server)tnsnamesfile TNS_ADMIN (Umgebungsvariable, die in der selbst gehosteten Integrationslaufzeit unterstützt wird) Servername server Bulkload aktivieren
Wert: 1, 0enableBulkLoad
Wert: wahr, falschfetchtswtzastimestamp
Wert: 1, 0fetchTswtzAsTimestamp
Wert: wahr, falschalternierende Server DESCRIPTION_LIST (Parameter in server)arraysize fetchSize Zwischengespeicherte Cursorbegrenzung statementCacheSize connectionretrycount RETRY_COUNT (Parameter in server)initializationstring initializationString Anmeldezeitschwelle CONNECT_TIMEOUT (Parameter in server)Krypto-Protokollversion SSL_VERSION (Parameter in server)truststore WALLET_LOCATION (Parameter in server)Wenn Sie beispielsweise in Version 1.0 verwenden
alternateservers, können Sie denDESCRIPTION_LISTParameter in der Servereigenschaft in Version 2.0 festlegen:Mit Version 1.0 verknüpfter Dienst mit
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)" } } }Identischer, mit Version 2.0 verknüpfter Dienst mit dem Parameter
DESCRIPTION_LISTim Connectordeskriptor:{ "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>" } } }
Die Datentypzuordnung für die Oracle-verknüpfte Dienstversion 2.0 unterscheidet sich von der für die Version 1.0. Informationen zur neuesten Datentypzuordnung finden Sie unter "Datentypzuordnung für Oracle".
Eine zusätzliche Verbindungseigenschaft
supportV1DataTypesin Version 2.0 kann Upgradeprobleme verringern, die durch Änderungen des Datentyps verursacht werden. Durch Festlegen dieser Eigenschaft wirdtruesichergestellt, dass der Datentyp in Version 2.0 mit Version 1.0 konsistent bleibt.
Unterschiede zwischen Oracle Version 2.0 und Version 1.0
Die Oracle Connector Version 2.0 bietet neue Funktionen und ist mit den meisten Features von Version 1.0 kompatibel. Die folgende Tabelle zeigt die Featureunterschiede zwischen Version 2.0 und Version 1.0.
| Version 2.0 | Version 1.0 |
|---|---|
| Die folgenden Zuordnungen werden von Oracle-Datentypen zu Zwischendienstdatentypen verwendet, die intern vom Dienst verwendet werden. NUMBER(p;s) -> Int16, Int32, Int64, Single, Double, Decimal FLOAT(p)-> Double oder Decimal, abhängig von der Präzision ZAHL -> Dezimalzahl TIMESTAMP MIT ZEITZONE:> DateTimeOffset INTERVALL JAHR BIS MONAT -> Int64 INTERVALL VON TAG BIS SEKUNDE -> TimeSpan |
Die folgenden Zuordnungen werden von Oracle-Datentypen zu Zwischendienstdatentypen verwendet, die intern vom Dienst verwendet werden. ZAHL(p;s) -> Dezimalzahl oder Zeichenfolge basierend auf ihrer Genauigkeit FLOAT(p)-> Double ZAHL -> Doppel TIMESTAMP MIT ZEITZONE -> DateTime INTERVALL JAHR BIS MONAT -> String INTERVAL DAY TO SECOND -> String |
Unterstützen Sie die Funktion convertDecimalToInteger in der Kopierquelle, wenn supportV1DataTypes auf true gesetzt ist. |
Unterstützung von convertDecimalToInteger in der Kopierquelle. |
Die Verwendung ? als Platzhalter für Skriptaktivitätsabfrageparameter wird nicht unterstützt. Sie können den benannten Parameter (z :paramA. B. ) oder den Positionsparameter (z :1. B. ) als Ersatz verwenden. |
Unterstützung der Verwendung ? als Platzhalter für Skriptaktivitätsabfrageparameter. |
| Unterstützt TLS 1.3. | TLS 1.3 wird nicht unterstützt. |
| Bidirektionale TLS/SSL mit Oracle SSO Wallet wird unterstützt. Weitere Informationen finden Sie in diesem Artikel. | Bidirektionale TLS/SSL mit Oracle Wallet wird nicht unterstützt. |