Kopírování dat z Amazon RDS pro Oracle pomocí Azure Data Factory nebo Azure Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek popisuje, jak pomocí aktivity kopírování ve službě Azure Data Factory kopírovat data z databáze Amazon RDS for Oracle. Vychází z přehledu aktivity kopírování.

Podporované funkce

Tento konektor Amazon RDS pro Oracle je podporovaný pro následující funkce:

Podporované funkce IR
aktivita Copy (zdroj/-) ① ②
Aktivita Lookup ① ②

(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime

Seznam úložišť dat podporovaných jako zdroje nebo jímky aktivitou kopírování najdete v tabulce Podporované úložiště dat.

Konkrétně tento konektor Amazon RDS pro Oracle podporuje:

  • Následující verze databáze Amazon RDS for Oracle:
    • Amazon RDS pro Oracle 19c R1 (19.1) a novější
    • Amazon RDS pro Oracle 18c R1 (18.1) a novější
    • Amazon RDS pro Oracle 12c R1 (12.1) a vyšší
    • Amazon RDS pro Oracle 11g R1 (11.1) a novější
  • Paralelní kopírování ze zdroje Amazon RDS pro Oracle Podrobnosti najdete v části Paralelní kopie z Amazon RDS for Oracle .

Poznámka:

Amazon RDS pro proxy server Oracle se nepodporuje.

Požadavky

Pokud se vaše úložiště dat nachází uvnitř místní sítě, virtuální sítě Azure nebo amazonového privátního cloudu, musíte nakonfigurovat místní prostředí Integration Runtime pro připojení k němu.

Pokud je vaše úložiště dat spravovanou cloudovou datovou službou, můžete použít Azure Integration Runtime. Pokud je přístup omezený na IP adresy schválené v pravidlech brány firewall, můžete do seznamu povolených přidat IP adresy prostředí Azure Integration Runtime.

K přístupu k místní síti bez nutnosti instalace a konfigurace místního prostředí Integration Runtime můžete také použít funkci Runtime integrace spravované virtuální sítě ve službě Azure Data Factory.

Další informace o mechanismech zabezpečení sítě a možnostech podporovaných službou Data Factory najdete v tématu Strategie přístupu k datům.

Prostředí Integration Runtime poskytuje integrovaný ovladač Amazon RDS pro Oracle. Proto při kopírování dat z Amazon RDS pro Oracle nemusíte ručně instalovat ovladač.

Začínáme

K provedení aktivita Copy s kanálem můžete použít jeden z následujících nástrojů nebo sad SDK:

Vytvoření propojené služby s Amazon RDS pro Oracle pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu s Amazon RDS for Oracle v uživatelském rozhraní webu Azure Portal.

  1. Přejděte na kartu Správa v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak klikněte na Nový:

  2. Vyhledejte Amazon RDS pro Oracle a vyberte konektor Amazon RDS for Oracle.

    Screenshot of the Amazon RDS for Oracle connector.

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Screenshot of linked service configuration for Amazon RDS for Oracle.

podrobnosti o konfiguraci Připojení oru

Následující části obsahují podrobnosti o vlastnostech, které se používají k definování entit specifických pro konektor Amazon RDS for Oracle.

Vlastnosti propojené služby

Propojená služba Amazon RDS for Oracle podporuje následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost type musí být nastavena na AmazonRdsForOracle. Ano
připojovací řetězec Určuje informace potřebné pro připojení k instanci Amazon RDS pro databázi Oracle.
Můžete také zadat heslo do služby Azure Key Vault a vytáhnout password konfiguraci z připojovací řetězec. Další podrobnosti najdete v následujících ukázkách a ukládání přihlašovacích údajů ve službě Azure Key Vault .

Podporovaný typ připojení: K identifikaci databáze můžete použít Amazon RDS pro Oracle SID nebo Amazon RDS for Oracle Service Name :
- Pokud používáte SID: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;
– Pokud používáte název služby: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;
U pokročilých možností nativního připojení Amazon RDS pro Oracle můžete přidat položku do TNSNAMES. Soubor ORA na serveru Amazon RDS pro Oracle a v Amazon RDS pro propojenou službu Oracle zvolte, jestli chcete použít Typ připojení Amazon RDS pro název služby Oracle a nakonfigurovat odpovídající název služby.
Ano
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud není zadaný, použije se výchozí prostředí Azure Integration Runtime. No

Pokud máte pro scénář převzetí služeb při selhání několik instancí Amazon RDS pro Oracle, můžete vytvořit propojenou službu Amazon RDS pro Oracle a vyplnit primárního hostitele, portu, uživatelského jména, hesla atd. a přidat novou vlastnost "Další vlastnosti připojení" s názvem vlastnosti jako a hodnotou jako AlternateServers(HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>) - nenechte si ujít hranaté závorky a věnovat pozornost dvojtečce (:) jako oddělovače. Například následující hodnota alternativních serverů definuje dva alternativní databázové servery pro převzetí služeb při selhání připojení: (HostName=AccountingAmazonRdsForOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany).

Další vlastnosti připojení, které můžete nastavit v připojovací řetězec podle vašeho případu:

Vlastnost Popis Povolené hodnoty
ArraySize Počet bajtů, které může konektor načíst v rámci jedné síťové odezvy. Například ArraySize=‭10485760‬.

Větší hodnoty zvyšují propustnost snížením počtu pokusů o načtení dat v síti. Menší hodnoty zvyšují dobu odezvy, protože při čekání serveru na přenos dat dochází k menšímu zpoždění.
Celé číslo od 1 do 4294967296 (4 GB). Výchozí hodnota je 60000. Hodnota 1 nedefinuje počet bajtů, ale označuje přidělení prostoru pro přesně jeden řádek dat.

Pokud chcete povolit šifrování na Amazon RDS pro připojení Oracle, máte dvě možnosti:

  • Pokud chcete použít šifrování Triple-DES (3DES) a AES (Advanced Encryption Standard), přejděte na straně serveru Amazon RDS pro Oracle na Oracle Advanced Security (OAS) a nakonfigurujte nastavení šifrování. Podrobnosti najdete v této dokumentaci oracle. Konektor Amazon RDS for Oracle Application Development Framework (ADF) automaticky vyjedná metodu šifrování, která použije metodu šifrování, kterou nakonfigurujete v OAS při navazování připojení k Amazon RDS for Oracle.

  • Použití protokolu TLS:

    1. Získejte informace o certifikátu TLS/SSL. Získejte informace o certifikátu s kódováním kódování DER (DER) certifikátu TLS/SSL a uložte výstup (----- počáteční certifikát ... Ukončit certifikát -----) jako textový soubor.

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

      Příklad: Extrahujte informace o certifikátu z DERcert.cer a uložte výstup do souboru cert.txt.

      openssl x509 -inform DER -in DERcert.cer -text
      Output:
      -----BEGIN CERTIFICATE-----
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXX
      -----END CERTIFICATE-----
      
    2. keystore Sestavte nebo truststore. Následující příkaz vytvoří truststore soubor ve formátu PKCS-12 nebo bez hesla.

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

      Příklad: Vytvořte soubor PKCS12 truststore s názvem MyTrustStoreFile s heslem.

      openssl pkcs12 -in cert.txt -out MyTrustStoreFile -passout pass:ThePWD -nokeys -export  
      
    3. truststore Soubor umístěte na počítač místního prostředí IR. Například soubor umístěte do složky C:\MyTrustStoreFile.

    4. Ve službě nakonfigurujte Amazon RDS pro Oracle připojovací řetězec s EncryptionMethod=1 odpovídající TrustStore/TrustStorePasswordhodnotou. Například, Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>.

Příklad:

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

Příklad: Uložení hesla ve službě 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"
        }
    }
}

Vlastnosti datové sady

Tato část obsahuje seznam vlastností podporovaných datovou sadou Amazon RDS pro Oracle. Úplný seznam oddílů a vlastností dostupných pro definování datových sad najdete v tématu Datové sady.

Pokud chcete kopírovat data z Amazon RDS pro Oracle, nastavte vlastnost typu datové sady na AmazonRdsForOracleTable. Podporují se následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu datové sady musí být nastavena na AmazonRdsForOracleTablehodnotu . Ano
schema Název schématu No
table Název tabulky nebo zobrazení No
tableName Název tabulky nebo zobrazení se schématem Tato vlastnost je podporována pro zpětnou kompatibilitu. Pro nové úlohy použijte schema a table. No

Příklad:

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

Vlastnosti aktivity kopírování

Tato část obsahuje seznam vlastností podporovaných službou Amazon RDS pro zdroj Oracle. Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v tématu Kanály.

Amazon RDS pro Oracle jako zdroj

Tip

Pokud chcete efektivně načítat data z Amazon RDS pro Oracle pomocí dělení dat, přečtěte si další informace z Paralelní kopie z Amazon RDS pro Oracle.

Pokud chcete kopírovat data z Amazon RDS pro Oracle, nastavte typ zdroje v aktivitě kopírování na AmazonRdsForOracleSource. Ve zdrojové části aktivity kopírování jsou podporovány následující vlastnosti.

Vlastnost Popis Povinní účastníci
type Vlastnost typu zdroje aktivity kopírování musí být nastavena na AmazonRdsForOracleSourcehodnotu . Ano
oracleReaderQuery Ke čtení dat použijte vlastní dotaz SQL. Příklad: "SELECT * FROM MyTable".
Když povolíte dělené zatížení, musíte připojit všechny odpovídající předdefinované parametry oddílu v dotazu. Příklady najdete v části Paralelní kopírování z Amazon RDS pro Oracle .
No
partitionOptions Určuje možnosti dělení dat používané k načtení dat z Amazon RDS pro Oracle.
Povolené hodnoty jsou: None (výchozí), PhysicalPartitionsOfTable a DynamicRange.
Pokud je povolená možnost oddílu (tj. ne None), stupeň paralelismu pro souběžné načítání dat z databáze Amazon RDS pro Oracle je řízen parallelCopies nastavením aktivity kopírování.
No
oddíl Nastavení Zadejte skupinu nastavení pro dělení dat.
Použít, pokud možnost oddílu není None.
No
partitionNames Seznam fyzických oddílů, které je potřeba zkopírovat.
Použít, pokud je PhysicalPartitionsOfTablemožnost oddílu . Pokud k načtení zdrojových dat použijete dotaz, připojte se ?AdfTabularPartitionName do klauzule WHERE. Příklad najdete v části Paralelní kopírování z Amazon RDS for Oracle .
No
partitionColumnName Zadejte název zdrojového sloupce v celočíselném typu , který bude použit dělením rozsahu pro paralelní kopírování. Pokud není zadaný, primární klíč tabulky se automaticky rozpozná a použije se jako sloupec oddílu.
Použít, pokud je DynamicRangemožnost oddílu . Pokud k načtení zdrojových dat použijete dotaz, připojte se ?AdfRangePartitionColumnName do klauzule WHERE. Příklad najdete v části Paralelní kopírování z Amazon RDS for Oracle .
No
partitionUpperBound Maximální hodnota sloupce oddílu pro zkopírování dat.
Použít, pokud je DynamicRangemožnost oddílu . Pokud k načtení zdrojových dat použijete dotaz, připojte se ?AdfRangePartitionUpbound do klauzule WHERE. Příklad najdete v části Paralelní kopírování z Amazon RDS for Oracle .
No
partitionLowerBound Minimální hodnota sloupce oddílu pro zkopírování dat.
Použít, pokud je DynamicRangemožnost oddílu . Pokud k načtení zdrojových dat použijete dotaz, připojte se ?AdfRangePartitionLowbound do klauzule WHERE. Příklad najdete v části Paralelní kopírování z Amazon RDS for Oracle .
No

Příklad: Kopírování dat pomocí základního dotazu bez oddílu

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

Paralelní kopírování z Amazon RDS pro Oracle

Konektor Amazon RDS for Oracle poskytuje integrované dělení dat pro paralelní kopírování dat z Amazon RDS pro Oracle. Možnosti dělení dat najdete na kartě Zdroj aktivity kopírování.

Screenshot of partition options.

Když povolíte dělenou kopii, služba spustí paralelní dotazy na zdroj Amazon RDS pro zdroj Oracle, aby načetla data podle oddílů. Paralelní stupeň se řídí parallelCopies nastavením aktivity kopírování. Pokud například nastavíte parallelCopies hodnotu čtyři, služba souběžně vygeneruje a spouští čtyři dotazy na základě zadané možnosti a nastavení oddílu a každý dotaz načte část dat z vaší databáze Amazon RDS for Oracle.

Doporučujeme povolit paralelní kopírování s dělením dat, zejména pokud načítáte velké množství dat z databáze Amazon RDS for Oracle. Následující konfigurace jsou navržené pro různé scénáře. Při kopírování dat do souborového úložiště dat se doporučuje zapisovat do složky jako více souborů (zadat pouze název složky), v takovém případě je výkon lepší než zápis do jednoho souboru.

Scénář Navrhovaná nastavení
Úplné načtení z velké tabulky s fyzickými oddíly Možnost oddílu: Fyzické oddíly tabulky.

Během provádění služba automaticky rozpozná fyzické oddíly a kopíruje data podle oddílů.
Úplné načtení z velké tabulky bez fyzických oddílů, zatímco s celočíselnou sloupcem pro dělení dat. Možnosti oddílu: Oddíl dynamického rozsahu
Sloupec oddílu: Zadejte sloupec použitý k rozdělení dat. Pokud není zadaný, použije se sloupec primárního klíče.
Načtěte velké množství dat pomocí vlastního dotazu s fyzickými oddíly. Možnost oddílu: Fyzické oddíly tabulky.
Dotaz: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause>.
Název oddílu: Zadejte názvy oddílů, ze které chcete kopírovat data. Pokud není zadaný, služba automaticky rozpozná fyzické oddíly v tabulce, kterou jste zadali v datové sadě Amazon RDS for Oracle.

Během provádění služba nahradí ?AdfTabularPartitionName skutečným názvem oddílu a odešle do Amazon RDS pro Oracle.
Načtěte velké množství dat pomocí vlastního dotazu bez fyzických oddílů, zatímco u celočíselného sloupce pro dělení dat. Možnosti oddílu: Oddíl dynamického rozsahu
Dotaz: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Sloupec oddílu: Zadejte sloupec použitý k rozdělení dat. Rozdělení na sloupec můžete provést pomocí celočíselného datového typu.
Horní mez oddílu a dolní mez oddílu: Určete, jestli chcete filtrovat podle sloupce oddílu a načítat data pouze mezi dolním a horním rozsahem.

Během provádění služba nahradí ?AdfRangePartitionColumnNamea ?AdfRangePartitionUpboundza skutečný název sloupce a ?AdfRangePartitionLowbound rozsahy hodnot pro každý oddíl a odešle do Amazon RDS pro Oracle.
Pokud je například sloupec oddílu "ID" nastavený s dolní mezí jako 1 a horní mez jako 80, s paralelní sadou kopírování nastavenou jako 4, služba načte data o 4 oddíly. ID jsou v rozsahu [1, 20], [21, 40], [41, 60] a [61, 80], v uvedeném pořadí.

Tip

Při kopírování dat z tabulky, která není rozdělená do oddílů, můžete použít možnost dynamického rozsahu oddílu k rozdělení podle celočíselného sloupce. Pokud zdrojová data takový typ sloupce nemají, můžete využít funkci ORA_HASH ve zdrojovém dotazu k vygenerování sloupce a jeho použití jako sloupce oddílu.

Příklad: Dotaz s fyzickým oddílem

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

Příklad: Dotaz s oddílem dynamického rozsahu

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

Vlastnosti aktivity vyhledávání

Podrobnosti o vlastnostech najdete v aktivitě Vyhledávání.

Seznam úložišť dat podporovaných jako zdroje a jímky aktivitou kopírování najdete v tématu Podporované úložiště dat.