Kopieren von Daten von und nach Oracle mithilfe von Azure Data Factory oder Azure Synapse Analytics
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. Microsoft Fabric deckt alle Aufgaben ab, 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.
Unterstützte Funktionen
Dieser Oracle-Connector wird für die folgenden Funktionen unterstützt:
Unterstützte Funktionen | IR |
---|---|
Kopieraktivität (Quelle/Senke) | ① ② |
Lookup-Aktivität | ① ② |
Skriptaktivität | ① ② |
① 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:
- 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 einer virtuellen privaten Amazon-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
Sie können eines der folgenden Tools oder SDKs verwenden, um die Kopieraktivität mit einer Pipeline zu verwenden:
- Das Tool „Daten kopieren“
- Azure-Portal
- Das .NET SDK
- Das Python SDK
- Azure PowerShell
- Die REST-API
- Die 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 zu der 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 Connector-Konfiguration
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
Der verknüpfte Oracle-Dienst unterstützt folgende Eigenschaften:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | 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 die Oracle-SID oder den Oracle-Dienstnamen 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
Falls der Fehler „ORA-01025: 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 Folgendes hinzu: WireProtocolMode=1
. 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
truststore
fü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] -text
Konfigurieren Sie im Dienst die Oracle-Verbindungszeichenfolge mit
EncryptionMethod=1
und dem entsprechenden Wert vonTrustStore
. 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
TrustStore
solltedata://
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 CERTIFICATE
undEND CERTIFICATE
identisch sein. Zum 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
TrustStore
unterstü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 -export
Legen Sie die
truststore
-Datei auf dem Computer mit der selbstgehosteten Integration Runtime ab. Legen Sie die Datei beispielsweise unterC:\MyTrustStoreFile
ab.Konfigurieren Sie im Dienst die Oracle-Verbindungszeichenfolge mit
EncryptionMethod=1
und 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 |
---|---|---|
type | Die Eigenschaft „type“ des Datasets muss auf OracleTable festgelegt werden. |
Ja |
schema | Name des Schemas. | Quelle: Nein, Senke: Ja |
table | Name der Tabelle/Ansicht. | Quelle: Nein, Senke: Ja |
tableName | 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 |
---|---|---|
type | 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" .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 |
convertDecimalToInteger | 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). | Nein |
partitionOptions | Gibt die Datenpartitionierungsoptionen an, mit denen Daten aus Oracle geladen werden. Zulässige Werte sind: None (Standardwert), 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 |
partitionSettings | 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 |
partitionUpperBound | 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 |
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 |
---|---|---|
type | 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. | Ohne |
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. (Geben Sie nur den Ordnernamen an.) 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: Dynamische Bereichspartitionierung Partitionsspalte: Geben Sie die Spalte für die Datenpartitionierung an. 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 Namen der Partitionen 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: Dynamische Bereichspartitionierung Abfrage: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause> Partitionsspalte: Geben Sie die Spalte für die Datenpartitionierung an. Die Partitionierung kann auf der Grundlage der Spalte mit dem Datentyp „Integer“ erfolgen. Obergrenze der Partition und Untergrenze der Partition: Geben Sie an, ob Sie anhand der Partitionsspalte filtern möchten, um nur Daten zwischen der Ober- und der Untergrenze zu erhalten. 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 | Typ von vorläufigen Daten |
---|---|
BFILE | Byte[] |
BLOB | Byte[] (nur für Oracle 10g und höher unterstützt) |
CHAR | String |
CLOB | String |
DATE | Datetime |
GLEITKOMMAZAHL | Dezimal, Zeichenfolge (wenn Genauigkeit > 28) |
INTEGER | Dezimal, Zeichenfolge (wenn Genauigkeit > 28) |
LONG | String |
LONG RAW | Byte[] |
NCHAR | String |
NCLOB | String |
NUMBER (p,s) | Dezimal, Zeichenfolge (wenn p > 28) |
NUMBER ohne Genauigkeit und Dezimalstellen | Double |
NVARCHAR2 | String |
RAW | Byte[] |
ROWID | String |
TIMESTAMP | DateTime |
TIMESTAMP WITH LOCAL TIME ZONE | String |
TIMESTAMP WITH TIME ZONE | String |
UNSIGNED INTEGER | Number |
VARCHAR2 | String |
XML | String |
Hinweis
Die Datentypen INTERVAL YEAR TO MONTH und INTERVAL DAY TO SECOND werden nicht unterstützt.
Eigenschaften der Lookup-Aktivität
Ausführliche Informationen zu den Eigenschaften finden Sie unter Lookup-Aktivität.
Zugehöriger Inhalt
Eine Liste der Datenspeicher, die als Quelles und Senken für die Kopieraktivität unterstützt werden, finden Sie in Unterstützte Datenspeicher.