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:

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.

  1. 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:

  2. Sök efter Amazon RDS för Oracle och välj Amazon RDS för Oracle-anslutningsprogrammet.

    Skärmbild av Amazon RDS för Oracle-anslutningsprogrammet.

  3. Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.

    Skärmbild av konfiguration av länkad tjänst för Amazon RDS för Oracle.

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:

    1. 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-----
      
    2. keystore Skapa eller truststore. Följande kommando skapar truststore 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  
      
    3. truststore Placera filen på den lokalt installerade IR-datorn. Placera till exempel filen på C:\MyTrustStoreFile.

    4. I tjänsten konfigurerar du Amazon RDS för Oracle niska veze med EncryptionMethod=1 och motsvarande TrustStore/TrustStorePasswordvärde. Till exempel Host=<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.

Skärmbild av partitionsalternativ.

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 ?AdfRangePartitionColumnNametjänsten , ?AdfRangePartitionUpboundoch ?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.

En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i Datalager som stöds.