Sdílet prostřednictvím


Kopírování dat z MongoDB pomocí služby Azure Data Factory nebo Synapse Analytics (starší verze)

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álu Azure Data Factory nebo Synapse Analytics kopírovat data z databáze MongoDB. Vychází z článku s přehledem aktivity kopírování, který představuje obecný přehled aktivity kopírování.

Důležité

Služba vydala nový konektor MongoDB, který poskytuje lepší nativní podporu MongoDB v porovnání s touto implementací založenou na rozhraní ODBC, najdete v článku o konektoru MongoDB podrobnosti.

Podporované funkce

Data z databáze MongoDB můžete kopírovat do libovolného podporovaného úložiště dat jímky. Seznam úložišť dat podporovaných jako zdroje nebo jímky aktivitou kopírování najdete v tabulce Podporované úložiště dat.

Konkrétně tento konektor MongoDB podporuje:

  • MongoDB verze 2.4, 2.6, 3.0, 3.2, 3.4 a 3.6.
  • Kopírování dat pomocí základního nebo anonymního ověřování

Požadavky

Pokud se vaše úložiště dat nachází uvnitř místní sítě, virtuální sítě Azure nebo amazonového privátního cloudu, musíte nakonfigurovat místní prostředí Integration Runtime pro připojení k němu.

Pokud je vaše úložiště dat spravovanou cloudovou datovou službou, můžete použít Azure Integration Runtime. Pokud je přístup omezený na IP adresy schválené v pravidlech brány firewall, můžete do seznamu povolených přidat IP adresy prostředí Azure Integration Runtime.

K přístupu k místní síti bez nutnosti instalace a konfigurace místního prostředí Integration Runtime můžete také použít funkci Runtime integrace spravované virtuální sítě ve službě Azure Data Factory.

Další informace o mechanismech zabezpečení sítě a možnostech podporovaných službou Data Factory najdete v tématu Strategie přístupu k datům.

Prostředí Integration Runtime poskytuje integrovaný ovladač MongoDB, takže při kopírování dat z MongoDB nemusíte ručně instalovat žádný ovladač.

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 s MongoDB pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu s 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 Mongo a vyberte konektor MongoDB.

    Snímek obrazovky s konektorem MongoDB

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

    Snímek obrazovky s konfigurací propojené služby pro MongoDB

Podrobnosti konfigurace konektoru

Následující části obsahují podrobnosti o vlastnostech, které slouží k definování entit služby Data Factory specifických pro konektor MongoDB.

Vlastnosti propojené služby

Propojené služby MongoDB podporují následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost typu musí být nastavená na: MongoDb. Ano
server IP adresa nebo název hostitele serveru MongoDB. Ano
port Port TCP, který server MongoDB používá k naslouchání klientským připojením. Ne (výchozí hodnota je 27017)
databaseName Název databáze MongoDB, ke které chcete získat přístup. Ano
authenticationType Typ ověřování sloužící k připojení k databázi MongoDB.
Povolené hodnoty jsou: Základní a Anonymní.
Ano
username Uživatelský účet pro přístup k MongoDB. Ano (pokud se používá základní ověřování).
Heslo Heslo pro tohoto uživatele. Označte toto pole jako securestring, abyste ho mohli bezpečně uložit, nebo odkazovat na tajný klíč uložený ve službě Azure Key Vault. Ano (pokud se používá základní ověřování).
authSource Název databáze MongoDB, kterou chcete použít ke kontrole přihlašovacích údajů pro ověřování. Ne. Pro základní ověřování je výchozí použít účet správce a databázi zadanou pomocí vlastnosti databaseName.
enableSsl Určuje, jestli jsou připojení k serveru šifrovaná pomocí protokolu TLS. Výchozí hodnota je false. No
allowSelfSignedServerCert Určuje, jestli chcete povolit certifikáty podepsané svým držitelem ze serveru. Výchozí hodnota je false. No
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud není zadaný, použije výchozí prostředí Azure Integration Runtime. No

Příklad:

{
    "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"
        }
    }
}

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 MongoDB se podporují následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost typu datové sady musí být nastavená na: MongoDbCollection. Ano
collectionName Název kolekce v databázi MongoDB Ano

Příklad:

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

Vlastnosti aktivity kopírování

Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v článku Pipelines . Tato část obsahuje seznam vlastností podporovaných zdrojem MongoDB.

MongoDB jako zdroj

Ve zdrojové části 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: MongoDbSource. Ano
query Ke čtení dat použijte vlastní dotaz SQL-92. Například: vyberte * z tabulky MyTable. Ne (pokud je v datové sadě zadán název kolekce)

Příklad:

"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>"
            }
        }
    }
]

Tip

Při zadávání dotazu SQL věnujte pozornost formátu DateTime. Příklad: SELECT * FROM Account WHERE LastModifiedDate >= '2018-06-01' AND LastModifiedDate < '2018-06-02' nebo použití parametru 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')}'

Schéma podle data Factory

Služba Azure Data Factory odvodí schéma z kolekce MongoDB pomocí nejnovějších 100 dokumentů v kolekci. Pokud tyto 100 dokumentů neobsahují úplné schéma, některé sloupce mohou být během operace kopírování ignorovány.

Mapování datových typů pro MongoDB

Při kopírování dat z MongoDB se z datových typů MongoDB používají následující mapování k dočasným datovým typům používaným v rámci služby interně. Informace o tom, jak aktivita kopírování mapuje zdrojové schéma a datový typ na jímku, najdete v mapování schématu schématu a datového typu schématu schématu a datového typu.

Datový typ MongoDB Dočasný datový typ služby
Binární Bajt[]
Logické Logické
Date DateTime
NumberDouble Hodnota s dvojitou přesností
NumberInt Int32
NumberLong Int64
ObjectID String
Řetězcové Řetězcové
UUID Guid
Objekt Renormalized into flatten columns with "_" as vnořený oddělovač

Poznámka:

Další informace o podpoře polí pomocí virtuálních tabulek najdete v části Podpora složitých typů pomocí virtuálních tabulek .

V současné době se nepodporují následující datové typy MongoDB: DBPointer, JavaScript, Max/Min, regulární výraz, symbol, časové razítko, nedefinované.

Podpora komplexních typů pomocí virtuálních tabulek

Služba používá integrovaný ovladač ODBC pro připojení k databázi MongoDB a kopírování dat z databáze MongoDB. U složitých typů, jako jsou pole nebo objekty s různými typy v dokumentech, ovladač znovu normalizuje data do odpovídajících virtuálních tabulek. Konkrétně pokud tabulka obsahuje tyto sloupce, ovladač vygeneruje následující virtuální tabulky:

  • Základní tabulka, která obsahuje stejná data jako skutečná tabulka s výjimkou sloupců komplexního typu. Základní tabulka používá stejný název jako skutečná tabulka, kterou představuje.
  • Virtuální tabulka pro každý sloupec komplexního typu, který rozšiřuje vnořená data. Virtuální tabulky jsou pojmenovány pomocí názvu skutečné tabulky, oddělovače "_" a názvu pole nebo objektu.

Virtuální tabulky odkazují na data v reálné tabulce a umožňují ovladači přístup k denormalizovaným datům. K obsahu polí MongoDB se dostanete dotazováním a spojením virtuálních tabulek.

Příklad

Příkladem je například tabulka MongoDB, která má jeden sloupec s polem objektů v každé buňce – Faktury a jeden sloupec s polem skalárních typů – Hodnocení.

_id Jméno zákazníka Faktury Úroveň služeb Hodnocení
1111 ABC [{invoice_id:"123", item:"toustovač", price:"456", discount:"0.2"}, {invoice_id:"124", položka:"trouba", cena: "1235", sleva: "0,2"}] Silver [5,6]
2222 XYZ [{invoice_id:"135", položka:"lednice", cena: "12543", sleva: "0,0"}] Gold [1,2]

Ovladač by vygeneroval několik virtuálních tabulek, které by představovaly tuto jedinou tabulku. První virtuální tabulka je základní tabulka s názvem ExampleTable, která je znázorněna v příkladu. Základní tabulka obsahuje všechna data původní tabulky, ale data z polí byla vynechána a rozbalována ve virtuálních tabulkách.

_id Jméno zákazníka Úroveň služeb
1111 ABC Silver
2222 XYZ Gold

Následující tabulky ukazují virtuální tabulky, které představují původní pole v příkladu. Tyto tabulky obsahují následující:

  • Odkaz zpět na původní sloupec primárního klíče odpovídající řádku původního pole (přes sloupec _id)
  • Označení pozice dat v původním poli
  • Rozšířená data pro každý prvek v rámci pole

Tabulka "ExampleTable_Invoices":

_id ExampleTable_Invoices_dim1_idx invoice_id položka price Discount
1111 0 123 toustovač 456 0,2
1111 0 124 trouba 1235 0,2
2222 0 135 lednička 12543 0,0

Tabulka "ExampleTable_Ratings":

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

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