Kopiera data från Amazon RDS för Oracle med hjälp av Azure Data Factory eller Azure Synapse Analytics
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Den här artikeln beskriver hur du använder kopieringsaktiviteten i Azure Data Factory för att kopiera data från en Amazon RDS för Oracle-databas. Den bygger på översikten över kopieringsaktiviteten.
Funktioner som stöds
Den här Amazon RDS för Oracle-anslutningsprogrammet stöds för följande funktioner:
Funktioner som stöds | IR |
---|---|
Kopieringsaktivitet (källa/-) | (1) (2) |
Sökningsaktivitet | (1) (2) |
(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning
En lista över datalager som stöds som källor eller mottagare av kopieringsaktiviteten finns i tabellen Datalager som stöds.
Mer specifikt stöder den här Amazon RDS för Oracle-anslutningsprogrammet:
- Följande versioner av en Amazon RDS för Oracle-databas:
- Amazon RDS för Oracle 19c R1 (19.1) och senare
- Amazon RDS för Oracle 18c R1 (18.1) och senare
- Amazon RDS för Oracle 12c R1 (12.1) och senare
- Amazon RDS för Oracle 11g R1 (11.1) och senare
- Parallell kopiering från en Amazon RDS för Oracle-källa. Mer information finns i avsnittet Parallellkopia från Amazon RDS för Oracle .
Kommentar
Amazon RDS för Oracle-proxyserver stöds inte.
Förutsättningar
Om ditt datalager finns i ett lokalt nätverk, ett virtuellt Azure-nätverk eller Amazon Virtual Private Cloud måste du konfigurera en lokalt installerad integrationskörning för att ansluta till det.
Om ditt datalager är en hanterad molndatatjänst kan du använda Azure Integration Runtime. Om åtkomsten är begränsad till IP-adresser som är godkända i brandväggsreglerna kan du lägga till Azure Integration Runtime-IP-adresser i listan över tillåtna.
Du kan också använda funktionen för integrering av hanterade virtuella nätverk i Azure Data Factory för att få åtkomst till det lokala nätverket utan att installera och konfigurera en lokalt installerad integrationskörning.
Mer information om de nätverkssäkerhetsmekanismer och alternativ som stöds av Data Factory finns i Strategier för dataåtkomst.
Integreringskörningen tillhandahåller en inbyggd Amazon RDS för Oracle-drivrutin. Därför behöver du inte installera en drivrutin manuellt när du kopierar data från Amazon RDS för Oracle.
Kom igång
Om du vill utföra kopieringsaktiviteten med en pipeline kan du använda något av följande verktyg eller SDK:er:
- Verktyget Kopiera data
- Azure-portalen
- The .NET SDK
- The Python SDK
- Azure PowerShell
- REST-API:et
- Azure Resource Manager-mallen
Skapa en länkad tjänst till Amazon RDS för Oracle med hjälp av användargränssnittet
Använd följande steg för att skapa en länkad tjänst till Amazon RDS för Oracle i azure-portalens användargränssnitt.
Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Ny:
Sök efter Amazon RDS för Oracle och välj Amazon RDS för Oracle-anslutningsprogrammet.
Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.
Konfigurationsinformation för anslutningsprogram
Följande avsnitt innehåller information om egenskaper som används för att definiera entiteter som är specifika för Amazon RDS för Oracle-anslutningstjänsten.
Länkade tjänstegenskaper
Amazon RDS för den länkade tjänsten Oracle har stöd för följande egenskaper:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste anges till AmazonRdsForOracle. | Ja |
connectionString | Anger den information som behövs för att ansluta till Amazon RDS för Oracle Database-instansen. Du kan också placera ett lösenord i Azure Key Vault och hämta konfigurationen password från niska veze. Mer information finns i följande exempel och Lagra autentiseringsuppgifter i Azure Key Vault . Anslutningstyp som stöds: Du kan använda Amazon RDS för Oracle SID eller Amazon RDS för Oracle Service Name för att identifiera din databas: – Om du använder SID: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>; – Om du använder tjänstnamn: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>; För avancerade inbyggda anslutningsalternativ för Amazon RDS för Oracle kan du välja att lägga till en post i TNSNAMES. ORA-fil på Amazon RDS för Oracle-servern och i Amazon RDS för oracle-länkad tjänst väljer du att använda Amazon RDS för anslutningstypen Oracle Service Name och konfigurera motsvarande tjänstnamn. |
Ja |
connectVia | Den integrationskörning som ska användas för att ansluta till datalagret. Läs mer i avsnittet Förutsättningar . Om det inte anges används standardkörningen för Azure Integration Runtime. | Nej |
Om du har flera Amazon RDS för Oracle-instanser för redundansscenario kan du skapa Amazon RDS för oracle-länkad tjänst och fylla i den primära värden, porten, användarnamnet, lösenordet osv., och lägga till en ny "Ytterligare anslutningsegenskaper" med egenskapsnamn som AlternateServers
och värde som (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>)
– missa inte hakparenteserna och var uppmärksam på kolonen (:
) som avgränsare. Till exempel definierar följande värde för alternativa servrar två alternativa databasservrar för redundans vid anslutning: (HostName=AccountingAmazonRdsForOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany)
.
Fler anslutningsegenskaper som du kan ange i niska veze per ditt ärende:
Property | beskrivning | Tillåtna värden |
---|---|---|
Matrisstorlek | Antalet byte som anslutningsappen kan hämta i ett enda nätverk tur och retur. Exempel: ArraySize=10485760 Större värden ökar dataflödet genom att minska antalet gånger som data hämtas i nätverket. Mindre värden ökar svarstiden, eftersom det är mindre fördröjning som väntar på att servern ska överföra data. |
Ett heltal från 1 till 4294967296 (4 GB). Standardvärdet är 60000 . Värdet 1 definierar inte antalet byte, men anger allokering av utrymme för exakt en rad med data. |
Om du vill aktivera kryptering på Amazon RDS för Oracle-anslutning har du två alternativ:
Om du vill använda Triple-DES Encryption (3DES) och Advanced Encryption Standard (AES) går du till Oracle Advanced Security (OAS) på Amazon RDS för Oracle-serversidan och konfigurerar krypteringsinställningarna. Mer information finns i den här Oracle-dokumentationen. ADF-anslutningsappen (Amazon RDS for Oracle Application Development Framework) förhandlar automatiskt om krypteringsmetoden för att använda den som du konfigurerar i OAS när du upprättar en anslutning till Amazon RDS för Oracle.
Så här använder du TLS:
Hämta TLS/SSL-certifikatinformationen. Hämta den unika kodningsreglerna (DER)-kodad certifikatinformation för ditt TLS/SSL-certifikat och spara utdata (----- Begin Certificate ... Slutcertifikatet -----) som en textfil.
openssl x509 -inform DER -in [Full Path to the DER Certificate including the name of the DER Certificate] -text
Exempel: Extrahera certifikatinformation från DERcert.cer och spara sedan utdata i cert.txt.
openssl x509 -inform DER -in DERcert.cer -text Output: -----BEGIN CERTIFICATE----- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX -----END CERTIFICATE-----
keystore
Skapa ellertruststore
. Följande kommando skapartruststore
filen, med eller utan lösenord, i PKCS-12-format.openssl pkcs12 -in [Path to the file created in the previous step] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -nokeys -export
Exempel: Skapa en PKCS12-fil
truststore
med namnet MyTrustStoreFile med ett lösenord.openssl pkcs12 -in cert.txt -out MyTrustStoreFile -passout pass:ThePWD -nokeys -export
truststore
Placera filen på den lokalt installerade IR-datorn. Placera till exempel filen på C:\MyTrustStoreFile.I tjänsten konfigurerar du Amazon RDS för Oracle niska veze med
EncryptionMethod=1
och motsvarandeTrustStore
/TrustStorePassword
värde. Till exempelHost=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>
.
Exempel:
{
"name": "AmazonRdsForOracleLinkedService",
"properties": {
"type": "AmazonRdsForOracle",
"typeProperties": {
"connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exempel: Lagra lösenord i Azure Key Vault
{
"name": "AmazonRdsForOracleLinkedService",
"properties": {
"type": "AmazonRdsForOracle",
"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"
}
}
}
Egenskaper för datauppsättning
Det här avsnittet innehåller en lista över egenskaper som stöds av Amazon RDS för Oracle-datauppsättningen. En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i Datauppsättningar.
Om du vill kopiera data från Amazon RDS för Oracle anger du datamängdens typegenskap till AmazonRdsForOracleTable
. Följande egenskaper stöds.
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Datamängdens typegenskap måste anges till AmazonRdsForOracleTable . |
Ja |
schema | Namnet på schemat. | Nej |
table | Namnet på tabellen/vyn. | Nej |
tableName | Namnet på tabellen/vyn med schemat. Den här egenskapen stöds för bakåtkompatibilitet. För ny arbetsbelastning använder du schema och table . |
Nej |
Exempel:
{
"name": "AmazonRdsForOracleDataset",
"properties":
{
"type": "AmazonRdsForOracleTable",
"schema": [],
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
},
"linkedServiceName": {
"referenceName": "<Amazon RDS for Oracle linked service name>",
"type": "LinkedServiceReference"
}
}
}
Kopiera egenskaper för aktivitet
Det här avsnittet innehåller en lista över egenskaper som stöds av Amazon RDS för Oracle-källan. En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i Pipelines.
Amazon RDS för Oracle som källa
Dricks
Om du vill läsa in data från Amazon RDS för Oracle effektivt med hjälp av datapartitionering kan du läsa mer från Parallell kopiering från Amazon RDS för Oracle.
Om du vill kopiera data från Amazon RDS för Oracle anger du källtypen i kopieringsaktiviteten till AmazonRdsForOracleSource
. Följande egenskaper stöds i avsnittet kopieringsaktivitetskälla.
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för kopieringsaktivitetskällan måste vara inställd på AmazonRdsForOracleSource . |
Ja |
oracleReaderQuery | Använd den anpassade SQL-frågan för att läsa data. Ett exempel är "SELECT * FROM MyTable" .När du aktiverar partitionerad belastning måste du koppla motsvarande inbyggda partitionsparametrar i frågan. Exempel finns i avsnittet Parallell kopia från Amazon RDS för Oracle . |
Nej |
partitionOptions | Anger de datapartitioneringsalternativ som används för att läsa in data från Amazon RDS för Oracle. Tillåtna värden är: Ingen (standard), PhysicalPartitionsOfTable och DynamicRange. När ett partitionsalternativ är aktiverat (dvs. inte None ) styrs graden av parallellitet för att samtidigt läsa in data från en Amazon RDS för Oracle-databas av parallelCopies inställningen för kopieringsaktiviteten. |
Nej |
partitionSettings | Ange gruppen med inställningarna för datapartitionering. Använd när partitionsalternativet inte None är . |
Nej |
partitionNames | Listan över fysiska partitioner som måste kopieras. Använd när partitionsalternativet är PhysicalPartitionsOfTable . Om du använder en fråga för att hämta källdata kopplar ?AdfTabularPartitionName du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från Amazon RDS för Oracle . |
Nej |
partitionColumnName | Ange namnet på källkolumnen i heltalstyp som ska användas av intervallpartitionering för parallell kopiering. Om den inte anges identifieras den primära nyckeln i tabellen automatiskt och används som partitionskolumn. Använd när partitionsalternativet är DynamicRange . Om du använder en fråga för att hämta källdata kopplar ?AdfRangePartitionColumnName du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från Amazon RDS för Oracle . |
Nej |
partitionUpperBound | Det maximala värdet för partitionskolumnen för att kopiera ut data. Använd när partitionsalternativet är DynamicRange . Om du använder en fråga för att hämta källdata kopplar ?AdfRangePartitionUpbound du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från Amazon RDS för Oracle . |
Nej |
partitionLowerBound | Det minsta värdet för partitionskolumnen för att kopiera ut data. Använd när partitionsalternativet är DynamicRange . Om du använder en fråga för att hämta källdata kopplar ?AdfRangePartitionLowbound du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från Amazon RDS för Oracle . |
Nej |
Exempel: kopiera data med hjälp av en grundläggande fråga utan partition
"activities":[
{
"name": "CopyFromAmazonRdsForOracle",
"type": "Copy",
"inputs": [
{
"referenceName": "<Amazon RDS for Oracle input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AmazonRdsForOracleSource",
"oracleReaderQuery": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Parallell kopia från Amazon RDS för Oracle
Amazon RDS för Oracle-anslutningsprogrammet tillhandahåller inbyggd datapartitionering för att kopiera data från Amazon RDS för Oracle parallellt. Du hittar alternativ för datapartitionering på fliken Källa i kopieringsaktiviteten.
När du aktiverar partitionerad kopia kör tjänsten parallella frågor mot din Amazon RDS för Oracle-källa för att läsa in data efter partitioner. Den parallella graden styrs av parallelCopies
inställningen för kopieringsaktiviteten. Om du till exempel anger parallelCopies
till fyra genererar och kör tjänsten samtidigt fyra frågor baserat på det angivna partitionsalternativet och inställningarna, och varje fråga hämtar en del data från Amazon RDS för Oracle-databasen.
Du rekommenderas att aktivera parallell kopiering med datapartitionering, särskilt när du läser in stora mängder data från Amazon RDS för Oracle-databasen. Följande är föreslagna konfigurationer för olika scenarier. När du kopierar data till filbaserat datalager är det dags att skriva till en mapp som flera filer (ange endast mappnamn), i vilket fall prestandan är bättre än att skriva till en enda fil.
Scenario | Föreslagna inställningar |
---|---|
Full belastning från en stor tabell med fysiska partitioner. | Partitionsalternativ: Fysiska partitioner i tabellen. Under körningen identifierar tjänsten automatiskt de fysiska partitionerna och kopierar data efter partitioner. |
Full belastning från stor tabell, utan fysiska partitioner, medan med en heltalskolumn för datapartitionering. | Partitionsalternativ: Partition med dynamiskt intervall. Partitionskolumn: Ange den kolumn som används för att partitionera data. Om den inte anges används primärnyckelkolumnen. |
Läs in en stor mängd data med hjälp av en anpassad fråga med fysiska partitioner. | Partitionsalternativ: Fysiska partitioner i tabellen. Fråga: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause> .Partitionsnamn: Ange partitionsnamnen som du vill kopiera data från. Om det inte anges identifierar tjänsten automatiskt de fysiska partitionerna i tabellen som du angav i Amazon RDS för Oracle-datauppsättningen. Under körningen ersätter tjänsten med det faktiska partitionsnamnet ?AdfTabularPartitionName och skickar till Amazon RDS för Oracle. |
Läs in en stor mängd data med hjälp av en anpassad fråga, utan fysiska partitioner, medan du har en heltalskolumn för datapartitionering. | Partitionsalternativ: Partition med dynamiskt intervall. Fråga: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause> .Partitionskolumn: Ange den kolumn som används för att partitionera data. Du kan partitionera mot kolumnen med heltalsdatatypen. Partitionens övre gräns och partitionens nedre gräns: Ange om du vill filtrera mot partitionskolumnen för att hämta data endast mellan det nedre och det övre intervallet. Under körningen ersätter ?AdfRangePartitionColumnName tjänsten , ?AdfRangePartitionUpbound och ?AdfRangePartitionLowbound med det faktiska kolumnnamnet och värdeintervallen för varje partition och skickar till Amazon RDS för Oracle. Om till exempel partitionskolumnen "ID" har angetts med den nedre gränsen som 1 och den övre gränsen som 80, med parallell kopiering inställd som 4, hämtar tjänsten data med 4 partitioner. Deras ID:n är mellan [1, 20], [21, 40], [41, 60] respektive [61, 80]. |
Dricks
När du kopierar data från en icke-partitionerad tabell kan du använda partitionsalternativet "Dynamiskt intervall" för att partitionera mot en heltalskolumn. Om dina källdata inte har en sådan typ av kolumn kan du använda ORA_HASH funktion i källfrågan för att generera en kolumn och använda den som partitionskolumn.
Exempel: fråga med fysisk partition
"source": {
"type": "AmazonRdsForOracleSource",
"query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
"partitionOption": "PhysicalPartitionsOfTable",
"partitionSettings": {
"partitionNames": [
"<partitionA_name>",
"<partitionB_name>"
]
}
}
Exempel: fråga med partition för dynamiskt intervall
"source": {
"type": "AmazonRdsForOracleSource",
"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>"
}
}
Egenskaper för uppslagsaktivitet
Mer information om egenskaperna finns i Sökningsaktivitet.
Relaterat innehåll
En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i Datalager som stöds.