Bagikan melalui


Menyalin data ke atau dari Azure Cosmos DB untuk MongoDB menggunakan Azure Data Factory atau Synapse Analytics

Azure Data Factory Azure Synapse Analytics

Petunjuk

Data Factory di Microsoft Fabric adalah generasi Azure Data Factory berikutnya, dengan arsitektur yang lebih sederhana, AI bawaan, dan fitur baru. Jika Anda baru menggunakan integrasi data, mulailah dengan Fabric Data Factory. Beban kerja ADF yang ada dapat ditingkatkan ke Fabric untuk mengakses kemampuan baru di seluruh ilmu data, analitik real time, dan pelaporan.

Artikel ini menguraikan cara menggunakan Aktivitas Salin di alur Azure Data Factory dan Synapse Analytics untuk menyalin data dari dan ke Azure Cosmos DB untuk MongoDB. Artikel ini dibangun atas Aktivitas Menyalin, yang menyajikan ikhtisar umum mengenai Aktivitas Menyalin.

Catatan

Konektor ini hanya mendukung penyalinan data ke/dari Azure Cosmos DB untuk MongoDB. Untuk Azure Cosmos DB untuk NoSQL, lihat konektor Azure Cosmos DB untuk NoSQL. Jenis API lainnya saat ini tidak didukung.

Kemampuan yang didukung

Konektor Azure Cosmos DB untuk MongoDB ini didukung untuk kemampuan berikut:

Kemampuan yang didukung IR Titik akhir privat terkelola
Copy activity (sumber/sink) (1) (2)

(1) Azure runtime integrasi (2) Runtime integrasi yang dihost sendiri

Anda dapat menyalin data dari Azure Cosmos DB untuk MongoDB ke penyimpanan data sink yang didukung, atau menyalin data dari penyimpanan data sumber yang didukung ke Azure Cosmos DB untuk MongoDB. Untuk daftar penyimpanan data yang didukung Aktivitas Salin sebagai sumber dan sink, lihat Penyimpanan dan format data yang didukung.

Anda dapat menggunakan Azure Cosmos DB untuk konektor MongoDB untuk:

  • Salin data dari dan ke Azure Cosmos DB untuk MongoDB.
  • Tulis ke Azure Cosmos DB sebagai insert atau upsert.
  • Mengimpor dan mengekspor dokumen JSON sebagaimana adanya, atau menyalin data dari atau ke himpunan data tabular. Contohnya termasuk database SQL dan file CSV. Untuk menyalin dokumen as-is ke atau dari file JSON atau ke atau dari koleksi Azure Cosmos DB lain, lihat Mengimpor atau mengekspor dokumen JSON.

Mulai sekarang

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

Membuat layanan tertaut ke Azure Cosmos DB untuk MongoDB menggunakan UI

Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke Azure Cosmos DB untuk 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 Azure Cosmos DB untuk MongoDB dan pilih konektor tersebut.

    Pilih Azure Cosmos DB untuk konektor MongoDB.

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

    Konfigurasi layanan tertaut ke Azure Cosmos DB untuk MongoDB.

Detail konfigurasi konektor

Bagian berikut ini menyediakan detail tentang properti yang dapat Anda gunakan untuk menentukan entitas Data Factory yang khusus untuk Azure Cosmos DB untuk MongoDB.

Properti layanan terhubung

Properti berikut ini didukung untuk Azure Cosmos DB untuk layanan tertaut MongoDB:

Properti Deskripsi Wajib
jenis Properti type harus diatur ke CosmosDbMongoDbApi. Ya
String Koneksi Tentukan string koneksi untuk Azure Cosmos DB Anda untuk MongoDB. Anda dapat menemukannya di portal Azure -> bilah Azure Cosmos DB Anda -> string koneksi primer atau sekunder.
Untuk versi server 3.2, pola string adalah mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb.
Untuk versi server 3.6+, pola string adalah mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000&appName=@<cosmosdb-name>@.

Anda juga dapat memasukkan kata sandi ke Azure Key Vault dan menarik konfigurasi password dari string koneksi. Lihat kredensial Store di Azure Key Vault dengan detail selengkapnya.
Ya
database Nama database yang ingin Anda akses. Ya
isServerVersionAbove32 Tentukan apakah versi server di atas 3.2. Nilai yang diperbolehkan adalah true dan false(default). Ini akan menentukan driver yang digunakan dalam layanan. Ya
connectVia Integration Runtime untuk digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan Azure Integration Runtime atau integration runtime yang dihost sendiri (jika penyimpanan data Anda terletak di jaringan privat). Jika properti ini tidak ditentukan, Azure Integration Runtime default akan digunakan. Tidak

Contoh

{
    "name": "CosmosDbMongoDBAPILinkedService",
    "properties": {
        "type": "CosmosDbMongoDbApi",
        "typeProperties": {
            "connectionString": "mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb",
            "database": "myDatabase",
            "isServerVersionAbove32": "false"
        },
        "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 Azure Cosmos DB untuk himpunan data MongoDB:

Properti Deskripsi Wajib
jenis Properti jenis himpunan data harus disetel ke CosmosDbMongoDbApiCollection. Ya
namaKoleksi Nama dari koleksi Azure Cosmos DB. Ya

Contoh

{
    "name": "CosmosDbMongoDBAPIDataset",
    "properties": {
        "type": "CosmosDbMongoDbApiCollection",
        "typeProperties": {
            "collectionName": "<collection name>"
        },
        "schema": [],
        "linkedServiceName":{
            "referenceName": "<Azure Cosmos DB for MongoDB linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Properti Aktivitas Salin

Bagian ini menyediakan daftar properti yang Azure Cosmos DB untuk dukungan sumber dan sink MongoDB.

Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat Pipelines.

Azure Cosmos DB untuk MongoDB sebagai sumber

Properti berikut ini didukung di bagian sumber Aktivitas Penyalinan:

Properti Deskripsi Wajib
jenis Properti type sumber aktivitas salin harus diatur ke CosmosDbMongoDbApiSource. Ya
filter Menentukan filter seleksi menggunakan operator kueri. Untuk mengembalikan semua dokumen dalam koleksi, hilangkan parameter ini atau teruskan dokumen kosong ({}). Tidak
cursorMethods.project Menentukan kolom yang akan dikembalikan dalam dokumen untuk tujuan proyeksi. Untuk mengembalikan semua bidang dalam dokumen yang cocok, hilangkan parameter ini. Tidak
cursorMethods.sort Menentukan urutan kueri mengembalikan dokumen yang cocok. Lihat cursor.sort(). Tidak
cursorMethods.limit Menentukan jumlah maksimum dokumen yang dikembalikan server. Lihat cursor.limit(). Tidak
cursorMethods.skip Menentukan jumlah dokumen yang akan dilompati dan dari mana MongoDB mulai mengembalikan hasil. Lihat cursor.skip(). Tidak
batchSize Menentukan jumlah dokumen yang akan dikembalikan di setiap batch respons dari instans MongoDB. Dalam kebanyakan kasus, memodifikasi ukuran batch tidak akan mempengaruhi pengguna atau aplikasi. Azure Cosmos DB membatasi setiap batch tidak boleh melebihi ukuran 40MB, yang merupakan jumlah ukuran dokumen batchSize, jadi kurangi nilai ini jika ukuran dokumen Anda besar. Tidak
(defaultnya adalah 100)

Petunjuk

ADF mendukung pemrosesan dokumen BSON dalam mode Ketat. Pastikan kueri filter Anda dalam mode Strict, bukan mode Shell. Deskripsi lebih lanjut dapat ditemukan di manual MongoDB.

Contoh

"activities":[
    {
        "name": "CopyFromCosmosDBMongoDBAPI",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Cosmos DB for MongoDB input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "CosmosDbMongoDbApiSource",
                "filter": "{datetimeData: {$gte: ISODate(\"2018-12-11T00:00:00.000Z\"),$lt: ISODate(\"2018-12-12T00:00:00.000Z\")}, _id: ObjectId(\"5acd7c3d0000000000000000\") }",
                "cursorMethods": {
                    "project": "{ _id : 1, name : 1, age: 1, datetimeData: 1 }",
                    "sort": "{ age : 1 }",
                    "skip": 3,
                    "limit": 3
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Azure Cosmos DB untuk MongoDB sebagai sink

Properti berikut ini didukung di Salin Aktivitas bagian sink:

Properti Deskripsi Wajib
jenis Properti type dari sink Copy Activity harus diatur menjadi CosmosDbMongoDbApiSink. Ya
writeBehavior Menjelaskan cara menulis data ke Azure Cosmos DB. Nilai yang diperbolehkan sisipkan dan upsert.

Perilaku upsert bertujuan mengganti dokumen jika dokumen dengan _id yang sama sudah ada; jika tidak, sisipkan dokumen.

Catatan: Layanan secara otomatis membuat _id untuk dokumen jika _id tidak ditentukan baik dalam dokumen asli atau dengan pemetaan kolom. Artinya Anda harus memastikan bahwa, agar upsert berfungsi seperti yang diharapkan, dokumen Anda harus memiliki ID.
Tidak
(defaultnya adalah sisipkan)
writeBatchSize Properti writeBatchSize mengontrol ukuran dokumen yang ditulis di setiap batch. Anda dapat mencoba meningkatkan nilai untuk writeBatchSize untuk meningkatkan performa dan mengurangi nilai jika ukuran dokumen Anda besar. Tidak
(Nilai defaultnya adalah 10,000)
writeBatchTimeout Waktu tunggu untuk operasi insert batch selesai sebelum waktu habis. Nilai yang diperbolehkan adalah rentang waktu. Tidak
(defaultnya adalah 00:30:00 - 30 menit)

Petunjuk

Untuk mengimpor dokumen JSON sebagaimana adanya, lihat bagian Mengimpor atau mengekspor dokumen JSON; untuk menyalin dari data berbentuk tabular, lihat pemetaan Skema.

Contoh

"activities":[
    {
        "name": "CopyToCosmosDBMongoDBAPI",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Document DB output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "CosmosDbMongoDbApiSink",
                "writeBehavior": "upsert"
            }
        }
    }
]

Mengimpor dan mengekspor dokumen JSON

Anda dapat menggunakan konektor Azure Cosmos DB ini untuk dengan mudah:

  • Salin dokumen dari satu koleksi Azure Cosmos DB ke koleksi lainnya sebagaimana adanya.
  • Impor dokumen JSON dari berbagai sumber ke Azure Cosmos DB, termasuk dari MongoDB, penyimpanan Blob Azure, Azure Data Lake Store, dan penyimpanan berbasis file lainnya yang didukung layanan.
  • Ekspor dokumen JSON dari koleksi Azure Cosmos DB ke berbagai penyimpanan berbasis file.

Untuk mencapai salinan skema-agnostik:

  • Saat Anda menggunakan alat Salin Data, pilih opsi Ekspor as-is ke file JSON atau koleksi Azure Cosmos DB.
  • Saat Anda menggunakan penulisan aktivitas, pilih format JSON dengan penyimpanan file yang sesuai untuk sumber atau sink.

Pemetaan skema

Untuk menyalin data dari Azure Cosmos DB untuk MongoDB ke tabular sink atau sebaliknya, lihat pemetaan skema.

Khusus untuk menulis ke dalam Azure Cosmos DB, untuk memastikan Anda mengisi Azure Cosmos DB dengan ID objek yang tepat dari data sumber Anda, misalnya, Anda memiliki kolom "id" dalam tabel database SQL dan ingin menggunakan nilainya sebagai ID dokumen di MongoDB untuk insert/upsert, Anda perlu mengatur pemetaan skema yang tepat sesuai dengan definisi mode ketat MongoDB (_id.$oid) sebagai Berikut:

ID Peta di sink MongoDB

Setelah eksekusi aktivitas salin, di bawah BSON ObjectId dihasilkan dalam sink:

{
    "_id": ObjectId("592e07800000000000000000")
}

Pemetaan jenis data untuk Azure Cosmos DB untuk MongoDB

Saat menyalin data dari Azure Cosmos DB untuk MongoDB, pemetaan berikut digunakan dari Azure Cosmos DB untuk jenis data MongoDB ke jenis data sementara yang digunakan oleh layanan secara internal. Lihat Pemetaan skema dan jenis data untuk mempelajari bagaimana aktivitas penyalinan memetakan skema sumber dan jenis data ke sink.

Azure Cosmos DB untuk jenis data MongoDB Jenis data layanan sementara
Tanggal Int64
IDObjek String
Desimal128 String
Penanda Waktu 32 bit yang paling signifikan -> Int64
32 bit paling tidak signifikan -> Int64
String String
Double Double
Int32 Int64
Int64 Int64
Boolean Boolean
Null Null
JavaScript String
Ekspresi Reguler String
Kunci minimum Int64
Kunci maksimum Int64
Binary String

Untuk daftar penyimpanan data yang didukung oleh Copy Activity sebagai sumber dan sink, lihat penyimpanan data yang didukung.