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/-) | (1) (2) |
Activiteit Lookup | (1) (2) |
(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:
- Het hulpprogramma voor het kopiëren van gegevens
- Azure Portal
- De .NET-SDK
- De Python-SDK
- Azure PowerShell
- De REST API
- Een Azure Resource Manager-sjabloon
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.
Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:
Zoek naar Amazon RDS voor Oracle en selecteer de Amazon RDS voor Oracle-connector.
Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.
Configuratiedetails van connector
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:
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: Pak certificaatgegevens uit DERcert.cer en sla de uitvoer op in cert.txt.
openssl x509 -inform DER -in DERcert.cer -text Output: -----BEGIN CERTIFICATE----- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX -----END CERTIFICATE-----
Bouw de
keystore
oftruststore
. Met de volgende opdracht maakt u hettruststore
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
Plaats het
truststore
bestand op de zelf-hostende IR-computer. Plaats het bestand bijvoorbeeld op C:\MyTrustStoreFile.Configureer in de service de Amazon RDS voor Oracle verbindingsreeks met
EncryptionMethod=1
en de bijbehorendeTrustStore
/TrustStorePassword
waarde. BijvoorbeeldHost=<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 |
partitionSettings | Geef de groep van de instellingen voor gegevenspartitionering op. Toepassen wanneer de partitieoptie niet None is. |
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.
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, is het raadzaam 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 ?AdfRangePartitionColumnName de service, ?AdfRangePartitionUpbound en ?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.
Gerelateerde inhoud
Zie Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.