Share via


Azure Data Factory veya Synapse Analytics kullanarak MongoDB'den veri kopyalama (eski)

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 veritabanından veri kopyalamak için Azure Data Factory veya Synapse Analytics işlem hattında Kopyalama Etkinliği'nin nasıl kullanılacağı özetlenmiştir. Kopyalama etkinliğine genel bir genel bakış sunan kopyalama etkinliğine genel bakış makalesini oluşturur.

Önemli

Hizmet, bu ODBC tabanlı uygulamaya kıyasla daha iyi yerel MongoDB desteği sağlayan yeni bir MongoDB bağlayıcısı yayımladı. Ayrıntılarla ilgili MongoDB bağlayıcısı makalesine bakın.

Desteklenen özellikler

MongoDB veritabanındaki verileri desteklenen herhangi bir havuz veri deposuna kopyalayabilirsiniz. Kopyalama etkinliği tarafından kaynak/havuz olarak desteklenen veri depolarının listesi için Desteklenen veri depoları tablosuna bakın.

Bu MongoDB bağlayıcısı özellikle şunları destekler:

  • MongoDB sürüm 2.4, 2.6, 3.0, 3.2, 3.4 ve 3.6.
  • Temel veya Anonim kimlik doğrulaması kullanarak verileri kopyalama.

Ö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.

Integration Runtime yerleşik bir MongoDB sürücüsü sağlar, bu nedenle MongoDB'den veri kopyalarken herhangi bir sürücüyü el ile yüklemeniz gerekmez.

Başlarken

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

Kullanıcı arabirimini kullanarak MongoDB'ye bağlı hizmet oluşturma

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ızda Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:

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

    Screenshot of the MongoDB connector.

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

    Screenshot of linked service configuration for MongoDB.

Bağlan veya 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

MongoDB 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: MongoDb Yes
sunucu MongoDB sunucusunun IP adresi veya ana bilgisayar adı. Yes
port MongoDB sunucusunun istemci bağlantılarını dinlemek için kullandığı TCP bağlantı noktası. Hayır (varsayılan değer 27017'dir)
veritabanıAdı Erişmek istediğiniz MongoDB veritabanının adı. Yes
authenticationType MongoDB veritabanına bağlanmak için kullanılan kimlik doğrulama türü.
İzin verilen değerler şunlardır: Temel ve Anonim.
Yes
username MongoDB'ye erişmek için kullanıcı hesabı. Evet (temel kimlik doğrulaması kullanılıyorsa).
password Kullanıcının parolası. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure Key Vault'ta depolanan bir gizli diziye başvurun. Evet (temel kimlik doğrulaması kullanılıyorsa).
authSource Kimlik doğrulaması için kimlik bilgilerinizi denetlemek için kullanmak istediğiniz MongoDB veritabanının adı. Hayır Temel kimlik doğrulaması için, varsayılan olarak databaseName özelliği kullanılarak belirtilen yönetici hesabı ve veritabanı kullanılır.
enableSsl Sunucu bağlantılarının TLS kullanılarak şifrelenip şifrelenmediğini belirtir. Varsayılan değer olarak yanlış kullanılır. Hayır
allowSelfSignedServerCert Sunucudan otomatik olarak imzalanan sertifikalara izin verilip verilmeyeceğini belirtir. Varsayılan değer olarak yanlış kullanılır. 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": "MongoDBLinkedService",
    "properties": {
        "type": "MongoDb",
        "typeProperties": {
            "server": "<server name>",
            "databaseName": "<database name>",
            "authenticationType": "Basic",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "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 veri kümesi için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tür Veri kümesinin type özelliği şu şekilde ayarlanmalıdır: MongoDbCollection Yes
Toplamaadı MongoDB veritabanındaki koleksiyonun adı. Yes

Örnek:

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

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 kaynağı tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak olarak MongoDB

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: MongoDbSource Yes
query Verileri okumak için özel SQL-92 sorgusunu kullanın. Örneğin: MyTable'dan * öğesini seçin. Hayır (veri kümesinde "collectionName" belirtilirse)

Örnek:

"activities":[
    {
        "name": "CopyFromMongoDB",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<MongoDB input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "MongoDbSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

İpucu

SQL sorgusunu belirtirken DateTime biçimine dikkat edin. Örneğin: SELECT * FROM Account WHERE LastModifiedDate >= '2018-06-01' AND LastModifiedDate < '2018-06-02' veya parametresini kullanmak için SELECT * FROM Account WHERE LastModifiedDate >= '@{formatDateTime(pipeline().parameters.StartTime,'yyyy-MM-dd HH:mm:ss')}' AND LastModifiedDate < '@{formatDateTime(pipeline().parameters.EndTime,'yyyy-MM-dd HH:mm:ss')}'

Data Factory'ye göre şema

Azure Data Factory hizmeti, koleksiyondaki en son 100 belgeyi kullanarak mongoDB koleksiyonundan şema çıkartır . Bu 100 belge tam şema içermiyorsa, kopyalama işlemi sırasında bazı sütunlar yoksayılabilir.

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

MongoDB'den veri kopyalarken, MongoDB veri türlerinden hizmet içinde dahili olarak kullanılan ara veri türlerine aşağıdaki eşlemeler kullanılır. Kopyalama etkinliğinin kaynak şemayı ve veri türünü havuza nasıl eşlediğini öğrenmek için bkz . Şema ve veri türü eşlemeleri .

MongoDB veri türü Ara hizmet veri türü
İkilik Bayt[]
Boolean Boolean
Tarih DateTime
NumberDouble Çift
NumberInt Int32
SayıBoyu Int64
ObjectID String
String String
UUID GUID
Object İç içe ayırıcı olarak "_" ile düzleştirilmiş sütunlar halinde yeniden normalleştirilmiş

Not

Sanal tabloları kullanan diziler için destek hakkında bilgi edinmek için Sanal tabloları kullanarak karmaşık türler için destek bölümüne bakın.

Şu anda aşağıdaki MongoDB veri türleri desteklenmez: DBPointer, JavaScript, Max/Min tuşu, Normal İfade, Sembol, Zaman Damgası, Tanımsız.

Sanal tabloları kullanan karmaşık türler için destek

Hizmet, MongoDB veritabanınıza bağlanmak ve bu veritabanından veri kopyalamak için yerleşik bir ODBC sürücüsü kullanır. Belgeler arasında farklı türlere sahip diziler veya nesneler gibi karmaşık türler için, sürücü verileri karşılık gelen sanal tablolara yeniden normalleştirir. Özellikle, bir tablo bu tür sütunlar içeriyorsa, sürücü aşağıdaki sanal tabloları oluşturur:

  • Karmaşık tür sütunları dışında gerçek tabloyla aynı verileri içeren temel tablo. Temel tablo, temsil ettiği gerçek tabloyla aynı adı kullanır.
  • İç içe verileri genişleten her karmaşık tür sütunu için bir sanal tablo. Sanal tablolar, gerçek tablonun adı, ayırıcı "_" ve dizi veya nesne adı kullanılarak adlandırılır.

Sanal tablolar gerçek tablodaki verilere başvurur ve sürücünün normalleştirilmiş verilere erişmesini sağlar. Sanal tabloları sorgulayıp birleştirerek MongoDB dizilerinin içeriğine erişebilirsiniz.

Örnek

Örneğin, ExampleTable burada, her hücrede Bir Nesne dizisi olan bir sütuna sahip bir MongoDB tablosudur - Faturalar ve Skaler türleri dizisine sahip bir sütun - Derecelendirmeler.

_id Müşteri Adı Faturalar Hizmet Düzeyi Değerlendirmeler
1111 ABC [{invoice_id:"123", item:"toaster", price:"456", discount:"0.2"}, {invoice_id:"124", item:"oven", price: "1235", discount: "0.2"}] Silver [5,6]
2222 XYZ [{invoice_id:"135", item:"buzdolabı", fiyat: "12543", indirim: "0,0"}] Gold [1,2]

Sürücü, bu tek tabloyu temsil eden birden çok sanal tablo oluşturur. İlk sanal tablo, örnekte gösterilen "ExampleTable" adlı temel tablodur. Temel tablo özgün tablonun tüm verilerini içerir, ancak dizilerdeki veriler atlanmış ve sanal tablolarda genişletilmiştir.

_id Müşteri Adı Hizmet Düzeyi
1111 ABC Silver
2222 XYZ Gold

Aşağıdaki tablolarda örnekteki özgün dizileri temsil eden sanal tablolar gösterilmektedir. Bu tablolar aşağıdakileri içerir:

  • Özgün dizinin satırına karşılık gelen özgün birincil anahtar sütununa başvuru (_id sütunu aracılığıyla)
  • Verilerin özgün dizideki konumunun göstergesi
  • Dizideki her öğe için genişletilmiş veriler

Tablo "ExampleTable_Invoices":

_id ExampleTable_Invoices_dim1_idx invoice_id öğe price Discount
1111 0 123 Tost makinesi 456 0,2
1111 1 124 Fırın 1235 0,2
2222 0 135 Buzdolabı 12543 0,0

Tablo "ExampleTable_Ratings":

_id ExampleTable_Ratings_dim1_idx ExampleTable_Ratings
1111 0 5
1111 1 6
2222 0 1
2222 1 2

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