Menyalin data dari Amazon RDS for Oracle menggunakan Azure Data Factory atau Azure Synapse Analytics

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Artikel ini menguraikan cara menggunakan aktivitas salin di Azure Data Factory untuk menyalin data dari database Amazon RDS for Oracle. Ini dibuat berdasarkan gambaran umum aktivitas salin.

Kemampuan yang didukung

Konektor Amazon RDS untuk Oracle ini didukung untuk kemampuan berikut:

Kemampuan yang didukung IR
Aktivitas penyalinan (sumber/-) ① ②
Aktivitas pencarian ① ②

① Runtime integrasi Azure ② Runtime integrasi yang dihost sendiri

Untuk daftar penyimpanan data yang didukung sebagai sumber atau sink oleh aktivitas salin, lihat tabel Penyimpanan data yang didukung.

Secara khusus, konektor Amazon RDS for Oracle ini mendukung:

  • Versi database Amazon RDS for Oracle berikut:
    • Amazon RDS for Oracle 19c R1 (19.1) dan yang lebih tinggi
    • Amazon RDS for Oracle 18c R1 (18.1) dan yang lebih tinggi
    • Amazon RDS for Oracle 12c R1 (12.1) dan yang lebih tinggi
    • Amazon RDS for Oracle 11g R1 (11.1) dan yang lebih tinggi
  • Salinan paralel dari sumber daya Amazon RDS for Oracle. Lihat bagian Salinan paralel dari Amazon RDS for Oracle untuk detailnya.

Catatan

Server proksi Amazon RDS for Oracle tidak didukung.

Prasyarat

Jika penyimpanan data Anda terletak di dalam jaringan lokal, jaringan virtual Azure, atau Amazon Virtual Private Cloud, Anda harus mengonfigurasi runtime integrasi yang dihosting sendiri untuk menghubungkannya.

Jika penyimpanan data Anda adalah layanan data cloud terkelola, Anda dapat menggunakan Azure Integration Runtime. Jika akses dibatasi untuk IP yang disetujui dalam aturan firewall, Anda dapat menambahkan IP Azure Integration Runtime ke daftar izinkan.

Anda juga dapat menggunakan fitur runtime integrasi jaringan virtual terkelola di Azure Data Factory untuk mengakses jaringan lokal tanpa menginstal dan mengonfigurasi runtime integrasi yang dihosting sendiri.

Untuk informasi selengkapnya tentang mekanisme dan opsi keamanan jaringan yang didukung oleh Data Factory, lihat Strategi akses data.

Runtime integrasi menyediakan driver Amazon RDS for Oracle bawaan. Oleh karena itu, Anda tidak perlu menginstal driver secara manual saat menyalin data dari Amazon RDS for Oracle.

Mulai

Untuk melakukan aktivitas Salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:

Membuat layanan tertaut ke Amazon RDS for Oracle menggunakan UI

Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke Amazon RDS for Oracle di UI portal Microsoft Azure.

  1. Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:

  2. Cari Amazon RDS for Oracle dan pilih konektor Amazon RDS for Oracle.

    Screenshot of the Amazon RDS for Oracle connector.

  3. Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.

    Screenshot of linked service configuration for Amazon RDS for Oracle.

Detail konfigurasi konektor

Bagian berikut memberikan detail tentang properti yang digunakan untuk menentukan entitas khusus ke konektor Amazon RDS for Oracle.

Properti layanan tertaut

Layanan tertaut Amazon RDS for Oracle mendukung properti berikut ini:

Properti Deskripsi Wajib
jenis Properti jenis harus diatur ke AmazonRdsForOracle. Ya
connectionString Menentukan informasi yang diperlukan untuk terhubung ke instans Oracle Database.
Anda juga dapat memasukkan kata sandi di Azure Key Vault dan menarik konfigurasi password dari string koneksi. Lihat sampel berikut dan artikel Menyimpan informasi masuk di Azure Key Vault untuk detail selengkapnya.

Jenis koneksi yang didukung: Anda dapat menggunakan Amazon RDS for Oracle SID atau Nama Layanan Amazon RDS for Oracle untuk mengidentifikasi database Anda:
- Jika Anda menggunakan SID: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;
- Jika Anda menggunakan Nama Layanan: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;
Untuk opsi koneksi asli Amazon RDS for Oracle lanjutan, Anda dapat memilih untuk menambahkan entri di file TNSNAMES.ORA di server Amazon RDS for Oracle, dan di layanan tertaut Amazon RDS for Oracle, pilih untuk menggunakan jenis koneksi Nama Layanan Amazon RDS for Oracle dan konfigurasikan nama layanan yang sesuai.
Ya
connectVia Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Pelajari selengkapnya dari bagian Prasyarat. Jika tidak ditentukan, Integration Runtime Azure default digunakan. Tidak

Jika Anda memiliki beberapa instans Amazon RDS for Oracle untuk skenario failover, Anda dapat membuat layanan tertaut Amazon RDS for Oracle dan mengisi host utama, port, nama pengguna, kata sandi, dll., dan menambahkan "Properti koneksi tambahan " baru dengan nama properti sebagai AlternateServers dan nilai sebagai (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>) - jangan lewatkan tanda kurung dan perhatikan titik dua (:) sebagai pemisah. Sebagai contoh, nilai server alternatif berikut ini menentukan dua server database alternatif untuk failover koneksi: (HostName=AccountingAmazonRdsForOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany).

Properti koneksi lainnya yang dapat Anda atur dalam string koneksi per kasus Anda:

Properti Deskripsi Nilai yang diizinkan
ArraySize Jumlah byte yang dapat diambil konektor dalam satu perjalanan pulang pergi jaringan. Contohnya, ArraySize=‭10485760‬.

Nilai yang lebih besar meningkatkan throughput dengan mengurangi frekuensi pengambilan data di seluruh jaringan. Nilai yang lebih kecil meningkatkan waktu respons, karena terdapat lebih sedikit penundaan yang menunggu server mengirimkan data.
Bilangan bulat dari 1 hingga 4294967296 (4 GB). Nilai default 60000. Nilai 1 tidak menentukan jumlah byte, tetapi menunjukkan pengalokasian ruang untuk tepat satu baris data.

Untuk mengaktifkan enkripsi pada koneksi Amazon RDS for Oracle, Anda memiliki dua opsi:

  • Untuk menggunakan Enkripsi Triple-DES (3DES) dan Standar Enkripsi Lanjutan (AES), di sisi server Amazon RDS for Oracle, buka Keamanan Lanjutan Oracle (OAS) dan konfigurasikan pengaturan enkripsi. Untuk detailnya, lihat dokumentasi Oracle ini. Konektor Kerangka Kerja Pengembangan Aplikasi (ADF) Amazon RDS for Oracle secara otomatis menegosiasikan metode enkripsi untuk menggunakan metode yang Anda konfigurasikan di OAS saat membuat koneksi ke Amazon RDS for Oracle.

  • Untuk menggunakan TLS:

    1. Dapatkan info sertifikat TLS/SSL. Dapatkan informasi sertifikat yang dikodekan pada Distinguished Encoding Rules (DER) dari sertifikat TLS/SSL Anda, dan simpan output (----- Mulai Sertifikat … Akhiri Sertifikat -----) sebagai file teks.

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

      Contoh: Ekstrak info sertifikat dari DERcert.cer, lalu simpan output ke cert.txt.

      openssl x509 -inform DER -in DERcert.cer -text
      Output:
      -----BEGIN CERTIFICATE-----
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXX
      -----END CERTIFICATE-----
      
    2. Buat keystore atau truststore. Perintah berikut membuat file truststore, dengan atau tanpa kata sandi, dalam format PKCS-12.

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

      Contoh: Buat file truststore PKCS12 bernama MyTrustStoreFile dengan kata sandi.

      openssl pkcs12 -in cert.txt -out MyTrustStoreFile -passout pass:ThePWD -nokeys -export  
      
    3. Masukkan file truststore pada mesin IR yang dihost sendiri. Misalnya, masukkan file di C:\MyTrustStoreFile.

    4. Di layanan, konfigurasikan string koneksi Amazon RDS for Oracle dengan EncryptionMethod=1 dan nilai TrustStore/TrustStorePassword yang sesuai. Contohnya:Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>

Contoh:

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

Contoh: simpan kata sandi di 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"
        }
    }
}

Properti himpunan data

Bagian ini menyediakan daftar properti yang didukung oleh himpunan data Amazon RDS for Oracle. Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat Himpunan data.

Untuk menyalin data dari Amazon RDS for Oracle, atur properti jenis himpunan data ke AmazonRdsForOracleTable. Properti berikut ini didukung.

Properti Deskripsi Wajib
jenis Properti type himpunan data harus diatur ke AmazonRdsForOracleTable. Ya
skema Nama skema. Tidak
tabel Nama tabel/tampilan. Tidak
tableName Nama tabel/tampilan dengan skema. Properti ini didukung untuk kompatibilitas mundur. Untuk beban kerja baru, gunakan schema dan table. Tidak

Contoh:

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

Properti aktivitas salin

Bagian ini menyediakan daftar properti yang didukung oleh sumber daya Amazon RDS for Oracle. Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat Alur.

Amazon RDS for Oracle sebagai sumber

Tip

Untuk memuat data dari Amazon RDS for Oracle secara efisien dengan menggunakan partisi data, pelajari lebih lanjut dari Salinan paralel dari Amazon RDS for Oracle.

Untuk menyalin data dari Amazon RDS for Oracle, atur jenis sumber dalam aktivitas penyalinan ke AmazonRdsForOracleSource. Properti berikut ini didukung di bagian sumber aktivitas salin.

Properti Deskripsi Wajib
jenis Properti type dari sumber aktivitas salin harus diatur ke AmazonRdsForOracleSource. Ya
oracleReaderQuery Gunakan kueri SQL kustom untuk membaca data. Contohnya "SELECT * FROM MyTable".
Saat Anda mengaktifkan pemuatan yang dipartisi, Anda harus menghubungkan parameter partisi bawaan yang sesuai dalam kueri Anda. Misalnya, lihat bagian Salinan paralel dari Amazon RDS untuk Oracle.
Tidak
partitionOptions Menentukan opsi partisi data yang digunakan untuk memuat data dari Amazon RDS for Oracle.
Nilai yang diizinkan adalah: Tidak ada (default), PhysicalPartitionsOfTable, dan DynamicRange.
Ketika opsi partisi diaktifkan (yaitu, bukan None), tingkat paralelisme untuk memuat data secara bersamaan dari database Amazon RDS for Oracle dikontrol oleh pengaturan parallelCopies pada aktivitas penyalinan.
Tidak
partitionSettings Tentukan grup pengaturan untuk pemartisian data.
Terapkan saat opsi partisi bukan None.
Tidak
partitionNames Daftar partisi fisik yang perlu disalin.
Terapkan saat opsi partisi adalah PhysicalPartitionsOfTable. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?AdfTabularPartitionName di klausul WHERE. Misalnya, lihat bagian Salinan paralel dari Amazon RDS untuk Oracle.
Tidak
partitionColumnName Tentukan nama kolom sumber dalam jenis bilangan bulat yang akan digunakan oleh partisi rentang untuk penyalinan paralel. Jika belum ditentukan, kunci primer tabel akan terdeteksi secara otomatis dan digunakan sebagai kolom partisi.
Terapkan saat opsi partisi adalah DynamicRange. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?AdfRangePartitionColumnName di klausul WHERE. Misalnya, lihat bagian Salinan paralel dari Amazon RDS untuk Oracle.
Tidak
partitionUpperBound Nilai maksimum kolom partisi untuk menyalin data.
Terapkan saat opsi partisi adalah DynamicRange. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?AdfRangePartitionUpbound di klausul WHERE. Misalnya, lihat bagian Salinan paralel dari Amazon RDS untuk Oracle.
Tidak
partitionLowerBound Nilai minimum kolom partisi untuk menyalin data.
Terapkan saat opsi partisi adalah DynamicRange. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?AdfRangePartitionLowbound di klausul WHERE. Misalnya, lihat bagian Salinan paralel dari Amazon RDS untuk Oracle.
Tidak

Contoh: menyalin data dengan menggunakan kueri dasar tanpa partisi

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

Salinan paralel dari Amazon RDS for Oracle

Konektor Amazon RDS for Oracle menyediakan partisi data bawaan untuk menyalin data dari Amazon RDS for Oracle secara paralel. Anda dapat menemukan opsi pemartisian data pada tab Sumber aktivitas salin.

Screenshot of partition options.

Saat Anda mengaktifkan salinan yang dipartisi, layanan menjalankan kueri paralel terhadap sumber Amazon RDS for Oracle Anda untuk memuat data menurut partisi. Derajat paralel dikendalikan oleh pengaturan parallelCopies pada aktivitas salin. Misalnya, jika Anda mengatur parallelCopies ke empat, layanan secara bersamaan akan menghasilkan dan menjalankan empat kueri berdasarkan opsi dan pengaturan partisi yang ditentukan, dan setiap kueri akan mengambil sebagian data dari database Amazon RDS for Oracle Anda.

Sebaiknya Anda mengaktifkan penyalinan paralel dengan pemartisian data terutama ketika memuat data dalam jumlah besar dari database Amazon RDS for Oracle Anda. Berikut ini adalah konfigurasi yang disarankan untuk skenario yang berbeda. Saat menyalin data ke penyimpanan data berbasis file, disarankan untuk menulis ke satu folder sebagai beberapa file (hanya tentukan nama folder), dalam hal ini, performanya lebih baik daripada menulis ke satu file.

Skenario Pengaturan yang disarankan
Pemuatan penuh dari tabel besar, dengan partisi fisik. Opsi partisi: Partisi fisik tabel.

Selama eksekusi, layanan secara otomatis mendeteksi partisi fisik, dan menyalin data berdasarkan partisi.
Pemuatan penuh dari tabel besar, tanpa partisi fisik, sedangkan dengan kolom bilangan bulat untuk partisi data. Opsi partisi: Partisi rentang dinamis.
Kolom partisi: Menentukan kolom yang digunakan untuk mempartisi data. Jika belum ditentukan, kolom kunci primer digunakan.
Muat data dalam jumlah besar menggunakan kueri kustom, dengan partisi fisik. Opsi partisi: Partisi fisik tabel.
Kueri: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause>.
Nama partisi: Tentukan nama partisi untuk menyalin data. Jika belum ditentukan, layanan secara otomatis mendeteksi partisi fisik pada tabel yang Anda tentukan dalam himpunan data Amazon RDS for Oracle.

Selama eksekusi, layanan mengganti ?AdfTabularPartitionName dengan nama partisi yang sebenarnya, dan mengirimnya ke Amazon RDS for Oracle.
Muat data dalam jumlah besar dengan menggunakan kueri kustom, tanpa partisi fisik, sedangkan dengan kolom bilangan bulat untuk partisi data. Opsi partisi: Partisi rentang dinamis.
Kueri: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Kolom partisi: Menentukan kolom yang digunakan untuk mempartisi data. Anda dapat mempartisi kolom dengan jenis data bilangan bulat.
Batas atas partisi dan batas bawah partisi: Tentukan apakah Anda ingin memfilter kolom partisi untuk mengambil data hanya antara rentang bawah dan atas.

Selama eksekusi, layanan mengganti ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound, dan ?AdfRangePartitionLowbound dengan nama kolom dan rentang nilai aktual untuk setiap partisi, dan mengirimnya ke Amazon RDS for Oracle.
Misalnya, jika "ID" kolom partisi Anda diatur dengan batas bawah sebagai 1 dan batas atas sebagai 80, dengan penyalinan paralel ditetapkan sebagai 4, layanan mengambil data dengan 4 partisi. ID-nya masing-masing antara [1, 20], [21, 40], [41, 60], and [61, 80].

Tip

Saat menyalin data dari tabel yang tidak dipartisi, Anda dapat menggunakan opsi partisi "Rentang dinamis" untuk mempartisi kolom bilangan bulat. Jika data sumber tidak memiliki jenis kolom tersebut, Anda dapat memanfaatkan fungsi ORA_HASH dalam kueri sumber untuk membuat kolom dan menggunakannya sebagai kolom partisi.

Contoh: kueri dengan partisi fisik

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

Contoh: kueri dengan partisi rentang dinamis

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

Properti aktivitas pencarian

Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.

Untuk daftar penyimpanan data yang didukung sebagai sumber dan sink oleh aktivitas salin, lihat Penyimpanan data yang didukung.