Aracılığıyla paylaş


Azure Data Factory kullanarak NoSQL için Azure Cosmos DB'de verileri kopyalama ve dönüştürme

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, NoSQL için Azure Cosmos DB'den ve Azure Cosmos DB'ye veri kopyalamak için Azure Data Factory'de Kopyalama Etkinliği'nin nasıl kullanılacağı ve NoSQL için Azure Cosmos DB'de verileri dönüştürmek için Veri Akışı nasıl kullanılacağı özetlenmiştir. Daha fazla bilgi edinmek için Azure Data Factory ve Azure Synapse Analytics'e yönelik giriş makalelerini okuyun.

Not

Bu bağlayıcı yalnızca NoSQL için Azure Cosmos DB'i destekler. MongoDB için Azure Cosmos DB için MongoDB için Azure Cosmos DB bağlayıcısına bakın. Diğer API türleri şu anda desteklenmiyor.

Desteklenen özellikler

Bu NoSQL 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)
Eşleme veri akışı (kaynak/havuz) (1)
Arama etkinliği (1) (2)

(1) Azure tümleştirme çalışma zamanı (2) Şirket içinde barındırılan tümleştirme çalışma zamanı

Kopyalama etkinliği için bu NoSQL için Azure Cosmos DB bağlayıcısı şunları destekler:

  • Azure kaynakları kimlik doğrulamaları için anahtar, hizmet sorumlusu veya yönetilen kimlikleri kullanarak NoSQL için Azure Cosmos DB'den ve Azure Cosmos DB'ye veri kopyalayın.
  • 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 ve dışarı aktarma.

Data Factory ve Synapse işlem hatları, Azure Cosmos DB'ye yazarken en iyi performansı sağlamak için Azure Cosmos DB toplu yürütücü kitaplığıyla tümleşir.

İpucu

Veri Geçişi videosu, Azure Blob depolamadan Azure Cosmos DB'ye veri kopyalama adımlarında size yol gösterir. Videoda genel olarak Azure Cosmos DB'ye veri alımına yönelik performans ayarlama konuları da açıklanmaktadır.

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:

Kullanıcı arabirimini kullanarak Azure Cosmos DB'ye bağlı hizmet oluşturma

Azure portalı kullanıcı arabiriminde Azure Cosmos DB'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. NoSQL için Azure Cosmos DB'yi arayın ve NoSQL için Azure Cosmos DB bağlayıcısını seçin.

    NoSQL bağlayıcısı için Azure Cosmos DB'yi seçin.

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

    Azure Cosmos DB için bağlı hizmet yapılandırmasının ekran görüntüsü.

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

Aşağıdaki bölümlerde, NoSQL için Azure Cosmos DB'ye özgü varlıkları tanımlamak için kullanabileceğiniz özelliklerle ilgili ayrıntılar sağlanır.

Bağlı hizmet özellikleri

NoSQL için Azure Cosmos DB bağlayıcısı aşağıdaki kimlik doğrulama türlerini destekler. Ayrıntılar için ilgili bölümlere bakın:

Anahtar kimlik doğrulaması

Özellik Açıklama Gerekli
Tür type özelliği CosmosDb olarak ayarlanmalıdır. Yes
connectionString Azure Cosmos DB veritabanına bağlanmak için gereken bilgileri belirtin.
Not: Aşağıdaki örneklerde gösterildiği gibi bağlantı dizesi veritabanı bilgilerini belirtmeniz gerekir.
Ayrıca Azure Key Vault'a hesap anahtarı ekleyebilir ve yapılandırmayı accountKey bağlantı dizesi çıkarabilirsiniz. Diğer ayrıntılarla birlikte aşağıdaki örneklere ve Azure Key Vault'ta kimlik bilgilerini depolama makalesine bakın.
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": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "connectionString": "AccountEndpoint=<EndpointUrl>;AccountKey=<AccessKey>;Database=<Database>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek: Hesap anahtarını Azure Key Vault'ta depolama

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "connectionString": "AccountEndpoint=<EndpointUrl>;Database=<Database>",
            "accountKey": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Hizmet sorumlusu kimlik doğrulaması

Not

Şu anda hizmet sorumlusu kimlik doğrulaması veri akışında desteklenmiyor.

Hizmet sorumlusu kimlik doğrulamasını kullanmak için aşağıdaki adımları izleyin.

  1. Bir uygulamayı Microsoft kimlik platformu kaydedin. Nasıl yapılacağını öğrenmek için bkz. Hızlı Başlangıç: uygulamayı Microsoft kimlik platformu kaydetme. Bağlı hizmeti tanımlamak için kullandığınız şu değerleri not edin:

    • Uygulama Kimliği
    • Uygulama anahtarı
    • Kiracı kimliği
  2. Hizmet sorumlusuna uygun izni verin. Dosyalar ve dizinlerdeki Erişim denetim listelerinden Azure Cosmos DB'de iznin nasıl çalıştığına ilişkin örneklere bakın. Daha açık belirtmek gerekirse, bir rol tanımı oluşturun ve hizmet sorumlusu nesne kimliği aracılığıyla rolü hizmet sorumlusuna atayın.

Bu özellikler bağlı hizmet için desteklenir:

Özellik Açıklama Gerekli
Tür type özelliği CosmosDb olarak ayarlanmalıdır. Yes
accountEndpoint Azure Cosmos DB örneği için hesap uç noktası URL'sini belirtin. Yes
database Veritabanının adını belirtin. Yes
servicePrincipalId Uygulamanın istemci kimliğini belirtin. Yes
servicePrincipalCredentialType Hizmet sorumlusu kimlik doğrulaması için kullanılacak kimlik bilgisi türü. İzin verilen değerler ServicePrincipalKey ve ServicePrincipalCert değerleridir. Yes
servicePrincipalCredential Hizmet sorumlusu kimlik bilgileri.
Kimlik bilgisi türü olarak ServicePrincipalKey kullandığınızda uygulamanın anahtarını belirtin. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure Key Vault'ta depolanan bir gizli diziye başvurun.
Kimlik bilgisi olarak ServicePrincipalCert kullandığınızda Azure Key Vault'taki bir sertifikaya başvurun ve sertifika içerik türünün PKCS #12 olduğundan emin olun.
Yes
tenant Uygulamanızın bulunduğu kiracı bilgilerini (etki alanı adı veya kiracı kimliği) belirtin. Fareyi Azure portalının sağ üst köşesine getirerek alın. Yes
azureCloudType Hizmet sorumlusu kimlik doğrulaması için Microsoft Entra uygulamanızın kaydedildiği Azure bulut ortamının türünü belirtin.
İzin verilen değerler AzurePublic, AzureChina, AzureUsGovernment ve AzureGermany'dir. Varsayılan olarak, hizmetin bulut ortamı kullanılır.
Hayır
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Veri deponuz özel bir ağdaysa Azure tümleştirme çalışma zamanını veya şirket içinde barındırılan tümleştirme çalışma zamanını kullanabilirsiniz. Belirtilmezse, varsayılan Azure tümleştirme çalışma zamanı kullanılır. Hayır

Örnek: hizmet sorumlusu anahtarı kimlik doğrulamayı kullanma

Hizmet sorumlusu anahtarını Azure Key Vault'ta da depolayabilirsiniz.

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalKey",
            "servicePrincipalCredential": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek: hizmet sorumlusu sertifika kimlik doğrulaması kullanma

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>", 
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalCert",
            "servicePrincipalCredential": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<AKV reference>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<certificate name in AKV>" 
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Sistem tarafından atanan yönetilen kimlik kimlik doğrulaması

Not

Şu anda, JSON biçiminde gelişmiş özelliklerin kullanılması yoluyla veri akışlarında sistem tarafından atanan yönetilen kimlik kimlik doğrulaması desteklenmektedir.

Bir veri fabrikası veya Synapse işlem hattı, bu hizmet örneğini temsil eden Azure kaynakları için sistem tarafından atanan yönetilen kimlikle ilişkilendirilebilir. Azure Cosmos DB kimlik doğrulaması için bu yönetilen kimliği, kendi hizmet sorumlunuzu kullanmaya benzer şekilde doğrudan kullanabilirsiniz. Bu belirlenen kaynağın Azure Cosmos DB örneğine veya örneğinizden verilere erişmesine ve verileri kopyalamasına olanak tanır.

Azure kaynak kimlik doğrulaması için sistem tarafından atanan yönetilen kimlikleri kullanmak için şu adımları izleyin.

  1. Hizmetinizle birlikte oluşturulan yönetilen kimlik nesne kimliğinin değerini kopyalayarak sistem tarafından atanan yönetilen kimlik bilgilerini alın.

  2. Sistem tarafından atanan yönetilen kimliğe uygun izin verin. Dosyalar ve dizinlerdeki Erişim denetim listelerinden Azure Cosmos DB'de iznin nasıl çalıştığına ilişkin örneklere bakın. Daha açık belirtmek gerekirse, bir rol tanımı oluşturun ve rolü sistem tarafından atanan yönetilen kimliğe atayın.

Bu özellikler bağlı hizmet için desteklenir:

Özellik Açıklama Gerekli
Tür type özelliği CosmosDb olarak ayarlanmalıdır. Yes
accountEndpoint Azure Cosmos DB örneği için hesap uç noktası URL'sini belirtin. Yes
database Veritabanının adını belirtin. Yes
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Veri deponuz özel bir ağdaysa Azure tümleştirme çalışma zamanını veya şirket içinde barındırılan tümleştirme çalışma zamanını kullanabilirsiniz. Belirtilmezse, varsayılan Azure tümleştirme çalışma zamanı kullanılır. Hayır
subscriptionId Azure Cosmos DB örneği için abonelik kimliğini belirtin Kopyalama Etkinliği için Hayır, Eşleme Veri Akışı için Evet
tenantId Azure Cosmos DB örneği için kiracı kimliğini belirtme Kopyalama Etkinliği için Hayır, Eşleme Veri Akışı için Evet
resourceGroup Azure Cosmos DB örneği için kaynak grubu adını belirtin Kopyalama Etkinliği için Hayır, Eşleme Veri Akışı için Evet

Örnek:

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>",
            "subscriptionId": "<subscription id>",
            "tenantId": "<tenant id>",
            "resourceGroup": "<resource group>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması

Not

Şu anda kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması, JSON biçiminde gelişmiş özelliklerin kullanılması yoluyla veri akışlarında desteklenmektedir.

Veri fabrikası veya Synapse işlem hattı, bu hizmet örneğini temsil eden kullanıcı tarafından atanan yönetilen kimliklerle ilişkilendirilebilir. Azure Cosmos DB kimlik doğrulaması için bu yönetilen kimliği, kendi hizmet sorumlunuzu kullanmaya benzer şekilde doğrudan kullanabilirsiniz. Bu belirlenen kaynağın Azure Cosmos DB örneğine veya örneğinizden verilere erişmesine ve verileri kopyalamasına olanak tanır.

Azure kaynak kimlik doğrulaması için kullanıcı tarafından atanan yönetilen kimlikleri kullanmak için şu adımları izleyin.

  1. Kullanıcı tarafından atanan bir veya birden çok yönetilen kimlik oluşturun ve kullanıcı tarafından atanan yönetilen kimliğe uygun izin verin. Dosyalar ve dizinlerdeki Erişim denetim listelerinden Azure Cosmos DB'de iznin nasıl çalıştığına ilişkin örneklere bakın. Daha açık belirtmek gerekirse, bir rol tanımı oluşturun ve rolü kullanıcı tarafından atanan yönetilen kimliğe atayın.

  2. Veri fabrikanıza kullanıcı tarafından atanan bir veya birden çok yönetilen kimlik atayın ve kullanıcı tarafından atanan her yönetilen kimlik için kimlik bilgileri oluşturun.

Bu özellikler bağlı hizmet için desteklenir:

Özellik Açıklama Gerekli
Tür type özelliği CosmosDb olarak ayarlanmalıdır. Yes
accountEndpoint Azure Cosmos DB örneği için hesap uç noktası URL'sini belirtin. Yes
database Veritabanının adını belirtin. Yes
kimlik bilgileri Kimlik bilgisi nesnesi olarak kullanıcı tarafından atanan yönetilen kimliği belirtin. Yes
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Veri deponuz özel bir ağdaysa Azure tümleştirme çalışma zamanını veya şirket içinde barındırılan tümleştirme çalışma zamanını kullanabilirsiniz. Belirtilmezse, varsayılan Azure tümleştirme çalışma zamanı kullanılır. Hayır
subscriptionId Azure Cosmos DB örneği için abonelik kimliğini belirtin Kopyalama Etkinliği için Hayır, Eşleme Veri Akışı için Evet
tenantId Azure Cosmos DB örneği için kiracı kimliğini belirtme Kopyalama Etkinliği için Hayır, Eşleme Veri Akışı için Evet
resourceGroup Azure Cosmos DB örneği için kaynak grubu adını belirtin Kopyalama Etkinliği için Hayır, Eşleme Veri Akışı için Evet

Örnek:

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            },
            "subscriptionId": "<subscription id>",
            "tenantId": "<tenant id>",
            "resourceGroup": "<resource group>"
        },
        "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.

NoSQL veri kümesi için Azure Cosmos DB için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tür Veri kümesinin tür özelliği CosmosDbSqlApiCollection olarak ayarlanmalıdır. Yes
collectionName Azure Cosmos DB belge koleksiyonunun adı. Yes

"DocumentDbCollection" türündeki veri kümesini kullanıyorsanız, Kopyalama ve Arama etkinliği için geriye dönük uyumluluk için olduğu gibi desteklenir, Veri Akışı için desteklenmez. Bundan sonra yeni modeli kullanmanız önerilir.

Örnek

{
    "name": "CosmosDbSQLAPIDataset",
    "properties": {
        "type": "CosmosDbSqlApiCollection",
        "linkedServiceName":{
            "referenceName": "<Azure Cosmos DB linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [],
        "typeProperties": {
            "collectionName": "<collection name>"
        }
    }
}

Kopyalama Etkinliği özellikleri

Bu bölümde, NoSQL 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 NoSQL için Azure Cosmos DB

NoSQL için Azure Cosmos DB'den veri kopyalamak için Kopyalama Etkinliği'ndeki kaynak türünü DocumentDbCollectionSource olarak ayarlayın.

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 CosmosDbSqlApiSource olarak ayarlanmalıdır. Yes
query Verileri okumak için Azure Cosmos DB sorgusunu belirtin.

Örnek:
SELECT c.BusinessEntityID, c.Name.First AS FirstName, c.Name.Middle AS MiddleName, c.Name.Last AS LastName, c.Suffix, c.EmailPromotion FROM c WHERE c.ModifiedDate > \"2009-01-01T00:00:00\"
Hayır

Belirtilmezse, bu SQL deyimi yürütülür: select <columns defined in structure> from mycollection
preferredRegions Azure Cosmos DB'den veri alınırken bağlanılması gereken bölgelerin tercih edilen listesi. Hayır
Pagesize Sorgu sonucunun sayfa başına belge sayısı. Varsayılan değer "-1"dir, yani hizmet tarafı dinamik sayfa boyutunu 1000'e kadar kullanır. Hayır
detectDatetime Belgelerdeki dize değerlerinden datetime algılanıp algılanmayacağı. İzin verilen değerler şunlardır: true (varsayılan), false. Hayır

"DocumentDbCollectionSource" tür kaynağını kullanıyorsanız geriye dönük uyumluluk için olduğu gibi desteklenir. Azure Cosmos DB'den veri kopyalamak için daha zengin özellikler sağlayan yeni modeli kullanmanız önerilir.

Örnek

"activities":[
    {
        "name": "CopyFromCosmosDBSQLAPI",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Cosmos DB for NoSQL input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "CosmosDbSqlApiSource",
                "query": "SELECT c.BusinessEntityID, c.Name.First AS FirstName, c.Name.Middle AS MiddleName, c.Name.Last AS LastName, c.Suffix, c.EmailPromotion FROM c WHERE c.ModifiedDate > \"2009-01-01T00:00:00\"",
                "preferredRegions": [
                    "East US"
                ]
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Azure Cosmos DB'den veri kopyalarken, JSON belgelerini olduğu gibi dışarı aktarmak istemiyorsanız, en iyi yöntem kopyalama etkinliğinde eşlemeyi belirtmektir. Hizmet, etkinlikte belirttiğiniz eşlemeyi kabul eder. Satır bir sütun için değer içermiyorsa, sütun değeri için null değer sağlanır. Eşleme belirtmezseniz, hizmet verilerin ilk satırını kullanarak şemayı çıkarsar. İlk satırda tam şema yoksa, etkinlik işleminin sonucunda bazı sütunlar eksik olur.

Havuz olarak NoSQL için Azure Cosmos DB

NoSQL için Azure Cosmos DB'ye veri kopyalamak için Kopyalama Etkinliği'ndeki havuz türünü DocumentDbCollectionSink olarak ayarlayın.

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 CosmosDbSqlApiSink 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ı kimlikte bir belge zaten varsa belgeyi değiştirmektir; aksi takdirde, belgeyi ekleyin.

Not: Özgün belgede veya sütun eşlemesinde kimlik belirtilmemişse, hizmet belge için otomatik olarak bir kimlik oluşturur. 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 Hizmet, Azure Cosmos DB'ye veri yazmak için Azure Cosmos DB toplu yürütücü kitaplığını kullanır. writeBatchSize özelliği, hizmetin kitaplığa sağladığı belgelerin boyutunu denetler. Performansı artırmak ve belge boyutunuz büyükse değeri azaltmak için writeBatchSize değerini artırmayı deneyebilirsiniz. Aşağıdaki ipuçlarına bakın. Hayır
(varsayılan değer 10.000'dir)
disableMetricsCollection Hizmet, kopyalama performansı iyileştirmesi ve öneriler için Azure Cosmos DB RU'ları gibi ölçümleri toplar. Bu davranışla ilgileniyorsanız, kapatmak için belirtin true . Hayır (varsayılan değer )false
 maxConcurrentConnections Etkinlik çalıştırması sırasında veri deposuna kurulan eş zamanlı bağlantıların üst sınırı. Yalnızca eşzamanlı bağlantıları sınırlamak istediğinizde bir değer belirtin.  Hayı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 İlişkisel veritabanından Azure Cosmos DB'ye geçiş konusuna bakın.

İpucu

Azure Cosmos DB, tek isteğin boyutunu 2 MB ile sınırlar. Formül İstek Boyutu = Tek Belge Boyutu * Yazma Toplu İş Boyutu şeklindedir. "İstek boyutu çok büyük" hatasıyla karşılaşırsanız, kopyalama havuzu yapılandırmasındaki writeBatchSize değeri azaltın.

"DocumentDbCollectionSink" tür kaynağını kullanıyorsanız, geriye dönük uyumluluk için olduğu gibi desteklenir. Azure Cosmos DB'den veri kopyalamak için daha zengin özellikler sağlayan yeni modeli kullanmanız önerilir.

Örnek

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

Şema eşleme

Azure Cosmos DB'den tablosal havuza veya tersine çevrilmiş verilere kopyalamak için şema eşlemesine bakın.

Eşleme veri akışı özellikleri

Eşleme veri akışındaki verileri dönüştürürken Azure Cosmos DB'de koleksiyonları okuyabilir ve bu koleksiyonlara yazabilirsiniz. Daha fazla bilgi için bkz . Eşleme veri akışlarında kaynak dönüştürme ve havuz dönüşümü .

Not

Azure Cosmos DB sunucusuz, eşleme veri akışında desteklenmez.

Kaynak dönüştürme

Azure Cosmos DB'ye özgü ayarlar, kaynak dönüştürmenin Kaynak Seçenekleri sekmesinde kullanılabilir.

Sistem sütunlarını dahil et: True ise, id, _tsve diğer sistem sütunları Azure Cosmos DB'den veri akışı meta verilerinize eklenir. Koleksiyonları güncelleştirirken, var olan satır kimliğini alabilmeniz için bunu dahil etmek önemlidir.

Sayfa boyutu: Sorgu sonucunun sayfa başına belge sayısı. Varsayılan değer 1000'e kadar hizmet dinamik sayfasını kullanan "-1"dir.

Aktarım hızı: Okuma işlemi sırasında bu veri akışının her yürütülmesi için Azure Cosmos DB koleksiyonunuz için uygulamak istediğiniz RU sayısı için isteğe bağlı bir değer ayarlayın. Minimum değer 400'dür.

Tercih edilen bölgeler: Bu işlem için tercih edilen okuma bölgelerini seçin.

Değişiklik akışı: Doğruysa, Azure Cosmos DB değişiklik akışından veri alırsınız. Bu, kapsayıcıdaki değişikliklerin son çalıştırmadan itibaren otomatik olarak gerçekleştiği sırayla kalıcı bir kaydıdır. Bunu true olarak ayarladığınızda, hem Infer drifted sütun türlerini hem de Allow schema drift as true aynı anda ayarlamayın. Daha fazla ayrıntı için bkz . Azure Cosmos DB değişiklik akışı).

Baştan başlayın: Doğruysa, ilk çalıştırmada tam anlık görüntü verilerinin ilk yükünü alırsınız ve ardından sonraki çalıştırmalarda değiştirilen verileri yakalarsınız. False ise ilk çalıştırmada ilk yük atlanır ve ardından sonraki çalıştırmalarda değiştirilen veriler yakalanacaktır. Ayar, Azure Cosmos DB başvurusunda aynı ayar adıyla hizalanır. Diğer ayrıntılar için bkz . Azure Cosmos DB değişiklik akışı.

Havuz dönüşümü

Azure Cosmos DB'ye özgü ayarlara havuz dönüştürmesinin Ayarlar sekmesinden ulaşabilirsiniz.

Güncelleştirme yöntemi: Veritabanı hedefinizde hangi işlemlere izin verileceğini belirler. Varsayılan değer yalnızca eklemelere izin vermektir. Satırları güncelleştirmek, eklemek veya silmek için, bu eylemlerin satırlarını etiketlemek için bir değişiklik satırı dönüştürmesi gerekir. Güncelleştirmeler, upsert'ler ve silmeler için, hangi satırın değiştirileceğini belirlemek için bir anahtar sütun veya sütun ayarlanmalıdır.

Koleksiyon eylemi: Yazmadan önce hedef koleksiyonun yeniden oluşturup oluşturmayacağını belirler.

  • Hiçbiri: Koleksiyonda hiçbir eylem yapılmaz.
  • Yeniden oluşturma: Koleksiyon bırakılır ve yeniden oluşturulur

Toplu iş boyutu: Her toplu işlemde Azure Cosmos DB koleksiyonuna kaç nesne yazıldığını gösteren tamsayı. Genellikle, varsayılan toplu iş boyutuyla başlamak yeterlidir. Bu değeri daha fazla ayarlamak için şunlara dikkat edin:

  • Azure Cosmos DB, tek isteğin boyutunu 2 MB ile sınırlar. Formül "İstek Boyutu = Tek Belge Boyutu * Toplu İş Boyutu" şeklindedir. "İstek boyutu çok büyük" hatasıyla karşılaşırsanız toplu iş boyutu değerini azaltın.
  • Toplu iş boyutu ne kadar büyük olursa, hizmet o kadar iyi aktarım hızı elde edebilir ve iş yükünüzü güçlendirmek için yeterli RU ayırdığınızdan emin olun.

Bölüm anahtarı: Koleksiyonunuzun bölüm anahtarını temsil eden bir dize girin. Örnek: /movies/title

Aktarım hızı: Bu veri akışının her yürütülmesi için Azure Cosmos DB koleksiyonunuz için uygulamak istediğiniz RU sayısı için isteğe bağlı bir değer ayarlayın. Minimum değer 400'dür.

Yazma aktarım hızı bütçesi: Koleksiyona ayrılan toplam aktarım hızı dışında, bu Veri Akışı yazma işlemi için ayırmak istediğiniz RU'ları temsil eden tamsayı.

Not

RU kullanımını sınırlamak için cosmos DB Aktarım Hızını (otomatik ölçeklendirme) El ile olarak ayarlayın.

Arama etkinliği özellikleri

Özellikler hakkında ayrıntılı bilgi edinmek için Arama etkinliği'ne bakın.

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

Bu NoSQL için Azure Cosmos DB bağlayıcısını kullanarak kolayca:

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

İlişkisel veritabanından Azure Cosmos DB'ye geçiş

İlişkisel bir veritabanından e.g. SQL Sunucusu'ndan Azure Cosmos DB'ye geçiş yaparken kopyalama etkinliği, azure cosmos DB'de tablosal verileri kaynaktan JSON belgelerini düzleştirmeye kolayca eşleyebilir. Bazı durumlarda, veri modelini Azure Cosmos DB'deki Veri modellemeye göre NoSQL kullanım örnekleri için iyileştirmek üzere yeniden tasarlamak isteyebilirsiniz. Örneğin, ilgili tüm alt öğeleri tek bir JSON belgesine ekleyerek verileri normalden çıkarmak isteyebilirsiniz. Böyle bir durumda, kopyalama etkinliğini kullanarak bunu nasıl başarmak için bir kılavuz ile bu makaleye bakın.

Azure Cosmos DB değişiklik akışı

Azure Data Factory, eşleme veri akışı kaynak dönüşümünde etkinleştirerek Azure Cosmos DB değişiklik akışından veri alabilir. Bu bağlayıcı seçeneğiyle, dönüştürülmüş verileri seçtiğiniz hedef veri kümelerine yüklemeden önce değişiklik akışlarını okuyabilir ve dönüştürmeleri uygulayabilirsiniz. Değişiklik akışını okumak ve ardından özel dönüştürmeler yazmak için Azure işlevlerini kullanmanız gerekmez. Bu seçeneği kullanarak verileri bir kapsayıcıdan diğerine taşıyabilir, değişiklik akışı temelli malzeme görünümlerini uygun bir amaç için hazırlayabilir veya değişiklik akışına göre kapsayıcı yedekleme veya kurtarmayı otomatikleştirebilir ve Azure Data Factory'nin görsel sürükle ve bırak özelliğini kullanarak bu tür kullanım örneklerinin çoğunu etkinleştirebilirsiniz.

Son çalıştırmadan otomatik olarak değiştirilen verileri alabilmeniz için denetim noktasının ADF tarafından kaydedilebilmesi için işlem hattı ve etkinlik adını değiştirmediğinizden emin olun. İşlem hattı adınızı veya etkinlik adınızı değiştirirseniz denetim noktası sıfırlanır ve bu da sizi baştan başlamanıza veya bir sonraki çalıştırmada değişiklikler almanıza neden olur.

İşlem hattında hata ayıkladığınızda, bu özellik aynı şekilde çalışır. Hata ayıklama çalıştırması sırasında tarayıcınızı yenilediğinizde denetim noktasının sıfırlanacağını unutmayın. Hata ayıklama çalıştırmasından elde edilen işlem hattı sonucundan memnun olduktan sonra işlem hattını yayımlamaya ve tetikleme işlemine geçebilirsiniz. Yayımlanan işlem hattınızı ilk tetiklediğiniz anda, başlangıçtan itibaren otomatik olarak yeniden başlatılır veya bundan sonra değişiklikler alır.

İzleme bölümünde her zaman bir işlem hattını yeniden çalıştırma şansınız olur. Bunu yaparken, değiştirilen veriler her zaman seçili işlem hattı çalıştırmanızın önceki denetim noktasından yakalanır.

Buna ek olarak, Azure Cosmos DB analiz deposu artık NoSQL için Azure Cosmos DB API'sinde Değişiklik Veri Yakalama 'yı (CDC) ve Mongo DB için Azure Cosmos DB API'sini (genel önizleme) destekliyor. Azure Cosmos DB analiz deposu, analiz deposundan değişen (eklenen, güncelleştirilen ve silinen) verilerin sürekli ve artımlı akışını verimli bir şekilde kullanmanıza olanak tanır.

Kopyalama Etkinliği'nin kaynak ve havuz olarak desteklediği veri depolarının listesi için desteklenen veri depolarına bakın.