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/-) | (1) (2) |
Aktivitas pencarian | (1) (2) |
① 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.
Memulai
Untuk melakukan aktivitas Salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:
- Alat Penyalinan Data
- Portal Microsoft Azure
- SDK .NET
- SDK Python
- Azure PowerShell
- REST API
- Templat Azure Resource Manager
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.
Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:
Cari Amazon RDS for Oracle dan pilih konektor Amazon RDS for Oracle.
Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.
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. | No |
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:
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-----
Buat
keystore
atautruststore
. Perintah berikut membuat filetruststore
, 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
Masukkan file
truststore
pada mesin IR yang dihost sendiri. Misalnya, masukkan file di C:\MyTrustStoreFile.Di layanan, konfigurasikan string koneksi Amazon RDS for Oracle dengan
EncryptionMethod=1
dan nilaiTrustStore
/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. | No |
tabel | Nama tabel/tampilan. | No |
tableName | Nama tabel/tampilan dengan skema. Properti ini didukung untuk kompatibilitas mundur. Untuk beban kerja baru, gunakan schema dan table . |
No |
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. |
No |
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. |
No |
partitionSettings | Tentukan grup pengaturan untuk pemartisian data. Terapkan saat opsi partisi bukan None . |
No |
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. |
No |
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. |
No |
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. |
No |
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. |
No |
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.
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 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.
Konten terkait
Untuk daftar penyimpanan data yang didukung sebagai sumber dan sink oleh aktivitas salin, lihat Penyimpanan data yang didukung.