Menyalin data ke atau dari Azure Cosmos DB untuk MongoDB menggunakan Azure Data Factory atau 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 alur Azure Data Factory dan Synapse Analytics untuk menyalin data dari dan ke Azure Cosmos DB untuk MongoDB. Artikel ini dibuat berdasarkan Aktivitas Salin, yang menyajikan ikhtisar umum tentang Aktivitas Salin.
Catatan
Konektor ini hanya mendukung penyalinan data ke/dari Azure Cosmos DB untuk MongoDB. Untuk Azure Cosmos DB for NoSQL, lihat konektor Azure Cosmos DB for NoSQL. Jenis API lainnya saat ini tidak didukung.
Kemampuan yang didukung
Konektor Azure Cosmos DB for MongoDB ini didukung untuk kemampuan berikut:
Kemampuan yang didukung | IR | Titik akhir privat terkelola |
---|---|---|
Salin aktivitas (sumber/sink) | ① ② | ✓ |
① Runtime integrasi Azure ② 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 for MongoDB. Untuk daftar penyimpanan data yang didukung Aktivitas Salin sebagai sumber dan sink, lihat Penyimpanan dan format data yang didukung.
Anda dapat menggunakan konektor Azure Cosmos DB for MongoDB untuk:
- Salin data dari dan ke Azure Cosmos DB untuk MongoDB.
- Menulis ke Azure Cosmos DB sebagai sisipkan 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 sebagaimana adanya ke atau dari file JSON atau ke atau dari koleksi Azure Cosmos DB lainnya, lihat Mengimpor atau mengekspor dokumen JSON.
Mulai
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 Azure Cosmos DB untuk MongoDB menggunakan UI
Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke Azure Cosmos DB for 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 Azure Cosmos DB untuk MongoDB dan pilih konektor tersebut.
Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.
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 tertaut
Properti berikut ini didukung untuk layanan tertaut Azure Cosmos DB for MongoDB:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis harus diatur ke CosmosDbMongoDbApi. | Ya |
connectionString | Tentukan string koneksi untuk Azure Cosmos DB untuk MongoDB Anda. 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 meletakkan kata sandi di Azure Key Vault dan menarik konfigurasi password dari string koneksi. Lihat Menyimpan informasi masuk 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 pengemudi untuk digunakan dalam layanan. | Ya |
connectVia | Integration Runtime digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan Integration Runtime Azure atau runtime integrasi yang dihost sendiri (jika penyimpanan data Anda berada di jaringan privat). Jika properti ini tidak ditentukan, Integration Runtime Azure 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 himpunan data Azure Cosmos DB untuk MongoDB:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis himpunan data harus diatur ke CosmosDbMongoDbApiCollection. | Ya |
collectionName | Nama 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 didukung sumber dan sink Azure Cosmos DB untuk MongoDB.
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat Alur.
Azure Cosmos DB untuk MongoDB sebagai sumber
Properti berikut ini didukung di bagian sumber Aktivitas Penyalinan:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis sumber aktivitas salin harus diatur ke CosmosDbMongoDbApiSource. | Ya |
filter | Menentukan filter pilihan menggunakan operator kueri. Untuk mengembalikan semua dokumen dalam koleksi, hilangkan parameter ini atau teruskan dokumen kosong ({}). | Tidak |
cursorMethods.project | Menentukan bidang yang akan dikembalikan dalam dokumen untuk 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) |
Tip
Dukungan ADF menggunakan dokumen BSON dalam mode Ketat. Pastikan kueri filter Anda dalam mode Ketat, 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 jenis sink Aktivitas Salin 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) |
Tip
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:
- Menyalin dokumen antara dua koleksi Azure Cosmos DB sebagaimana adanya.
- Impor dokumen JSON dari berbagai sumber ke Azure Cosmos DB, termasuk dari penyimpanan Azure Blob, Azure Data Lake Store, dan penyimpanan berbasis file lainnya yang didukung layanan.
- Mengekspor 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 apa adanya 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 sink tabular atau terbalik, lihat pemetaan skema.
Khusus untuk menulis ke 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:
Setelah eksekusi aktivitas salin, di bawah BSON ObjectId dihasilkan dalam sink:
{
"_id": ObjectId("592e07800000000000000000")
}
Konten terkait
Untuk daftar penyimpanan data yang didukung oleh Copy Activity sebagai sumber dan sink, lihat penyimpanan data yang didukung.