Delen via


Gegevens kopiëren van Amazon RDS voor Oracle met behulp van Azure Data Factory of Azure Synapse Analytics

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In dit artikel wordt beschreven hoe u de kopieeractiviteit in Azure Data Factory gebruikt om gegevens te kopiëren van een Amazon RDS voor Oracle-database. Het is gebaseerd op het overzicht van de kopieeractiviteit.

Ondersteunde mogelijkheden

Deze Amazon RDS voor Oracle-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR
Copy-activiteit (bron/-) ① ②
Activiteit Lookup ① ②

(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime

Zie de tabel Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen of sinks door de kopieeractiviteit.

Deze Amazon RDS voor Oracle-connector ondersteunt met name:

  • De volgende versies van een Amazon RDS voor Oracle-database:
    • Amazon RDS voor Oracle 19c R1 (19.1) en hoger
    • Amazon RDS voor Oracle 18c R1 (18.1) en hoger
    • Amazon RDS voor Oracle 12c R1 (12.1) en hoger
    • Amazon RDS voor Oracle 11g R1 (11.1) en hoger
  • Parallel kopiëren vanuit een Amazon RDS voor Oracle-bron. Zie de sectie Parallel van Amazon RDS voor Oracle voor meer informatie.

Notitie

Amazon RDS voor Oracle-proxyserver wordt niet ondersteund.

Vereisten

Als uw gegevensarchief zich in een on-premises netwerk, een virtueel Azure-netwerk of een virtuele particuliere cloud van Amazon bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.

Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u De Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u IP-adressen van Azure Integration Runtime toevoegen aan de acceptatielijst.

U kunt ook de beheerde functie voor integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.

Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.

De integration runtime biedt een ingebouwde Amazon RDS voor Oracle-stuurprogramma. Daarom hoeft u geen stuurprogramma handmatig te installeren wanneer u gegevens kopieert vanuit Amazon RDS voor Oracle.

Aan de slag

Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:

Een gekoppelde service maken met Amazon RDS voor Oracle met behulp van de gebruikersinterface

Gebruik de volgende stappen om een gekoppelde service te maken voor Amazon RDS voor Oracle in de gebruikersinterface van Azure Portal.

  1. Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:

  2. Zoek naar Amazon RDS voor Oracle en selecteer de Amazon RDS voor Oracle-connector.

    Screenshot of the Amazon RDS for Oracle connector.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Screenshot of linked service configuration for Amazon RDS for Oracle.

configuratiedetails Verbinding maken or

De volgende secties bevatten details over eigenschappen die worden gebruikt om entiteiten te definiëren die specifiek zijn voor de Amazon RDS voor Oracle-connector.

Eigenschappen van gekoppelde service

De gekoppelde Amazon RDS voor Oracle-service ondersteunt de volgende eigenschappen:

Eigenschappen Beschrijving Vereist
type De eigenschap type moet worden ingesteld op AmazonRdsForOracle. Ja
connectionString Hiermee geeft u de informatie op die nodig is om verbinding te maken met de Amazon RDS voor Oracle Database-exemplaar.
U kunt ook een wachtwoord in Azure Key Vault plaatsen en de password configuratie uit de verbindingsreeks halen. Raadpleeg de volgende voorbeelden en sla referenties op in Azure Key Vault met meer informatie.

Ondersteund verbindingstype: U kunt Amazon RDS gebruiken voor Oracle SID of Amazon RDS voor Oracle Service Name om uw database te identificeren:
- Als u SID gebruikt: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;
- Als u servicenaam gebruikt: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;
Voor geavanceerde Amazon RDS voor systeemeigen Oracle-verbindingsopties kunt u ervoor kiezen om een vermelding toe te voegen in TNSNAMES. ORA-bestand op de Amazon RDS voor Oracle-server en in Amazon RDS voor gekoppelde Oracle-service, kiest u ervoor om Amazon RDS te gebruiken voor het verbindingstype Oracle Service Name en de bijbehorende servicenaam te configureren.
Ja
connectVia De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nee

Als u meerdere Amazon RDS voor Oracle-exemplaren voor failoverscenario's hebt, kunt u Amazon RDS voor de gekoppelde Oracle-service maken en de primaire host, poort, gebruikersnaam, wachtwoord, enzovoort invullen en een nieuwe 'Aanvullende verbindingseigenschappen' toevoegen met de eigenschapsnaam als AlternateServers en waarde (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>) . Mis de vierkante haken niet en let op de dubbele punten (:) als scheidingsteken. Als voorbeeld definieert de volgende waarde van alternatieve servers twee alternatieve databaseservers voor verbindingsfailover: (HostName=AccountingAmazonRdsForOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany)

Meer verbindingseigenschappen die u kunt instellen in verbindingsreeks per geval:

Eigenschappen Beschrijving Toegestane waarden
Matricesize Het aantal bytes dat de connector kan ophalen in één retour van het netwerk. Bijvoorbeeld ArraySize=‭10485760‬.

Grotere waarden verhogen de doorvoer door het aantal keren dat gegevens in het netwerk worden opgehaald, te verminderen. Kleinere waarden verhogen de reactietijd, omdat er minder vertraging is wanneer de server gegevens verzendt.
Een geheel getal van 1 tot 4294967296 (4 GB). De standaardwaarde is 60000. De waarde 1 definieert niet het aantal bytes, maar geeft aan dat er precies één rij met gegevens wordt toegewezen.

Als u versleuteling wilt inschakelen op Amazon RDS voor Oracle-verbinding, hebt u twee opties:

  • Als u Triple-DES Encryption (3DES) en Advanced Encryption Standard (AES) wilt gebruiken, gaat u op de Amazon RDS voor Oracle-server naar Oracle Advanced Security (OAS) en configureert u de versleutelingsinstellingen. Raadpleeg deze Oracle-documentatie voor meer informatie. De ADF-connector (Amazon RDS for Oracle Application Development Framework) onderhandelt automatisch over de versleutelingsmethode voor het gebruik van de connector die u in OAS configureert bij het tot stand brengen van een verbinding met Amazon RDS voor Oracle.

  • TLS gebruiken:

    1. Haal de gegevens van het TLS/SSL-certificaat op. Haal de met DER gecodeerde certificaatgegevens (Distinguished Encoding Rules) op van uw TLS/SSL-certificaat en sla de uitvoer op (----- Begin certificate ... Eindecertificaat -----) als tekstbestand.

      openssl x509 -inform DER -in [Full Path to the DER Certificate including the name of the DER Certificate] -text
      

      Voorbeeld: Extraheren van certificaatgegevens uit DERcert.cer en sla de uitvoer vervolgens op in cert.txt.

      openssl x509 -inform DER -in DERcert.cer -text
      Output:
      -----BEGIN CERTIFICATE-----
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXX
      -----END CERTIFICATE-----
      
    2. Bouw de keystore of truststore. Met de volgende opdracht maakt u het truststore bestand, met of zonder een wachtwoord, in PKCS-12-indeling.

      openssl pkcs12 -in [Path to the file created in the previous step] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -nokeys -export
      

      Voorbeeld: Maak een PKCS12-bestand truststore met de naam MyTrustStoreFile met een wachtwoord.

      openssl pkcs12 -in cert.txt -out MyTrustStoreFile -passout pass:ThePWD -nokeys -export  
      
    3. Plaats het truststore bestand op de zelf-hostende IR-computer. Plaats het bestand bijvoorbeeld op C:\MyTrustStoreFile.

    4. Configureer in de service de Amazon RDS voor Oracle verbindingsreeks met EncryptionMethod=1 en de bijbehorende TrustStore/TrustStorePasswordwaarde. Bijvoorbeeld Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>.

Voorbeeld:

{
    "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"
        }
    }
}

Voorbeeld: wachtwoord opslaan in 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"
        }
    }
}

Eigenschappen van gegevensset

Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de Amazon RDS voor Oracle-gegevensset. Zie Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets.

Als u gegevens van Amazon RDS voor Oracle wilt kopiëren, stelt u de typeeigenschap van de gegevensset in op AmazonRdsForOracleTable. De volgende eigenschappen worden ondersteund.

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op AmazonRdsForOracleTable. Ja
schema Naam van het schema. Nee
table Naam van de tabel/weergave. Nee
tableName Naam van de tabel/weergave met schema. Deze eigenschap wordt ondersteund voor compatibiliteit met eerdere versies. Voor nieuwe workload gebruikt schema u en table. Nee

Voorbeeld:

{
    "name": "AmazonRdsForOracleDataset",
    "properties":
    {
        "type": "AmazonRdsForOracleTable",
        "schema": [],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        },
        "linkedServiceName": {
            "referenceName": "<Amazon RDS for Oracle linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Eigenschappen van de kopieeractiviteit

Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de Amazon RDS voor Oracle-bron. Zie Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten.

Amazon RDS voor Oracle als bron

Tip

Als u gegevens van Amazon RDS voor Oracle efficiënt wilt laden met behulp van gegevenspartitionering, leert u meer van Parallelle kopie vanuit Amazon RDS voor Oracle.

Als u gegevens van Amazon RDS voor Oracle wilt kopiëren, stelt u het brontype in de kopieeractiviteit in op AmazonRdsForOracleSource. De volgende eigenschappen worden ondersteund in de sectie bron van de kopieeractiviteit.

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op AmazonRdsForOracleSource. Ja
oracleReaderQuery Gebruik de aangepaste SQL-query om gegevens te lezen. Een voorbeeld is "SELECT * FROM MyTable".
Wanneer u gepartitioneerde belasting inschakelt, moet u eventuele bijbehorende ingebouwde partitieparameters in uw query koppelen. Zie de sectie Parallelle kopie van Amazon RDS voor Oracle voor voorbeelden.
Nee
partitionOptions Hiermee geeft u de opties voor gegevenspartitionering op die worden gebruikt voor het laden van gegevens uit Amazon RDS voor Oracle.
Toegestane waarden zijn: Geen (standaard), PhysicalPartitionsOfTable en DynamicRange.
Wanneer een partitieoptie is ingeschakeld (dat wil niet None), wordt de mate van parallelle uitvoering om gegevens van een Amazon RDS voor Oracle-database gelijktijdig te laden, bepaald door de parallelCopies instelling voor de kopieeractiviteit.
Nee
partitie Instellingen Geef de groep van de instellingen voor gegevenspartitionering op.
Toepassen wanneer de partitieoptie niet Noneis.
Nee
partitionNames De lijst met fysieke partities die moeten worden gekopieerd.
Toepassen wanneer de partitieoptie is PhysicalPartitionsOfTable. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfTabularPartitionName aan de WHERE-component. Zie de sectie Parallelle kopie van Amazon RDS voor Oracle voor een voorbeeld.
Nee
partitionColumnName Geef de naam op van de bronkolom in het type geheel getal dat wordt gebruikt door bereikpartitionering voor parallelle kopie. Als deze niet is opgegeven, wordt de primaire sleutel van de tabel automatisch gedetecteerd en gebruikt als partitiekolom.
Toepassen wanneer de partitieoptie is DynamicRange. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfRangePartitionColumnName aan de WHERE-component. Zie de sectie Parallelle kopie van Amazon RDS voor Oracle voor een voorbeeld.
Nee
partitionUpperBound De maximale waarde van de partitiekolom om gegevens te kopiëren.
Toepassen wanneer de partitieoptie is DynamicRange. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfRangePartitionUpbound aan de WHERE-component. Zie de sectie Parallelle kopie van Amazon RDS voor Oracle voor een voorbeeld.
Nee
partitionLowerBound De minimale waarde van de partitiekolom om gegevens te kopiëren.
Toepassen wanneer de partitieoptie is DynamicRange. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?AdfRangePartitionLowbound aan de WHERE-component. Zie de sectie Parallelle kopie van Amazon RDS voor Oracle voor een voorbeeld.
Nee

Voorbeeld: gegevens kopiëren met behulp van een eenvoudige query zonder partitie

"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>"
            }
        }
    }
]

Parallelle kopie van Amazon RDS voor Oracle

De Amazon RDS voor Oracle-connector biedt ingebouwde gegevenspartitionering om gegevens van Amazon RDS voor Oracle parallel te kopiëren. U vindt opties voor gegevenspartitionering op het tabblad Bron van de kopieeractiviteit.

Screenshot of partition options.

Wanneer u gepartitioneerde kopie inschakelt, voert de service parallelle query's uit op uw Amazon RDS voor Oracle-bron om gegevens te laden op partities. De parallelle graad wordt bepaald door de parallelCopies instelling voor de kopieeractiviteit. Als u bijvoorbeeld instelt op parallelCopies vier, genereert de service gelijktijdig vier query's en voert deze uit op basis van uw opgegeven partitieoptie en -instellingen, en haalt elke query een deel van de gegevens op uit uw Amazon RDS voor Oracle-database.

U wordt aangeraden parallelle kopie met gegevenspartitionering in te schakelen, met name wanneer u grote hoeveelheden gegevens uit uw Amazon RDS voor Oracle-database laadt. Hier volgen voorgestelde configuraties voor verschillende scenario's. Wanneer u gegevens kopieert naar een bestandsgegevensarchief, wordt u gevraagd om naar een map te schrijven als meerdere bestanden (alleen mapnaam opgeven), in welk geval de prestaties beter zijn dan schrijven naar één bestand.

Scenario Voorgestelde instellingen
Volledige belasting van grote tabellen, met fysieke partities. Partitieoptie: fysieke partities van de tabel.

Tijdens de uitvoering detecteert de service automatisch de fysieke partities en kopieert de gegevens per partitie.
Volledige belasting van grote tabellen, zonder fysieke partities, terwijl met een kolom met gehele getallen voor gegevenspartitionering. Partitieopties: partitie dynamisch bereik.
Partitiekolom: Geef de kolom op die wordt gebruikt om gegevens te partitioneren. Als dit niet is opgegeven, wordt de primaire-sleutelkolom gebruikt.
Laad een grote hoeveelheid gegevens met behulp van een aangepaste query, met fysieke partities. Partitieoptie: fysieke partities van de tabel.
Query: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause>.
Partitienaam: geef de partitienaam(en) op waaruit u gegevens wilt kopiëren. Als dit niet is opgegeven, detecteert de service automatisch de fysieke partities in de tabel die u hebt opgegeven in de Amazon RDS voor Oracle-gegevensset.

Tijdens de uitvoering wordt de service vervangen door ?AdfTabularPartitionName de werkelijke partitienaam en verzonden naar Amazon RDS voor Oracle.
Laad een grote hoeveelheid gegevens met behulp van een aangepaste query, zonder fysieke partities, terwijl met een kolom geheel getal voor gegevenspartitionering. Partitieopties: partitie dynamisch bereik.
Query: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Partitiekolom: Geef de kolom op die wordt gebruikt om gegevens te partitioneren. U kunt partitioneren op basis van de kolom met een gegevenstype geheel getal.
Bovengrens en partitieondergrens partitioneren: geef op of u wilt filteren op partitiekolom om alleen gegevens op te halen tussen het onderste en bovenste bereik.

Tijdens de uitvoering vervangt ?AdfRangePartitionColumnNamede service, ?AdfRangePartitionUpbounden ?AdfRangePartitionLowbound door de werkelijke kolomnaam en waardebereiken voor elke partitie en verzendt deze naar Amazon RDS voor Oracle.
Als de partitiekolom 'ID' bijvoorbeeld is ingesteld met de ondergrens 1 en de bovengrens als 80, waarbij parallelle kopie is ingesteld als 4, haalt de service gegevens op met 4 partities. Hun id's liggen tussen [1, 20], [21, 40], [41, 60] en [61, 80], respectievelijk.

Tip

Wanneer u gegevens kopieert uit een niet-gepartitioneerde tabel, kunt u de partitieoptie Dynamisch bereik gebruiken om te partitioneren op basis van een kolom met gehele getallen. Als uw brongegevens niet over een dergelijk type kolom beschikken, kunt u in de bronquery gebruikmaken van ORA_HASH functie om een kolom te genereren en te gebruiken als partitiekolom.

Voorbeeld: query's uitvoeren met fysieke partitie

"source": {
    "type": "AmazonRdsForOracleSource",
    "query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
    "partitionOption": "PhysicalPartitionsOfTable",
    "partitionSettings": {
        "partitionNames": [
            "<partitionA_name>",
            "<partitionB_name>"
        ]
    }
}

Voorbeeld: query met partitie dynamisch bereik

"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>"
    }
}

Eigenschappen van opzoekactiviteit

Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.

Zie Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.