Kopiera och transformera data i Azure Cosmos DB för NoSQL med hjälp av Azure Data Factory
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Den här artikeln beskriver hur du använder kopieringsaktivitet i Azure Data Factory för att kopiera data från och till Azure Cosmos DB för NoSQL och använder Dataflöde för att transformera data i Azure Cosmos DB för NoSQL. Mer information finns i introduktionsartiklarna för Azure Data Factory och Azure Synapse Analytics.
Kommentar
Den här anslutningsappen stöder endast Azure Cosmos DB för NoSQL. För Azure Cosmos DB för MongoDB läser du anslutningsappen för Azure Cosmos DB för MongoDB. Andra API-typer stöds inte nu.
Funktioner som stöds
Den här Azure Cosmos DB for NoSQL-anslutningsappen stöds för följande funktioner:
Funktioner som stöds | IR | Hanterad privat slutpunkt |
---|---|---|
aktiviteten Kopiera (källa/mottagare) | (1) (2) | ✓ |
Mappa dataflöde (källa/mottagare) | (1) | ✓ |
Sökningsaktivitet | (1) (2) | ✓ |
(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning
För aktiviteten Kopiera stöder den här Azure Cosmos DB for NoSQL-anslutningsappen:
- Kopiera data från och till Azure Cosmos DB for NoSQL med hjälp av nyckel, tjänstens huvudnamn eller hanterade identiteter för Azure-resursautentiseringar.
- Skriv till Azure Cosmos DB som insert eller upsert.
- Importera och exportera JSON-dokument som de är, eller kopiera data från eller till en tabelldatauppsättning. Exempel är en SQL-databas och en CSV-fil. Information om hur du kopierar dokument som de är till eller från JSON-filer eller till eller från en annan Azure Cosmos DB-samling finns i Importera och exportera JSON-dokument.
Data Factory- och Synapse-pipelines integreras med azure Cosmos DB-massexekutorbiblioteket för att ge bästa möjliga prestanda när du skriver till Azure Cosmos DB.
Dricks
Datamigreringsvideon vägleder dig genom stegen för att kopiera data från Azure Blob Storage till Azure Cosmos DB. Videon beskriver också prestandajusteringsöverväganden för att mata in data till Azure Cosmos DB i allmänhet.
Kom igång
Om du vill utföra aktiviteten Kopiera med en pipeline kan du använda något av följande verktyg eller SDK:er:
- Verktyget Kopiera data
- Azure-portalen
- The .NET SDK
- The Python SDK
- Azure PowerShell
- REST-API:et
- Azure Resource Manager-mallen
Skapa en länkad tjänst till Azure Cosmos DB med hjälp av användargränssnittet
Använd följande steg för att skapa en länkad tjänst till Azure Cosmos DB i Azure Portal användargränssnittet.
Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Ny:
Sök efter Azure Cosmos DB efter NoSQL och välj Azure Cosmos DB för NoSQL-anslutningsprogrammet.
Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.
Konfigurationsinformation för anslutningsprogram
Följande avsnitt innehåller information om egenskaper som du kan använda för att definiera entiteter som är specifika för Azure Cosmos DB för NoSQL.
Länkade tjänstegenskaper
Azure Cosmos DB for NoSQL-anslutningsappen stöder följande autentiseringstyper. Mer information finns i motsvarande avsnitt:
- Nyckelautentisering
- Autentisering av tjänstens huvudnamn
- Systemtilldelad autentisering av hanterad identitet
- Användartilldelad hanterad identitetsautentisering
Nyckelautentisering
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste anges till CosmosDb. | Ja |
connectionString | Ange information som krävs för att ansluta till Azure Cosmos DB-databasen. Obs! Du måste ange databasinformation i anslutningssträng som du ser i exemplen nedan. Du kan också placera kontonyckeln i Azure Key Vault och hämta konfigurationen accountKey från anslutningssträng. Mer information finns i följande exempel och artikeln Lagra autentiseringsuppgifter i Azure Key Vault . |
Ja |
connectVia | Integration Runtime som ska användas för att ansluta till datalagret. Du kan använda Azure Integration Runtime eller en lokalt installerad integrationskörning (om ditt datalager finns i ett privat nätverk). Om den här egenskapen inte har angetts används standardkörningen för Azure Integration Runtime. | Nej |
Exempel
{
"name": "CosmosDbSQLAPILinkedService",
"properties": {
"type": "CosmosDb",
"typeProperties": {
"connectionString": "AccountEndpoint=<EndpointUrl>;AccountKey=<AccessKey>;Database=<Database>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exempel: Lagra kontonyckel i Azure Key Vault
{
"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"
}
}
}
Tjänstens huvudautentisering
Kommentar
För närvarande stöds inte tjänstens huvudnamnsautentisering i dataflödet.
Följ dessa steg om du vill använda autentisering med tjänstens huvudnamn.
Registrera ett program med Microsofts identitetsplattform. Mer information finns i Snabbstart: Registrera ett program med Microsofts identitetsplattform. Anteckna dessa värden som du använder för att definiera den länkade tjänsten:
- Program-ID:t
- Programnyckel
- Klientorganisations-ID
Ge tjänstens huvudnamn rätt behörighet. Se exempel på hur behörighet fungerar i Azure Cosmos DB från åtkomstkontrollistor på filer och kataloger. Mer specifikt skapar du en rolldefinition och tilldelar rollen till tjänstens huvudnamn via objekt-ID för tjänstens huvudnamn.
Dessa egenskaper stöds för den länkade tjänsten:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste anges till CosmosDb. | Ja |
accountEndpoint | Ange kontots slutpunkts-URL för Azure Cosmos DB-instansen. | Ja |
database | Ange namnet på databasen. | Ja |
servicePrincipalId | Ange programmets klient-ID. | Ja |
servicePrincipalCredentialType | Den typ av autentiseringsuppgifter som ska användas för autentisering med tjänstens huvudnamn. Tillåtna värden är ServicePrincipalKey och ServicePrincipalCert. | Ja |
servicePrincipalCredential | Autentiseringsuppgifterna för tjänstens huvudnamn. När du använder ServicePrincipalKey som typ av autentiseringsuppgifter anger du programmets nyckel. Markera det här fältet som SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault. När du använder ServicePrincipalCert som autentiseringsuppgifter refererar du till ett certifikat i Azure Key Vault och kontrollerar att certifikatinnehållstypen är PKCS #12. |
Ja |
klientorganisation | Ange klientinformationen (domännamn eller klient-ID) som programmet finns under. Hämta den genom att hovra musen i det övre högra hörnet av Azure Portal. | Ja |
azureCloudType | För autentisering med tjänstens huvudnamn anger du vilken typ av Azure-molnmiljö som ditt Microsoft Entra-program är registrerat i. Tillåtna värden är AzurePublic, AzureChina, AzureUsGovernment och AzureGermany. Som standard används tjänstens molnmiljö. |
Nej |
connectVia | Den integrationskörning som ska användas för att ansluta till datalagret. Du kan använda Azure Integration Runtime eller en lokalt installerad integrationskörning om ditt datalager finns i ett privat nätverk. Om det inte anges används standardkörningen för Azure-integrering. | Nej |
Exempel: använda nyckelautentisering för tjänstens huvudnamn
Du kan också lagra tjänstens huvudnamnsnyckel i Azure Key Vault.
{
"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"
}
}
}
Exempel: använda certifikatautentisering med tjänstens huvudnamn
{
"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"
}
}
}
Systemtilldelad autentisering av hanterad identitet
Kommentar
För närvarande stöds den systemtilldelade hanterade identitetsautentiseringen i dataflöden genom användning av avancerade egenskaper i JSON-format.
En datafabrik eller Synapse-pipeline kan associeras med en systemtilldelad hanterad identitet för Azure-resurser, som representerar den här specifika tjänstinstansen. Du kan använda den här hanterade identiteten direkt för Azure Cosmos DB-autentisering, ungefär som med ditt eget huvudnamn för tjänsten. Den gör att den här avsedda resursen kan komma åt och kopiera data till eller från din Azure Cosmos DB-instans.
Följ dessa steg om du vill använda systemtilldelade hanterade identiteter för Azure-resursautentisering.
Hämta systemtilldelad hanterad identitetsinformation genom att kopiera värdet för det hanterade identitetsobjekt-ID som genererats tillsammans med din tjänst.
Ge den systemtilldelade hanterade identiteten rätt behörighet. Se exempel på hur behörighet fungerar i Azure Cosmos DB från åtkomstkontrollistor på filer och kataloger. Mer specifikt skapar du en rolldefinition och tilldelar rollen till den systemtilldelade hanterade identiteten.
Dessa egenskaper stöds för den länkade tjänsten:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste anges till CosmosDb. | Ja |
accountEndpoint | Ange kontots slutpunkts-URL för Azure Cosmos DB-instansen. | Ja |
database | Ange namnet på databasen. | Ja |
connectVia | Den integrationskörning som ska användas för att ansluta till datalagret. Du kan använda Azure Integration Runtime eller en lokalt installerad integrationskörning om ditt datalager finns i ett privat nätverk. Om det inte anges används standardkörningen för Azure-integrering. | Nej |
subscriptionId | Ange prenumerations-ID för Azure Cosmos DB-instansen | Nej för kopieringsaktivitet, Ja för mappning Dataflöde |
tenantId | Ange klient-ID för Azure Cosmos DB-instansen | Nej för kopieringsaktivitet, Ja för mappning Dataflöde |
resourceGroup | Ange resursgruppens namn för Azure Cosmos DB-instansen | Nej för kopieringsaktivitet, Ja för mappning Dataflöde |
Exempel:
{
"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"
}
}
}
Användartilldelad hanterad identitetsautentisering
Kommentar
För närvarande stöds användartilldelad hanterad identitetsautentisering i dataflöden med hjälp av avancerade egenskaper i JSON-format.
En datafabrik eller Synapse-pipeline kan associeras med en användartilldelad hanterad identitet som representerar den här specifika tjänstinstansen. Du kan använda den här hanterade identiteten direkt för Azure Cosmos DB-autentisering, ungefär som med ditt eget huvudnamn för tjänsten. Den gör att den här avsedda resursen kan komma åt och kopiera data till eller från din Azure Cosmos DB-instans.
Följ dessa steg om du vill använda användartilldelade hanterade identiteter för Azure-resursautentisering.
Skapa en eller flera användartilldelade hanterade identiteter och ge den användartilldelade hanterade identiteten rätt behörighet. Se exempel på hur behörighet fungerar i Azure Cosmos DB från åtkomstkontrollistor på filer och kataloger. Mer specifikt skapar du en rolldefinition och tilldelar rollen till den användartilldelade hanterade identiteten.
Tilldela en eller flera användartilldelade hanterade identiteter till din datafabrik och skapa autentiseringsuppgifter för varje användartilldelad hanterad identitet.
Dessa egenskaper stöds för den länkade tjänsten:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste anges till CosmosDb. | Ja |
accountEndpoint | Ange kontots slutpunkts-URL för Azure Cosmos DB-instansen. | Ja |
database | Ange namnet på databasen. | Ja |
autentiseringsuppgifter | Ange den användartilldelade hanterade identiteten som autentiseringsobjekt. | Ja |
connectVia | Den integrationskörning som ska användas för att ansluta till datalagret. Du kan använda Azure Integration Runtime eller en lokalt installerad integrationskörning om ditt datalager finns i ett privat nätverk. Om det inte anges används standardkörningen för Azure-integrering. | Nej |
subscriptionId | Ange prenumerations-ID för Azure Cosmos DB-instansen | Nej för kopieringsaktivitet, Ja för mappning Dataflöde |
tenantId | Ange klient-ID för Azure Cosmos DB-instansen | Nej för kopieringsaktivitet, Ja för mappning Dataflöde |
resourceGroup | Ange resursgruppens namn för Azure Cosmos DB-instansen | Nej för kopieringsaktivitet, Ja för mappning Dataflöde |
Exempel:
{
"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"
}
}
}
Egenskaper för datauppsättning
En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i Datauppsättningar och länkade tjänster.
Följande egenskaper stöds för Azure Cosmos DB för NoSQL-datauppsättning:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Datamängdens typegenskap måste anges till CosmosDbSqlApiCollection. | Ja |
collectionName | Namnet på Azure Cosmos DB-dokumentsamlingen. | Ja |
Om du använder datauppsättningen "DocumentDbCollection" stöds den fortfarande som den är för bakåtkompatibilitet för kopierings- och uppslagsaktivitet, det stöds inte för Dataflöde. Du rekommenderas att använda den nya modellen framöver.
Exempel
{
"name": "CosmosDbSQLAPIDataset",
"properties": {
"type": "CosmosDbSqlApiCollection",
"linkedServiceName":{
"referenceName": "<Azure Cosmos DB linked service name>",
"type": "LinkedServiceReference"
},
"schema": [],
"typeProperties": {
"collectionName": "<collection name>"
}
}
}
Egenskaper för kopieringsaktivitet
Det här avsnittet innehåller en lista över egenskaper som stöd för Azure Cosmos DB for NoSQL-källa och mottagare. En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i Pipelines.
Azure Cosmos DB för NoSQL som källa
Om du vill kopiera data från Azure Cosmos DB för NoSQL anger du källtypen i Kopieringsaktivitet till DocumentDbCollectionSource.
Följande egenskaper stöds i avsnittet Kopieringsaktivitetskälla:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för kopieringsaktivitetskällan måste anges till CosmosDbSqlApiSource. | Ja |
query | Ange Azure Cosmos DB-frågan för att läsa data. Exempel: 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\" |
Nej Om det inte anges körs den här SQL-instruktionen: select <columns defined in structure> from mycollection |
preferredRegions | Den föredragna listan över regioner att ansluta till när du hämtar data från Azure Cosmos DB. | Nej |
pageSize | Antalet dokument per sida i frågeresultatet. Standardvärdet är "-1", vilket innebär att den dynamiska sidstorleken på tjänstsidan används upp till 1 000. | Nej |
detectDatetime | Om du vill identifiera datetime från strängvärdena i dokumenten. Tillåtna värden är: true (standard), false. | Nej |
Om du använder typkällan "DocumentDbCollectionSource" stöds den fortfarande som den är för bakåtkompatibilitet. Du rekommenderas att använda den nya modellen framöver som ger bättre funktioner för att kopiera data från Azure Cosmos DB.
Exempel
"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>"
}
}
}
]
När du kopierar data från Azure Cosmos DB, såvida du inte vill exportera JSON-dokument som de är, är det bästa sättet att ange mappningen i kopieringsaktiviteten. Tjänsten respekterar den mappning som du angav för aktiviteten – om en rad inte innehåller något värde för en kolumn anges ett null-värde för kolumnvärdet. Om du inte anger någon mappning härleder tjänsten schemat med hjälp av den första raden i data. Om den första raden inte innehåller det fullständiga schemat saknas vissa kolumner i resultatet av aktivitetsåtgärden.
Azure Cosmos DB för NoSQL som mottagare
Om du vill kopiera data till Azure Cosmos DB för NoSQL anger du mottagartypen i Kopieringsaktivitet till DocumentDbCollectionSink.
Följande egenskaper stöds i avsnittet Kopieringsaktivitetsmottagare:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för kopieringsaktivitetsmottagaren måste anges till CosmosDbSqlApiSink. | Ja |
writeBehavior | Beskriver hur du skriver data till Azure Cosmos DB. Tillåtna värden: infoga och upsert. Upserts beteende är att ersätta dokumentet om det redan finns ett dokument med samma ID. Annars infogar du dokumentet. Obs! Tjänsten genererar automatiskt ett ID för ett dokument om ett ID inte har angetts i det ursprungliga dokumentet eller efter kolumnmappning. Det innebär att du måste se till att ditt dokument har ett ID för att upsert ska fungera som förväntat. |
Nej (standardvärdet är insert) |
writeBatchSize | Tjänsten använder massexekutorbiblioteket i Azure Cosmos DB för att skriva data till Azure Cosmos DB. Egenskapen writeBatchSize styr storleken på dokument som tjänsten tillhandahåller biblioteket. Du kan prova att öka värdet för writeBatchSize för att förbättra prestanda och minska värdet om dokumentstorleken är stor – se tipsen nedan. | Nej (standardvärdet är 10 000) |
disableMetricsCollection | Tjänsten samlar in mått som Azure Cosmos DB RU:er för kopieringsprestandaoptimering och rekommendationer. Om du är intresserad av det här beteendet anger du true för att inaktivera det. |
Nej (standard är false ) |
maxConcurrentConnections | Den övre gränsen för samtidiga anslutningar som upprättats till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar. | Nej |
Dricks
Om du vill importera JSON-dokument som de är läser du avsnittet Importera eller exportera JSON-dokument . Om du vill kopiera från tabellformade data läser du Migrera från relationsdatabas till Azure Cosmos DB.
Dricks
Azure Cosmos DB begränsar storleken på en enskild begäran till 2 MB. Formeln är Begärandestorlek = Enkel dokumentstorlek * Skriv batchstorlek. Om du får felmeddelandet "Begärandestorleken är för stor", minskar du värdet i konfigurationen av writeBatchSize
kopieringsmottagaren.
Om du använder typkällan "DocumentDbCollectionSink" stöds den fortfarande som den är för bakåtkompatibilitet. Du rekommenderas att använda den nya modellen framöver som ger bättre funktioner för att kopiera data från Azure Cosmos DB.
Exempel
"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"
}
}
}
]
Schemamappning
Om du vill kopiera data från Azure Cosmos DB till tabellmottagare eller omvänd, se schemamappning.
Mappa dataflödesegenskaper
När du transformerar data i mappning av dataflöde kan du läsa och skriva till samlingar i Azure Cosmos DB. Mer information finns i källtransformering och mottagartransformation i mappning av dataflöden.
Kommentar
Serverlös Azure Cosmos DB stöds inte i mappning av dataflöde.
Källtransformering
Inställningar som är specifika för Azure Cosmos DB finns på fliken Källalternativ i källtransformeringen.
Inkludera systemkolumner: Om sant, id
, _ts
och andra systemkolumner inkluderas i dina dataflödesmetadata från Azure Cosmos DB. När du uppdaterar samlingar är det viktigt att inkludera detta så att du kan hämta det befintliga rad-ID:t.
Sidstorlek: Antalet dokument per sida i frågeresultatet. Standardvärdet är "-1" som använder tjänstens dynamiska sida upp till 1 000.
Dataflöde: Ange ett valfritt värde för det antal RU:er som du vill använda för din Azure Cosmos DB-samling för varje körning av det här dataflödet under läsåtgärden. Minimum är 400.
Prioriterade regioner: Välj önskade läsregioner för den här processen.
Ändringsflöde: Om det är sant får du data från Azure Cosmos DB-ändringsflödet , vilket är en beständig post med ändringar i en container i den ordning de sker från den senaste körningen automatiskt. När du anger sant anger du inte båda inferterade kolumntyper och Tillåt schemaavvikelse som sant samtidigt. Mer information finns i Ändringsflöde för Azure Cosmos DB).
Börja från början: Om det är sant får du den första inläsningen av fullständiga ögonblicksbildsdata i den första körningen, följt av att samla in ändrade data i nästa körningar. Om det är falskt hoppas den första inläsningen över i den första körningen, följt av att du samlar in ändrade data i nästa körningar. Inställningen är justerad med samma inställningsnamn i Azure Cosmos DB-referensen. Mer information finns i Ändringsflöde för Azure Cosmos DB.
Transformering av mottagare
Inställningar som är specifika för Azure Cosmos DB finns på fliken Inställningar i mottagartransformeringen.
Uppdateringsmetod: Avgör vilka åtgärder som tillåts på databasmålet. Standardvärdet är att endast tillåta infogningar. För att uppdatera, uppdatera eller ta bort rader krävs en ändringsradstransformering för att tagga rader för dessa åtgärder. För uppdateringar, upserts och borttagningar måste en nyckelkolumn eller kolumner anges för att avgöra vilken rad som ska ändras.
Samlingsåtgärd: Avgör om målsamlingen ska återskapas innan den skrivs.
- Ingen: Ingen åtgärd kommer att utföras för samlingen.
- Återskapa: Samlingen tas bort och återskapas
Batchstorlek: Ett heltal som representerar hur många objekt som skrivs till Azure Cosmos DB-samlingen i varje batch. Vanligtvis räcker det att börja med standard batchstorleken. Observera följande om du vill justera det här värdet ytterligare:
- Azure Cosmos DB begränsar storleken på en enskild begäran till 2 MB. Formeln är "Request Size = Single Document Size * Batch Size". Om du får felmeddelandet "Begärandestorleken är för stor" minskar du batchstorleksvärdet.
- Ju större batchstorlek, desto bättre dataflöde kan tjänsten uppnå, samtidigt som du allokerar tillräckligt med RU:er för att ge din arbetsbelastning.
Partitionsnyckel: Ange en sträng som representerar partitionsnyckeln för din samling. Exempel: /movies/title
Dataflöde: Ange ett valfritt värde för det antal RU:er som du vill använda för din Azure Cosmos DB-samling för varje körning av det här dataflödet. Minimum är 400.
Budget för skrivdataflöde: Ett heltal som representerar de RU:er som du vill allokera för den här Dataflöde skrivåtgärden, av det totala dataflöde som allokerats till samlingen.
Kommentar
Om du vill begränsa RU-användningen anger du Cosmos DB-dataflödet (autoskalning) till Manuell.
Egenskaper för uppslagsaktivitet
Mer information om egenskaperna finns i Sökningsaktivitet.
Importera och exportera JSON-dokument
Du kan använda den här Azure Cosmos DB for NoSQL-anslutningsappen för att enkelt:
- Kopiera dokument mellan två Azure Cosmos DB-samlingar som de är.
- Importera JSON-dokument från olika källor till Azure Cosmos DB, bland annat från Azure Blob Storage, Azure Data Lake Store och andra filbaserade butiker som tjänsten stöder.
- Exportera JSON-dokument från en Azure Cosmos DB-samling till olika filbaserade arkiv.
Så här skapar du en schemaagnostisk kopia:
- När du använder verktyget Kopiera data väljer du alternativet Exportera som är till JSON-filer eller Azure Cosmos DB-samling .
- När du använder aktivitetsredigering väljer du JSON-format med motsvarande filarkiv för källa eller mottagare.
Migrera från relationsdatabas till Azure Cosmos DB
När du migrerar från en relationsdatabas e.g. SQL Server till Azure Cosmos DB kan kopieringsaktivitet enkelt mappa tabelldata från källa för att platta ut JSON-dokument i Azure Cosmos DB. I vissa fall kanske du vill göra om datamodellen för att optimera den för NoSQL-användningsfallen enligt datamodellering i Azure Cosmos DB, till exempel för att avnormalisera data genom att bädda in alla relaterade underobjekt i ett JSON-dokument. I sådana fall kan du läsa den här artikeln med en genomgång om hur du uppnår det med hjälp av kopieringsaktiviteten.
Ändringsflöde för Azure Cosmos DB
Azure Data Factory kan hämta data från Azure Cosmos DB-ändringsflödet genom att aktivera dem i omvandlingen av dataflödets mappningsdataflöde. Med det här anslutningsalternativet kan du läsa ändringsfeeds och tillämpa transformeringar innan du läser in omvandlade data till valfria måldatauppsättningar. Du behöver inte använda Azure-funktioner för att läsa ändringsflödet och sedan skriva anpassade transformeringar. Du kan använda det här alternativet för att flytta data från en container till en annan, förbereda ändringsflödesdrivna materialvyer för lämpligt ändamål eller automatisera säkerhetskopiering eller återställning av containrar baserat på ändringsflöde och aktivera många fler sådana användningsfall med hjälp av funktioner för visuell dra och släpp i Azure Data Factory.
Kontrollera att pipelinen och aktivitetsnamnet är oförändrade så att kontrollpunkten kan registreras av ADF så att du kan hämta ändrade data från den senaste körningen automatiskt. Om du ändrar pipelinens namn eller aktivitetsnamn återställs kontrollpunkten, vilket leder till att du börjar från början eller hämtar ändringar från och med nu i nästa körning.
När du felsöker pipelinen fungerar den här funktionen på samma sätt. Tänk på att kontrollpunkten återställs när du uppdaterar webbläsaren under felsökningskörningen. När du är nöjd med pipelineresultatet från felsökningskörningen kan du publicera och utlösa pipelinen. När du första gången utlöser den publicerade pipelinen startas den automatiskt om från början eller hämtar ändringar från och med nu.
I övervakningsavsnittet har du alltid chansen att köra en pipeline igen. När du gör det registreras alltid ändrade data från den tidigare kontrollpunkten för den valda pipelinekörningen.
Dessutom har Azure Cosmos DB-analysarkivet nu stöd för Change Data Capture (CDC) för Azure Cosmos DB API för NoSQL och Azure Cosmos DB API för Mongo DB (offentlig förhandsversion). Med Azure Cosmos DB-analysarkivet kan du effektivt använda ett kontinuerligt och inkrementellt flöde av ändrade (infogade, uppdaterade och borttagna) data från analysarkivet.
Relaterat innehåll
En lista över datalager som kopieringsaktivitet stöder som källor och mottagare finns i datalager som stöds.