Kopírování dat do nebo z Azure Cosmos DB pro MongoDB pomocí služby Azure Data Factory nebo Synapse Analytics
PLATÍ PRO: Azure Data Factory Azure Synapse Analytics
Tip
Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.
Tento článek popisuje, jak pomocí aktivity kopírování v kanálech Azure Data Factory a Synapse Analytics kopírovat data z a do služby Azure Cosmos DB pro MongoDB. Článek vychází z aktivity kopírování, která představuje obecný přehled aktivity kopírování.
Poznámka:
Tento konektor podporuje pouze kopírování dat do a z Azure Cosmos DB pro MongoDB. Informace o službě Azure Cosmos DB for NoSQL najdete v konektoru Azure Cosmos DB for NoSQL. Jiné typy rozhraní API se v současné době nepodporují.
Podporované funkce
Tento konektor Azure Cosmos DB pro MongoDB je podporovaný pro následující funkce:
Podporované funkce | IR | Spravovaný privátní koncový bod |
---|---|---|
aktivita Copy (zdroj/jímka) | (1) (2) | ✓ |
(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime
Data ze služby Azure Cosmos DB pro MongoDB můžete kopírovat do libovolného podporovaného úložiště dat jímky nebo kopírovat data z libovolného podporovaného zdrojového úložiště dat do služby Azure Cosmos DB for MongoDB. Seznam úložišť dat, která aktivita kopírování podporuje jako zdroje a jímky, najdete v tématu Podporované úložiště a formáty dat.
Konektor Azure Cosmos DB for MongoDB můžete použít k:
- Zkopírujte data z a do služby Azure Cosmos DB pro MongoDB.
- Zápis do služby Azure Cosmos DB jako vložení nebo upsert
- Importujte a exportujte dokumenty JSON tak, jak jsou, nebo kopírujte data z tabulkové datové sady nebo do tabulkové datové sady. Mezi příklady patří databáze SQL a soubor CSV. Pokud chcete zkopírovat dokumenty tak, jak je, do souborů JSON nebo do nebo z jiné kolekce Azure Cosmos DB, přečtěte si téma Import nebo export dokumentů JSON.
Začínáme
K provedení aktivita Copy s kanálem můžete použít jeden z následujících nástrojů nebo sad SDK:
- Nástroj pro kopírování dat
- Azure Portal
- Sada .NET SDK
- Sada Python SDK
- Azure PowerShell
- Rozhraní REST API
- Šablona Azure Resource Manageru
Vytvoření propojené služby se službou Azure Cosmos DB pro MongoDB pomocí uživatelského rozhraní
Pomocí následujícího postupu vytvořte propojenou službu se službou Azure Cosmos DB pro MongoDB v uživatelském rozhraní webu Azure Portal.
Přejděte na kartu Správa v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak klikněte na Nový:
Vyhledejte Azure Cosmos DB pro MongoDB a vyberte tento konektor.
Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.
Podrobnosti konfigurace konektoru
Následující části obsahují podrobnosti o vlastnostech, které můžete použít k definování entit služby Data Factory, které jsou specifické pro Azure Cosmos DB pro MongoDB.
Vlastnosti propojené služby
Propojená služba Azure Cosmos DB pro MongoDB podporuje následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu musí být nastavena na CosmosDbMongoDbApi. | Ano |
připojovací řetězec | Zadejte připojovací řetězec pro službu Azure Cosmos DB pro MongoDB. Najdete ho na webu Azure Portal –> v okně Azure Cosmos DB –> primární nebo sekundární připojovací řetězec. Pro verzi serveru 3.2 je mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb vzor řetězce . Pro verze serveru 3.6+ je mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000&appName=@<cosmosdb-name>@ vzor řetězce .Do služby Azure Key Vault můžete také zadat heslo a vytáhnout password konfiguraci z připojovací řetězec. Další podrobnosti najdete v tématu Ukládání přihlašovacích údajů ve službě Azure Key Vault . |
Ano |
database | Název databáze, ke které chcete získat přístup. | Ano |
isServerVersionAbove32 | Určete, zda je verze serveru vyšší než 3.2. Povolené hodnoty jsou true a false (výchozí). Tím určíte ovladač, který se má použít ve službě. | Ano |
connectVia | Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Můžete použít prostředí Azure Integration Runtime nebo místní prostředí Integration Runtime (pokud se vaše úložiště dat nachází v privátní síti). Pokud tato vlastnost není zadaná, použije se výchozí prostředí Azure Integration Runtime. | No |
Příklad
{
"name": "CosmosDbMongoDBAPILinkedService",
"properties": {
"type": "CosmosDbMongoDbApi",
"typeProperties": {
"connectionString": "mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb",
"database": "myDatabase",
"isServerVersionAbove32": "false"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Vlastnosti datové sady
Úplný seznam oddílů a vlastností, které jsou k dispozici pro definování datových sad, najdete v tématu Datové sady a propojené služby. Pro datovou sadu Azure Cosmos DB pro MongoDB se podporují následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu datové sady musí být nastavena na CosmosDbMongoDbApiCollection. | Ano |
collectionName | Název kolekce Azure Cosmos DB | Ano |
Příklad
{
"name": "CosmosDbMongoDBAPIDataset",
"properties": {
"type": "CosmosDbMongoDbApiCollection",
"typeProperties": {
"collectionName": "<collection name>"
},
"schema": [],
"linkedServiceName":{
"referenceName": "<Azure Cosmos DB for MongoDB linked service name>",
"type": "LinkedServiceReference"
}
}
}
Vlastnosti aktivity kopírování
Tato část obsahuje seznam vlastností, které podporuje zdroj a jímka Služby Azure Cosmos DB pro MongoDB.
Úplný seznam oddílů a vlastností, které jsou k dispozici pro definování aktivit, najdete v tématu Kanály.
Azure Cosmos DB pro MongoDB jako zdroj
Ve zdroji aktivity kopírování jsou podporovány následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu zdroje aktivity kopírování musí být nastavena na CosmosDbMongoDbApiSource. | Ano |
filter | Určuje filtr výběru pomocí operátorů dotazu. Pokud chcete vrátit všechny dokumenty v kolekci, vynecháte tento parametr nebo předejte prázdný dokument ({}). | No |
cursorMethods.project | Určuje pole, která se mají vrátit do dokumentů pro projekci. Pokud chcete vrátit všechna pole v odpovídajících dokumentech, tento parametr vynecháte. | No |
cursorMethods.sort | Určuje pořadí, ve kterém dotaz vrací odpovídající dokumenty. Odkaz na cursor.sort() | No |
cursorMethods.limit | Určuje maximální počet dokumentů, které server vrátí. Odkaz na cursor.limit(). | No |
cursorMethods.skip | Určuje počet dokumentů, které se mají přeskočit a odkud MongoDB začne vracet výsledky. Odkaz na cursor.skip() | No |
batchSize | Určuje počet dokumentů, které se mají vrátit v každé dávce odpovědi z instance MongoDB. Ve většině případů změna velikosti dávky neovlivní uživatele ani aplikaci. Azure Cosmos DB omezuje velikost každé dávky nesmí překročit 40 MB, což je součet velikosti batchSize počtu dokumentů, takže tuto hodnotu snižte, pokud je velikost dokumentu velká. | No (výchozí hodnota je 100) |
Tip
ADF podporuje používání dokumentu BSON v přísném režimu. Ujistěte se, že je váš dotaz filtru v přísném režimu místo v režimu Prostředí. Další popis najdete v příručce k MongoDB.
Příklad
"activities":[
{
"name": "CopyFromCosmosDBMongoDBAPI",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure Cosmos DB for MongoDB input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "CosmosDbMongoDbApiSource",
"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>"
}
}
}
]
Azure Cosmos DB pro MongoDB jako jímka
V části Jímka aktivity kopírování se podporují následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu jímky aktivity kopírování musí být nastavena na CosmosDbMongoDbApiSink. | Ano |
writeBehavior | Popisuje, jak zapisovat data do služby Azure Cosmos DB. Povolené hodnoty: vložení a upsert. Chování funkce upsert je nahradit dokument, pokud už dokument _id existuje, jinak dokument vložte.Poznámka: Služba automaticky vygeneruje _id dokument, pokud _id není zadán buď v původním dokumentu, nebo podle mapování sloupců. To znamená, že musíte zajistit, aby upsert fungoval očekávaným způsobem, má dokument ID. |
No (výchozí hodnota je vložení) |
writeBatchSize | Vlastnost writeBatchSize řídí velikost dokumentů, které se mají zapisovat v každé dávce. Pokud je velikost dokumentu velká, můžete zkusit zvýšit hodnotu writeBatchSize a zvýšit výkon a snížit hodnotu. | No (výchozí hodnota je 10 000) |
writeBatchTimeout | Doba čekání, než se operace dávkového vložení dokončí, než vyprší časový limit. Povolená hodnota je časový rozsah. | No (Výchozí hodnota je 00:30:00 až 30 minut) |
Tip
Pokud chcete importovat dokumenty JSON tak, jak je, přečtěte si část Import nebo export dokumentů JSON. Pokud chcete kopírovat z tabulkových dat ve tvaru, přečtěte si mapování schématu.
Příklad
"activities":[
{
"name": "CopyToCosmosDBMongoDBAPI",
"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": "CosmosDbMongoDbApiSink",
"writeBehavior": "upsert"
}
}
}
]
Import a export dokumentů JSON
Pomocí tohoto konektoru Azure Cosmos DB můžete snadno:
- Kopírování dokumentů mezi dvěma kolekcemi Azure Cosmos DB tak, jak je.
- Importujte dokumenty JSON z různých zdrojů do služby Azure Cosmos DB, včetně z MongoDB, Azure Blob Storage, Azure Data Lake Store a dalších úložišť založených na souborech, které služba podporuje.
- Exportujte dokumenty JSON z kolekce Azure Cosmos DB do různých souborových úložišť.
Chcete-li dosáhnout kopírování nezávislé na schématu:
- Když použijete nástroj Pro kopírování dat, vyberte možnost Exportovat jako do souborů JSON nebo kolekce Azure Cosmos DB.
- Při vytváření aktivit zvolte formát JSON s odpovídajícím úložištěm souborů pro zdroj nebo jímku.
Schema mapping
Pokud chcete kopírovat data ze služby Azure Cosmos DB pro MongoDB do tabulkové jímky nebo obráceně, přečtěte si mapování schématu.
Konkrétně pro zápis do služby Azure Cosmos DB, abyste měli jistotu, že službu Azure Cosmos DB naplníte správným ID objektu ze zdrojových dat, například máte v tabulce databáze SQL sloupec ID a chcete použít hodnotu této hodnoty jako ID dokumentu v MongoDB pro vložení/upsert, musíte nastavit správné mapování schématu podle definice striktního režimu MongoDB (_id.$oid
) následujícím způsobem:
Po spuštění aktivity kopírování se pod BSON ObjectId vygeneruje v jímce:
{
"_id": ObjectId("592e07800000000000000000")
}
Související obsah
Seznam úložišť dat, která aktivita kopírování podporuje jako zdroje a jímky, najdete v podporovaných úložištích dat.