Azure Data Factory veya Synapse Analytics kullanarak verileri MongoDB'den veya ona kopyalayın

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Bu makale, Azure Data Factory'deki Kopyalama Etkinliği ve Synapse Analytics boru hatlarının MongoDB veritabanından veri kopyalamak için nasıl kullanılacağını açıklar. Kopyalama etkinliğine genel bakış makalesine dayanır ve bu makale, kopyalama etkinliğine genel bir bakış sunar.

Uyarı

Bu bağlayıcı Microsoft Fabric'daki Data Factory'de de kullanılabilir. Fabric özgü yapılandırma ve özellikler için Fabric MongoDB bağlayıcısı belgelerine bakın.

Önemli

Yeni MongoDB bağlayıcısı geliştirilmiş yerel MongoDB desteği sağlar. Çözümünüzde eski MongoDB konnektörünü kullanıyorsanız, sadece geriye dönük uyumluluk için destekleniyor as-is, MongoDB konnektörü (eski) sayfasına bakabilirsiniz. Bu konnektörü kullanarak verileri Azure DocumentDB'den ve ona kopyalayabilirsiniz (MongoDB uyumluluğuyla).

Desteklenen özellikler

Bu MongoDB konnektörü aşağıdaki yetenekleri destekler:

Desteklenen özellikler Kızılötesi
Kopyalama etkinliği (kaynak/havuz) (1) (2)

(1) Azure tümleştirme çalışma zamanı (2) Yerel barındırılan tümleştirme çalışma zamanı

Kaynak ve yutucu olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakınız.

Özellikle, bu MongoDB bağlayıcısı 4.2'ye kadar olan sürümleri destekler. Çalışmanız 4.2'den yeni sürümler gerektiriyorsa, MongoDB Atlas'ı daha kapsamlı destek ve özellikler sağlayan MongoDB Atlas bağlayıcısı ile kullanmayı göz önünde bulundurun.

Önkoşullar

Veri deponuz bir yerel ağ, Azure sanal ağ veya Amazon Sanal Özel Bulut içinde bulunuyorsa, ona bağlanmak için kendinden barındırılan bir tümleştirme çalışma zamanı 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, izin verme listesine Azure Integration Runtime IP ekleyebilirsiniz.

Şirket içi ağa erişmek için, şirket içinde barındırılan tümleştirme çalışma zamanı yüklemeden ve yapılandırmadan Azure Data Factory 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

Kopyalama etkinliğini bir işlem hattıyla gerçekleştirmek için aşağıdaki araçlardan veya SDK'lardan birini kullanabilirsiniz:

Arayüz kullanarak MongoDB'ye bağlı bir hizmet oluşturun

Azure portalı kullanıcı arabiriminde MongoDB'ye bağlı bir hizmet oluşturmak için aşağıdaki adımları kullanın.

  1. Azure Data Factory veya Synapse çalışma alanınızdaki Yönet sekmesine göz atın ve Linked Services seçeneğini seçin. Sonra Yeni seçeneğini seçin:

     Azure Data Factory UI ile yeni bir bağlı hizmet oluşturun.

  2. MongoDB'yi arayın ve MongoDB bağlayıcısını seçin.

    MongoDB bağlayıcısını seçin.

  3. Hizmet ayrıntılarını yapılandırın, bağlantıyı test edin ve yeni bağlı hizmeti oluşturun.

    MongoDB'ye bağlı bir hizmet yapılandırın.

Bağlayıcı yapılandırma ayrıntıları

Aşağıdaki bölümlerde, MongoDB 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

Aşağıdaki tablo, MongoDB bağlantılı bir servis için desteklenen özellikleri listeler:

Özellik Açıklama Gerekli
Tip Tip özelliğini şu şekilde ayarlayın: MongoDbV2 Yes
bağlantı dizesi MongoDB bağlantı dizesi'i belirtin, örneğin mongodb://[username:password@]host[:port][/[database][?options]]. Daha fazla bilgi için MongoDB kılavuzunda bağlantı dizesi'e bakınız.

Azure Key Vault'a ayrıca bir bağlantı dizesi yerleştirebilirsiniz. Daha fazla bilgi için bkz. Azure Key Vault'ta kimlik bilgilerini sakla. |Evet | | veritabanı | Erişmek istediğiniz veritabanının adı. | Evet | | connectVia | Veri deposuna bağlanmak için kullanacağınız Integration Runtime. Daha fazla bilgi edinmek için Önkoşullar bölümüne bakın. Bu özelliği belirtmezseniz, varsayılan Azure Integration Runtime kullanılır. |Hayır |

Örnek:

{
    "name": "MongoDBLinkedService",
    "properties": {
        "type": "MongoDbV2",
        "typeProperties": {
            "connectionString": "mongodb://[username:password@]host[:port][/[database][?options]]",
            "database": "myDatabase"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Veri kümesi özellikleri

Veri setlerini tanımlamak için kullanabileceğiniz bölümler ve özelliklerin tam listesi için Veri setleri ve bağlantılı hizmetler bölümüne bakabilirsiniz. Aşağıdaki tablo, bir MongoDB veri seti için desteklenen özellikleri listeler:

Özellik Açıklama Gerekli
Tip Veri setinin tür özelliğini şu şekilde ayarlayın: MongoDbV2Collection Yes
collectionName MongoDB veritabanındaki koleksiyonun adı. Yes

Örnek:

{
    "name": "MongoDbDataset",
    "properties": {
        "type": "MongoDbV2Collection",
        "typeProperties": {
            "collectionName": "<Collection name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<MongoDB linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Kopyalama etkinliği özellikleri

Etkinlikleri tanımlamak için kullanılabilecek tüm bölümlerin ve özelliklerin listesi için Yapılandırma Hatları makalesine bakın. Bu bölümde MongoDB kaynağı ve havuzu tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak olarak MongoDB

Kopyalama faaliyeti kaynak bölümü aşağıdaki özellikleri destekler:

Özellik Açıklama Gerekli
Tip Kopyalama faaliyeti kaynağının tür özelliğini şu şekilde ayarlayın: MongoDbV2Source Yes
filtre 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şlamadan önce atlanacak belge sayısını belirtir. cursor.skip() adresine bakın. Hayır
yığınBoyutu MongoDB örneğinden gelen yanıtın her toplu işleminde döndürülecek belge sayısını belirtir. Çoğu durumda, toplu boyutun değiştirilmesi kullanıcıyı veya uygulamayı etkilemez. Azure Cosmos DB, her toplu kısmın 40 MB boyutunu aşamayacağını sınırlar; bu da batchSize sayısının belge boyutunun toplamıdır, bu yüzden belge büyüklüğünüz büyükse bu değeri azaltın. Hayır
(varsayılan değer 100'dür)

İpucu

Hizmet, BSON belgesini Katı Mod'da işlemeyi destekler. Filtre sorgusunun Shell modu yerine Strict modunda olduğundan emin olun. Daha fazla bilgi için MongoDB kılavuzuna bakınız.

Örnek:

"activities":[
    {
        "name": "CopyFromMongoDB",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<MongoDB input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "MongoDbV2Source",
                "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

Kopyalama Etkinliği havuzu bölümü aşağıdaki özellikleri destekler:

Özellik Açıklama Gerekli
Tip Kopyalama etkinliği alıcısının tür özelliğini MongoDbV2Sink olarak ayarlayın. Yes
writeBehavior MongoDB'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, belgenizin bir kimliği olduğundan emin olmanız gerektiği, böylece upsert işleminin beklendiği gibi çalışabileceği anlamına gelir.
Hayır
(varsayılan değer ekle'dir)
writeBatchSize writeBatchSize özelliği, her partide yazılacak belge sayısını kontrol eder. Performansı artırmak için değeri artırmayı deneyin. Belge boyutunuz büyükse, değeri azaltmayı deneyin. Hayır
(varsayılan değer 10.000'dir)
writeBatchTimeout Toplu ekleme işleminin zaman aşımına uğramadan önce tamamlanması için bekleme süresi. İzin verilen değer bir süre aralığıdır. Hayır
(varsayılan değer 00:30:00 - 30 dakikadır)

İpucu

JSON belgelerini as-isiçe aktarmak için, JSON belgelerini içe aktar veya dışa aktarma bölümüne bakınız. Tablo şeklindeki verilerden kopyalamak için bkz. Şema haritalama.

Örnek

"activities":[
    {
        "name": "CopyToMongoDB",
        "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": "MongoDbV2Sink",
                "writeBehavior": "upsert"
            }
        }
    }
]

JSON belgelerini içeri ve dışarı aktarma

Bu MongoDB konnektörünü kolayca kullanarak şunları yapabilirsiniz:

  • Belgeleri olduğu gibi iki MongoDB koleksiyonu arasında kopyalayın.
  • Azure Cosmos DB, Azure Blob depolama, Azure Data Lake Store ve desteklenen diğer dosya tabanlı depolar dahil olmak üzere çeşitli kaynaklardan MongoDB'ye JSON belgelerini içeri aktarabilirsiniz.
  • Bir MongoDB 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.

MongoDB için veri türü eşlemesi

MongoDB'den veri kopyaladığınızda, hizmet MongoDB veri tiplerinden ara veri tiplerine aşağıdaki eşlemeleri kullanır. Kopyalama etkinliğinin kaynak şemayı ve veri tipini sink'e nasıl eşlediği hakkında daha fazla bilgi için Şema ve veri tipi eşlemelerine bakınız.

MongoDB veri türü Ara Hizmet Veri Türü
Date Int64
Nesne Kimliği String
Decimal128 String
Zaman İşareti En önemli 32 bit -> Int64
En az anlamlı 32 bit -> Int64
String String
Double String
Int32 Int64
Int64 Int64
Boolean Boolean
Null Null
JavaScript String
Düzenli ifade String
Min tuşu Int64
Maksimum anahtar Int64
Binary String

MongoDB bağlayıcısı yaşam döngüsü ve yükseltmesi

Aşağıdaki tabloda MongoDB bağlayıcısının farklı sürümleri için yayın aşaması ve değişiklik günlükleri gösterilmektedir:

Sürüm Yayın aşaması Değişiklik Kaydı
MongoDB (eski) Removed Uygulanamaz.
MongoDB Ga sürümü kullanılabilir • Yalnızca eşdeğer MongoDB sorgularını destekleyin.

• Double veri türü olarak Dize okunur.

• Dize, veri tipi olarak Double okunur. |

MongoDB bağlı hizmetini yükseltme

Yeni bir MongoDB bağlı hizmeti oluşturun ve Bağlı hizmet özelliklerine bakarak bunu yapılandırın.

Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz . desteklenen veri depoları.