Menyalin data dari MongoDB menggunakan Azure Data Factory (warisan)
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 penyalinan di alur Azure Data Factory atau Azure Synapse Analytics untuk menyalin data dari database MongoDB. Artikel tersebut dibuat berdasarkan artikel gambaran umum aktivitas salin yang menyajikan gambaran umum aktivitas salin.
Penting
Layanan merilis konektor MongoDB baru yang menyediakan dukungan MongoDB asli yang lebih baik dibandingkan dengan implementasi berbasis ODBC ini, lihat artikel Konektor MongoDB bagian detailnya.
Kemampuan yang didukung
Anda dapat menyalin data dari database MongoDB ke penyimpanan data sink yang didukung. Untuk daftar penyimpanan data yang didukung sebagai sumber/sink oleh aktivitas salin, lihat tabel Penyimpanan data yang didukung.
Secara khusus, konektor MongoDB ini mendukung:
- MongoDB versi 2.4, 2.6, 3.0, 3.2, 3.4 dan 3.6.
- Menyalin data menggunakan autentikasi Dasar atau Anonim.
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.
Integration Runtime menyediakan driver MongoDB bawaan, oleh karena itu Anda tidak perlu menginstal driver apa pun secara manual saat menyalin data dari MongoDB.
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 MongoDB menggunakan UI
Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke MongoDB di UI portal Azure.
Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:
Cari Mongo dan pilih konektor MongoDB.
Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.
Detail konfigurasi konektor
Bagian berikut memberikan detail tentang properti yang digunakan untuk menentukan entitas Data Factory khusus untuk konektor MongoDB.
Properti layanan tertaut
Properti berikut ini didukung untuk layanan tertaut MongoDB:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti type harus diatur ke: MongoDb | Ya |
server | Alamat IP atau nama host server MongoDB. | Ya |
pelabuhan | Jumlah port TCP yang digunakan server MongoDB untuk mendengarkan sambungan klien. | Tidak (defaultnya adalah 27017) |
databaseName | Nama database MongoDB yang ingin Anda akses. | Ya |
authenticationType | Jenis autentikasi yang digunakan untuk menyambungkan ke database MongoDB. Nilai yang diizinkan adalah: Dasar dan Anonim. |
Ya |
Nama pengguna | Akun pengguna untuk mengakses MongoDB. | Ya (jika autentikasi dasar digunakan). |
kata sandi | Kata sandi untuk pengguna. Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman, atau mereferensikan rahasia yang disimpan di Azure Key Vault. | Ya (jika autentikasi dasar digunakan). |
authSource | Nama database MongoDB yang ingin Anda gunakan untuk memeriksa kredensial Anda untuk autentikasi. | Tidak. Untuk autentikasi dasar, defaultnya adalah menggunakan akun admin dan database yang ditentukan menggunakan properti databaseName. |
enableSsl | Menentukan apakah koneksi ke server dienkripsi menggunakan TLS. Nilai defaultnya adalah false. | No |
allowSelfSignedServerCert | Menentukan apakah akan mengizinkan sertifikat yang ditandatangani sendiri dari server. Nilai defaultnya adalah false. | No |
connectVia | Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Pelajari selengkapnya dari bagian Prasyarat. Jika tidak ditentukan, Azure Integration Runtime default akan digunakan. | No |
Contoh:
{
"name": "MongoDBLinkedService",
"properties": {
"type": "MongoDb",
"typeProperties": {
"server": "<server name>",
"databaseName": "<database name>",
"authenticationType": "Basic",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Properti himpunan data
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat Himpunan data dan layanan tertaut. Properti berikut ini didukung untuk himpunan data MongoDB:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti type himpunan data harus diatur ke: MongoDbCollection | Ya |
collectionName | Nama koleksi dalam database MongoDB. | Ya |
Contoh:
{
"name": "MongoDbDataset",
"properties": {
"type": "MongoDbCollection",
"linkedServiceName": {
"referenceName": "<MongoDB linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"collectionName": "<Collection name>"
}
}
}
Properti aktivitas salin
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat artikel Alur. Bagian ini memberikan daftar properti yang didukung oleh sumber MongoDB.
MongoDB sebagai sumber
Berikut ini properti yang didukung di bagian sumber aktivitas salin:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti type sumber aktivitas salin harus diatur ke: MongoDbSource | Ya |
pertanyaan | Menggunakan kueri SQL-92 kustom untuk membaca data. Misalnya: pilih * dari MyTable. | Tidak (jika "collectionName" di himpunan data ditentukan) |
Contoh:
"activities":[
{
"name": "CopyFromMongoDB",
"type": "Copy",
"inputs": [
{
"referenceName": "<MongoDB input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MongoDbSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Tip
Saat Anda menentukan kueri SQL, perhatikan perbedaan format DateTime. Misalnya: SELECT * FROM Account WHERE LastModifiedDate >= '2018-06-01' AND LastModifiedDate < '2018-06-02'
atau menggunakan parameter SELECT * FROM Account WHERE LastModifiedDate >= '@{formatDateTime(pipeline().parameters.StartTime,'yyyy-MM-dd HH:mm:ss')}' AND LastModifiedDate < '@{formatDateTime(pipeline().parameters.EndTime,'yyyy-MM-dd HH:mm:ss')}'
Skema oleh Data Factory
Layanan Azure Data Factory menyimpulkan skema dari koleksi MongoDB dengan menggunakan 100 dokumen terbaru dalam koleksi. Jika 100 dokumen ini tidak berisi skema lengkap, beberapa kolom mungkin diabaikan selama operasi penyalinan.
Pemetaan tipe data untuk MongoDB
Saat menyalin data dari MongoDB, pemetaan berikut ini digunakan dari tipe data MongoDB ke tipe data sementara yang digunakan dalam layanan internal. Lihat Pemetaan skema dan jenis data untuk mempelajari bagaimana aktivitas penyalinan memetakan skema sumber dan jenis data ke sink.
Tipe data MongoDB | Jenis data layanan sementara |
---|---|
Biner | Byte[] |
Boolean | Boolean |
Tanggal | DateTime |
NumberDouble | Laju |
NumberInt | Int32 |
NumberLong | Int64 |
ObjectID | String |
String | String |
UUID | Guid |
Objek | Dinormalisasi ulang menjadi kolom rata dengan “_” sebagai pemisah bersarang |
Catatan
Untuk mempelajari tentang dukungan untuk array menggunakan tabel virtual, lihat bagian Dukungan untuk tipe kompleks menggunakan tabel virtual.
Saat ini, tipe data MongoDB berikut ini tidak didukung: DBPointer, JavaScript, kunci Maks/Min, Regular Expression, Symbol, Timestamp, Tidak didefinisikan.
Dukungan untuk tipe kompleks menggunakan tabel virtual
Layanan menggunakan driver ODBC bawaan untuk menyambungkan dan menyalin data dari database MongoDB Anda. Untuk tipe kompleks seperti array atau objek dengan tipe berbeda di seluruh dokumen, driver menormalkan ulang data ke tabel virtual terkait. Secara khusus, jika tabel berisi kolom tersebut, driver menghasilkan tabel virtual berikut:
- Tabel dasar, yang berisi data yang sama dengan tabel asli kecuali untuk kolom tipe kompleks. Tabel dasar menggunakan nama yang sama dengan tabel asli yang diwakilinya.
- Tabel virtual untuk setiap kolom tipe kompleks, yang memperluas data bertumpuk. Tabel virtual diberi nama menggunakan nama tabel asli, pemisah “_” dan nama array atau objek.
Tabel virtual merujuk ke data dalam tabel nyata, yang memungkinkan driver mengakses data yang dinormalisasi. Anda dapat mengakses konten array MongoDB dengan mengkueri dan bergabung dengan tabel virtual.
Contoh
Misalnya, ExampleTable di sini adalah tabel MongoDB yang memiliki satu kolom dengan array Objek di setiap sel - Faktur, dan satu kolom dengan array jenis Skalar - Peringkat.
_id | Nama Pelanggan | Faktur | Tingkat Layanan | Peringkat |
---|---|---|---|---|
1111 | ABC | [{id_faktur:"123", item:"pemanggang roti", harga:"456", diskon:"0.2"}, {id_faktur:"124", item:"oven", harga:"1235", diskon:"0.2"}] | Perak | [5,6] |
2222 | XYZ | [{id_faktur:"135", item:"kulkas", harga:"12543", diskon:"0.0"}] | Emas | [1,2] |
Driver akan menghasilkan beberapa tabel virtual untuk mewakili tabel tunggal ini. Tabel virtual pertama adalah tabel dasar bernama "ExampleTable", yang diperlihatkan dalam contoh. Tabel dasar berisi semua data tabel asli, tetapi data dari array telah dihilangkan dan diperluas dalam tabel virtual.
_id | Nama Pelanggan | Tingkat Layanan |
---|---|---|
1111 | ABC | Perak |
2222 | XYZ | Emas |
Tabel berikut menunjukkan tabel virtual yang mewakili array asli dalam contoh. Tabel ini berisi sebagai berikut:
- Referensi kembali ke kolom kunci primer asli yang terkait dengan baris array asli (melalui kolom _id)
- Indikasi posisi data dalam array asli
- Data yang diperluas untuk setiap elemen dalam array
Tabel "ExampleTable_Invoices":
_id | ExampleTable_Invoices_dim1_idx | id_faktur | item | harga | Discount |
---|---|---|---|---|---|
1111 | 0 | 123 | pemanggang roti | 456 | 0,2 |
1111 | 1 | 124 | oven | 1235 | 0,2 |
2222 | 0 | 135 | kulkas | 12543 | 0.0 |
Tabel "ExampleTable_Ratings":
_id | ExampleTable_Ratings_dim1_idx | ExampleTable_Ratings |
---|---|---|
1111 | 0 | 5 |
1111 | 1 | 6 |
2222 | 0 | 1 |
2222 | 1 | 2 |
Konten terkait
Untuk daftar penyimpanan data yang didukung sebagai sumber dan sink oleh aktivitas salin, lihat penyimpanan data yang didukung.