Azure Data Factory veya Synapse Analytics kullanarak MongoDB için Azure Cosmos DB'ye veya Azure Cosmos DB'den veri kopyalama
UYGULANANLAR: Azure Data Factory Azure Synapse Analytics
İpucu
Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!
Bu makalede, MongoDB için Azure Cosmos DB'den ve Azure Cosmos DB'ye veri kopyalamak için Azure Data Factory ve Synapse Analytics işlem hatlarında Kopyalama Etkinliği'nin nasıl kullanılacağı özetlenmiştir. Makale, Kopyalama Etkinliği'ne genel bir genel bakış sunan Kopyalama Etkinliği üzerine derlenmektedir.
Not
Bu bağlayıcı yalnızca MongoDB için Azure Cosmos DB'ye/azuredan veri kopyalamayı destekler. NoSQL için Azure Cosmos DB için NoSQL için Azure Cosmos DB bağlayıcısına bakın. Diğer API türleri şu anda desteklenmiyor.
Desteklenen özellikler
MongoDB için Azure Cosmos DB bağlayıcısı aşağıdaki özellikler için desteklenir:
Desteklenen özellikler | IR | Yönetilen özel uç nokta |
---|---|---|
Kopyalama etkinliği (kaynak/havuz) | (1) (2) | ✓ |
(1) Azure tümleştirme çalışma zamanı (2) Şirket içinde barındırılan tümleştirme çalışma zamanı
MongoDB için Azure Cosmos DB'den desteklenen herhangi bir havuz veri deposuna veri kopyalayabilir veya desteklenen herhangi bir kaynak veri deposundaki verileri MongoDB için Azure Cosmos DB'ye kopyalayabilirsiniz. Kopyalama Etkinliği'nin kaynak ve havuz olarak desteklediği veri depolarının listesi için bkz . Desteklenen veri depoları ve biçimleri.
MongoDB için Azure Cosmos DB bağlayıcısını kullanarak aşağıdakileri yapabilirsiniz:
- MongoDB için Azure Cosmos DB'den ve azure cosmos DB'ye veri kopyalama.
- Ekleme veya yükseltme olarak Azure Cosmos DB'ye yazın.
- JSON belgelerini olduğu gibi içeri ve dışarı aktarın ya da tablolu bir veri kümesinden veya veri kümesine veri kopyalayın. Örnek olarak SQL veritabanı ve CSV dosyası verilebilir. Belgeleri olduğu gibi JSON dosyalarına veya başka bir Azure Cosmos DB koleksiyonuna veya koleksiyonuna kopyalamak için bkz. JSON belgelerini içeri veya dışarı aktarma.
Kullanmaya başlayın
İşlem hattıyla Kopyalama etkinliği gerçekleştirmek için aşağıdaki araçlardan veya SDK'lardan birini kullanabilirsiniz:
- Veri Kopyalama aracı
- Azure portal
- .NET SDK'sı
- Python SDK'sı
- Azure PowerShell
- The REST API
- Azure Resource Manager şablonu
Kullanıcı arabirimini kullanarak MongoDB için Azure Cosmos DB'ye bağlı hizmet oluşturma
Azure portalı kullanıcı arabiriminde MongoDB için Azure Cosmos DB'ye bağlı bir hizmet oluşturmak için aşağıdaki adımları kullanın.
Azure Data Factory veya Synapse çalışma alanınızda Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:
MongoDB için Azure Cosmos DB'yi arayın ve bu bağlayıcıyı seçin.
Hizmet ayrıntılarını yapılandırın, bağlantıyı test edin ve yeni bağlı hizmeti oluşturun.
Bağlayıcı yapılandırma ayrıntıları
Aşağıdaki bölümlerde, MongoDB için Azure Cosmos DB'ye özgü Data Factory varlıklarını tanımlamak için kullanabileceğiniz özelliklerle ilgili ayrıntılar sağlanır.
Bağlı hizmet özellikleri
MongoDB için Azure Cosmos DB bağlı hizmeti için aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | tür özelliği CosmosDbMongoDbApi olarak ayarlanmalıdır. | Yes |
connectionString | MongoDB için Azure Cosmos DB'nizin bağlantı dizesi belirtin. Bunu Azure portalında (>Azure Cosmos DB dikey pencereniz)> birincil veya ikincil bağlantı dizesi bulabilirsiniz. 3.2 sunucu sürümü için dize deseni şeklindedir mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb . 3.6+ sunucu sürümleri için dize deseni şeklindedir mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000&appName=@<cosmosdb-name>@ .Ayrıca Azure Key Vault'a parola ekleyebilir ve yapılandırmayı password bağlantı dizesi çıkarabilirsiniz. Diğer ayrıntılarla birlikte Azure Key Vault'ta kimlik bilgilerini depolama bölümüne bakın. |
Yes |
database | Erişmek istediğiniz veritabanının adı. | Yes |
isServerVersionAbove32 | Sunucu sürümünün 3.2'nin üzerinde olup olmadığını belirtin. İzin verilen değerler true ve false(varsayılan) değerleridir. Bu, hizmette kullanılacak sürücüyü belirler. | Yes |
connectVia | Veri deposuna bağlanmak için kullanılacak Integration Runtime. Azure Integration Runtime'ı veya şirket içinde barındırılan tümleştirme çalışma zamanını (veri deponuz özel bir ağda bulunuyorsa) kullanabilirsiniz. Bu özellik belirtilmezse, varsayılan Azure Integration Runtime kullanılır. | Hayır |
Örnek
{
"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"
}
}
}
Veri kümesi özellikleri
Veri kümelerini tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için bkz . Veri kümeleri ve bağlı hizmetler. MongoDB için Azure Cosmos DB veri kümesi için aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | Veri kümesinin tür özelliği CosmosDbMongoDbApiCollection olarak ayarlanmalıdır. | Yes |
collectionName | Azure Cosmos DB koleksiyonunun adı. | Yes |
Örnek
{
"name": "CosmosDbMongoDBAPIDataset",
"properties": {
"type": "CosmosDbMongoDbApiCollection",
"typeProperties": {
"collectionName": "<collection name>"
},
"schema": [],
"linkedServiceName":{
"referenceName": "<Azure Cosmos DB for MongoDB linked service name>",
"type": "LinkedServiceReference"
}
}
}
Kopyalama Etkinliği özellikleri
Bu bölümde MongoDB için Azure Cosmos DB kaynağının ve havuz desteğinin yer aldığı özelliklerin listesi sağlanır.
Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için bkz . İşlem hatları.
Kaynak olarak MongoDB için Azure Cosmos DB
Kopyalama Etkinliği kaynağı bölümünde aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | Kopyalama etkinliği kaynağının type özelliği CosmosDbMongoDbApiSource olarak ayarlanmalıdır. | Yes |
filtrele | Sorgu işleçlerini kullanarak seçim filtrelerini belirtir. Koleksiyondaki tüm belgeleri döndürmek için bu parametreyi atlar veya boş bir belge ({} ) geçirirsiniz. | Hayır |
cursorMethods.project | Projeksiyon için belgelerde döndürülecek alanları belirtir. Eşleşen belgelerdeki tüm alanları döndürmek için bu parametreyi atla. | Hayır |
cursorMethods.sort | Sorgunun eşleşen belgeleri döndürme sırasını belirtir. cursor.sort() öğesine bakın. | Hayır |
cursorMethods.limit | Sunucunun döndürdüğü en fazla belge sayısını belirtir. cursor.limit()'e bakın. | Hayır |
cursorMethods.skip | MongoDB'nin sonuçları döndürmeye başladığı ve atlandığı belge sayısını belirtir. cursor.skip() adresine bakın. | Hayır |
batchSize | MongoDB örneğinden gelen yanıtın her toplu işleminde döndürülecek belge sayısını belirtir. Çoğu durumda, toplu iş boyutunun değiştirilmesi kullanıcıyı veya uygulamayı etkilemez. Azure Cosmos DB sınırları her toplu iş boyutu 40 MB'ı aşamaz. Bu, belge boyutunu toplu iş sayısı toplamıdır, bu nedenle belge boyutunuz büyükse bu değeri azaltın. | Hayır (varsayılan değer 100'dür) |
İpucu
ADF, BSON belgesini Katı modda tüketmeyi destekler. Filtre sorgunuzun Kabuk modu yerine Katı modda olduğundan emin olun. MongoDB kılavuzunda daha fazla açıklama bulunabilir.
Örnek
"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>"
}
}
}
]
Havuz olarak MongoDB için Azure Cosmos DB
Kopyalama Etkinliği havuzu bölümünde aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | Kopyalama Etkinliği havuzu type özelliği CosmosDbMongoDbApiSink olarak ayarlanmalıdır. | Yes |
writeBehavior | Azure Cosmos DB'ye veri yazmayı açıklar. İzin verilen değerler: insert ve upsert. Upsert'in davranışı, aynı _id belge zaten varsa belgeyi değiştirmektir; aksi takdirde, belgeyi ekleyin.Not: Hizmet, özgün belgede veya sütun eşlemesinde belirtilmemişse belge için otomatik olarak bir _id oluşturur_id . Bu, upsert'in beklendiği gibi çalışması için belgenizin bir kimliği olduğundan emin olmanız gerektiği anlamına gelir. |
Hayır (varsayılan değer ekle'dir) |
writeBatchSize | writeBatchSize özelliği, her toplu işleme yazacak belgelerin boyutunu denetler. Performansı artırmak ve belge boyutunuz büyükse değeri azaltmak için writeBatchSize değerini artırmayı deneyebilirsiniz. | Hayır (varsayılan değer 10.000'dir) |
writeBatchTimeout | Toplu ekleme işleminin zaman aşımına uğramadan önce bitmesini bekleme süresi. İzin verilen değer zaman aralığıdır. | Hayır (varsayılan değer 00:30:00 - 30 dakikadır) |
İpucu
JSON belgelerini olduğu gibi içeri aktarmak için JSON belgelerini içeri veya dışarı aktarma bölümüne bakın; tablo şeklindeki verilerden kopyalamak için Şema eşleme bölümüne bakın.
Örnek
"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"
}
}
}
]
JSON belgelerini içeri ve dışarı aktarma
Bu Azure Cosmos DB bağlayıcısını kullanarak kolayca:
- Belgeleri olduğu gibi iki Azure Cosmos DB koleksiyonu arasında kopyalayın.
- MongoDB, Azure Blob depolama, Azure Data Lake Store ve hizmetin desteklediği diğer dosya tabanlı depolar dahil olmak üzere çeşitli kaynaklardan Azure Cosmos DB'ye JSON belgelerini içeri aktarın.
- Azure Cosmos DB koleksiyonundaki JSON belgelerini çeşitli dosya tabanlı depolara aktarın.
Şemadan bağımsız kopya elde etmek için:
- Veri Kopyalama aracını kullandığınızda, JSON dosyalarına veya Azure Cosmos DB koleksiyonuna olduğu gibi dışarı aktar seçeneğini belirleyin.
- Etkinlik yazma özelliğini kullandığınızda, kaynak veya havuz için karşılık gelen dosya deposuyla JSON biçimini seçin.
Şema eşleme
MongoDB için Azure Cosmos DB'den tablosal havuza veya tersine çevrilmiş verilere kopyalamak için şema eşlemesine bakın.
Özellikle Azure Cosmos DB'ye yazmak için, Azure Cosmos DB'yi kaynak verilerinizden doğru nesne kimliğiyle doldurduğunuzdan emin olmak için, örneğin, SQL veritabanı tablosunda bir "id" sütununuz var ve bunun değerini insert/upsert için MongoDB'de belge kimliği olarak kullanmak istiyorsanız, mongoDB katı mod tanımına (_id.$oid
) göre uygun şema eşlemesini aşağıdaki gibi ayarlamanız gerekir:
Kopyalama etkinliği yürütme sonrasında, havuz içinde BSON ObjectId'nin altında oluşturulur:
{
"_id": ObjectId("592e07800000000000000000")
}
İlgili içerik
Kopyalama Etkinliği'nin kaynak ve havuz olarak desteklediği veri depolarının listesi için desteklenen veri depolarına bakın.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin