Azure Data Factory veya Synapse Analytics kullanarak MongoDB Atlas'tan veya MongoDB Atlas'a 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 Atlas veritabanından ve veritabanından veri kopyalamak için Azure Data Factory veya Synapse Analytics işlem hattında Kopyalama Etkinliğinin nasıl kullanılacağı özetlenmektedir. Kopyalama etkinliğine genel bir genel bakış sunan kopyalama etkinliğine genel bakış makalesini oluşturur.
Desteklenen özellikler
Bu MongoDB Atlas bağlayıcısı aşağıdaki özellikler için desteklenir:
Desteklenen özellikler | IR |
---|---|
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ı
Kaynak/havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.
Önkoşullar
Veri deponuz bir şirket içi ağ, Azure sanal ağı veya Amazon Sanal Özel Bulut içinde bulunuyorsa, şirket içinde barındırılan tümleştirme çalışma zamanını buna bağlanmak için yapılandırmanız gerekir.
Veri deponuz yönetilen bir bulut veri hizmetiyse Azure Integration Runtime'ı kullanabilirsiniz. Erişim, güvenlik duvarı kurallarında onaylanan IP'ler ile sınırlıysa Azure Integration Runtime IP'lerini izin verme listesine ekleyebilirsiniz.
Şirket içinde barındırılan tümleştirme çalışma zamanı yüklemeden ve yapılandırmadan şirket içi ağa erişmek için Azure Data Factory'deki yönetilen sanal ağ tümleştirme çalışma zamanı özelliğini de kullanabilirsiniz.
Data Factory tarafından desteklenen ağ güvenlik mekanizmaları ve seçenekleri hakkında daha fazla bilgi için bkz . Veri erişim stratejileri.
Başlarken
İş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 Atlas'a bağlı hizmet oluşturma
Azure portalı kullanıcı arabiriminde MongoDB Atlas'a 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 Atlas'ı arayın ve MongoDB Atlas bağlayıcısını 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 Atlas bağlayıcısına özgü Data Factory varlıklarını tanımlamak için kullanılan özelliklerle ilgili ayrıntılar sağlanır.
Bağlı hizmet özellikleri
MongoDB Atlas bağlı hizmeti için aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | Tür özelliği şu şekilde ayarlanmalıdır: MongoDbAtlas | Yes |
connectionString | MongoDB Atlas bağlantı dizesi belirtin; örneğin. mongodb+srv://<username>:<password>@<clustername>.<randomString>.<hostName>/<dbname>?<otherProperties> Azure Key Vault'a bir bağlantı dizesi de koyabilirsiniz. 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 |
driverVersion | MongoDB sürüm 3.6 ve üzerini destekleyen v2 için sürücü sürümünü belirtin. Daha fazla bilgi için bu makaleye gidin. | Hayır |
connectVia | Veri deposuna bağlanmak için kullanılacak Integration Runtime. Önkoşullar bölümünden daha fazla bilgi edinin. Belirtilmezse, varsayılan Azure Integration Runtime'ı kullanır. | Hayır |
Örnek:
{
"name": "MongoDbAtlasLinkedService",
"properties": {
"type": "MongoDbAtlas",
"typeProperties": {
"connectionString": "mongodb+srv://<username>:<password>@<clustername>.<randomString>.<hostName>/<dbname>?<otherProperties>",
"database": "myDatabase",
"driverVersion": "<driver version>"
},
"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 Atlas veri kümesi için aşağıdaki özellikler desteklenir:
Özellik | Açıklama | Gerekli |
---|---|---|
Tür | Veri kümesinin tür özelliği şu şekilde ayarlanmalıdır: MongoDbAtlasCollection | Yes |
collectionName | MongoDB Atlas veritabanındaki koleksiyonun adı. | Yes |
Örnek:
{
"name": "MongoDbAtlasDataset",
"properties": {
"type": "MongoDbAtlasCollection",
"typeProperties": {
"collectionName": "<Collection name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<MongoDB Atlas linked service name>",
"type": "LinkedServiceReference"
}
}
}
Kopyalama etkinliğinin özellikleri
Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için İşlem hatları makalesine bakın. Bu bölümde MongoDB Atlas kaynağı ve havuzu tarafından desteklenen özelliklerin listesi sağlanır.
Kaynak olarak MongoDB Atlas
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 şu şekilde ayarlanmalıdır: MongoDbAtlasSource | 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 Atlas'ın sonuçları döndürmeye başladığı ve atlandığı belge sayısını belirtir. cursor.skip() adresine bakın. | Hayır |
batchSize | MongoDB Atlas ö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
Hizmet, 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": "CopyFromMongoDbAtlas",
"type": "Copy",
"inputs": [
{
"referenceName": "<MongoDB Atlas input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MongoDbAtlasSource",
"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 Atlas
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 MongoDbAtlasSink olarak ayarlanmalıdır. | Yes |
writeBehavior | MongoDB Atlas'a 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": "CopyToMongoDBAtlas",
"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": "MongoDbAtlasSink",
"writeBehavior": "upsert"
}
}
}
]
JSON belgelerini içeri ve dışarı aktarma
Bu MongoDB Atlas bağlayıcısını kullanarak kolayca:
- Belgeleri olduğu gibi iki MongoDB Atlas koleksiyonu arasında kopyalayın.
- Azure Cosmos DB, Azure Blob depolama, Azure Data Lake Store ve diğer desteklenen dosya tabanlı depolar dahil olmak üzere çeşitli kaynaklardan JSON belgelerini MongoDB Atlas'a aktarabilirsiniz.
- Bir MongoDB Atlas koleksiyonundaki JSON belgelerini çeşitli dosya tabanlı depolara aktarın.
Böyle bir şemadan bağımsız kopya elde etmek için veri kümesindeki "yapı" (şema olarak da adlandırılır) bölümünü ve kopyalama etkinliğindeki şema eşlemesini atlayın.
Şema eşleme
MongoDB Atlas'tan tablosal havuza veya tersine çevrilmiş verilere kopyalamak için şema eşlemeye bakın.
İlgili içerik
Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . desteklenen veri depoları.