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) 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:

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.

  1. 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ý:

  2. Vyhledejte Azure Cosmos DB pro MongoDB a vyberte tento konektor.

    Select the Azure Cosmos DB for MongoDB connector.

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Configure a linked service to Azure Cosmos DB for MongoDB.

podrobnosti o konfiguraci Připojení oru

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=globaldbvzor ř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:

Map ID in MongoDB sink

Po spuštění aktivity kopírování se pod BSON ObjectId vygeneruje v jímce:

{
    "_id": ObjectId("592e07800000000000000000")
}

Seznam úložišť dat, která aktivita kopírování podporuje jako zdroje a jímky, najdete v podporovaných úložištích dat.