Bagikan melalui


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:

Membuat layanan tertaut ke MongoDB menggunakan UI

Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke MongoDB di UI portal Azure.

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

  2. Cari Mongo dan pilih konektor MongoDB.

    Tangkapan layar konektor MongoDB.

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

    Screenshot konfigurasi layanan tertaut untuk MongoDB.

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

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