Kopiere Daten von oder nach MongoDB mit Azure Data Factory oder Synapse Analytics

Gilt für: Azure Data Factory Azure Synapse Analytics

Tipp

Data Factory in Microsoft Fabric ist die nächste Generation von Azure Data Factory mit einer einfacheren Architektur, integrierter KI und neuen Features. Wenn Sie mit der Datenintegration noch nicht vertraut sind, beginnen Sie mit Fabric Data Factory. Vorhandene ADF-Workloads können auf Fabric aktualisiert werden, um auf neue Funktionen in der Datenwissenschaft, Echtzeitanalysen und Berichterstellung zuzugreifen.

Dieser Artikel erklärt, wie man die Copy Activity in den Azure Data Factory- und Synapse Analytics-Pipelines verwendet, um Daten aus und in eine MongoDB-Datenbank zu kopieren. Er baut auf dem Artikel zur Übersicht über die Kopieraktivität auf, der eine allgemeine Übersicht über die Kopieraktivität enthält.

Hinweis

Dieser Connector ist auch in Data Factory in Microsoft Fabric verfügbar. Informationen zu Fabric spezifischen Konfigurationen und Features finden Sie in der Fabric MongoDB-Connectordokumentation.

Wichtig

Der neue MongoDB-Connector umfasst eine bessere native MongoDB-Unterstützung. Wenn du den alten MongoDB-Anschluss in deiner Lösung verwendest, der as-is nur für Abwärtskompatibilität unterstützt, siehe MongoDB-Connector (Legacy). Sie können diesen Connector verwenden, um Daten von und zu einer Azure DocumentDB (mit MongoDB-Kompatibilität) zu kopieren.

Unterstützte Funktionen

Dieser MongoDB-Anschluss unterstützt folgende Funktionen:

Unterstützte Funktionen IR
Copy-Aktivität (Quelle/Senke) (1) (2)

(1) Azure Integrationslaufzeit (2) Selbst gehostete Integrationslaufzeit

Eine Liste der Datenspeicher, die als Quellen und Sinks unterstützt werden, finden Sie in der Tabelle Unterstützte Datenspeicher .

Dieser MongoDB-Connector unterstützt insbesondere die Versionen bis 4.2. Wenn Ihre Arbeit eine höhere Version als 4.2 erfordert, sollten Sie MongoDB Atlas mit dem MongoDB Atlas-Connector verwenden, der umfassendere Unterstützung und Funktionen bietet.

Voraussetzungen

Wenn sich Ihr Datenspeicher in einem lokalen Netzwerk, einem Azure virtuellen Netzwerk oder amazon Virtual Private Cloud befindet, müssen Sie eine self-gehostete Integrationslaufzeit konfigurieren, um eine Verbindung damit herzustellen.

Wenn Ihr Datenspeicher ein verwalteter Clouddatendienst ist, können Sie die Azure Integration Runtime verwenden. Wenn der Zugriff auf IPs beschränkt ist, die in den Firewallregeln genehmigt wurden, können Sie der Zulassungsliste Azure Integration Runtime-IPs hinzufügen.

Sie können auch das Feature managed virtual network integration runtime in Azure Data Factory verwenden, um auf das lokale Netzwerk zuzugreifen, ohne eine selbst gehostete Integrationslaufzeit zu installieren und zu konfigurieren.

Weitere Informationen zu den von Data Factory unterstützten Netzwerksicherheitsmechanismen und -optionen finden Sie unter Datenzugriffsstrategien.

Erste Schritte

Zum Ausführen der Kopieraktivität mit einer Pipeline können Sie eines der folgenden Tools oder SDKs verwenden:

Erstellen Sie einen verknüpften Dienst zu MongoDB, indem Sie die Benutzeroberfläche verwenden

Führen Sie die folgenden Schritte aus, um einen verknüpften Dienst mit MongoDB in der benutzeroberfläche des Azure Portals zu erstellen.

  1. Besuchen Sie den Reiter Verwalten in Ihrem Azure Data Factory oder Synapse Workspace und wählen Sie Linked Services. Wählen Sie dann Neu:

  2. Suchen Sie nach MongoDB, und wählen Sie den MongoDB-Connector aus.

    Wählen Sie den MongoDB-Connector aus.

  3. Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.

    Konfigurieren Sie einen mit MongoDB verknüpften Dienst.

Details zur Connectorkonfiguration

Die folgenden Abschnitte enthalten Details zu Eigenschaften, die zum Definieren von Data Factory-Entitäten speziell für den MongoDB-Connector verwendet werden:

Eigenschaften des verknüpften Diensts

Die folgende Tabelle listet die unterstützten Eigenschaften eines MongoDB-verknüpften Dienstes auf:

Eigenschaft Beschreibung Erforderlich
type Setze die Typ-Eigenschaft auf: MongoDbV2 Ja
connectionString Spezifizieren Sie den MongoDB-Verbindungszeichenfolge, wie zum mongodb://[username:password@]host[:port][/[database][?options]]Beispiel . Weitere Details finden Sie im MongoDB-Handbuch zum Verbindungszeichenfolge.

Sie können auch eine Verbindungszeichenfolge in Azure Key Vault platzieren. Weitere Details finden Sie unter Speicherzugangsdaten in Azure Key Vault. |Ja | | Datenbank | Name der Datenbank, auf die Sie Zugriff haben möchten. | Ja | | connectVia | Die Integration Runtime, die zur Verbindung mit dem Datenspeicher verwendet werden kann. Weitere Informationen finden Sie im Abschnitt Voraussetzungen. Wenn du diese Eigenschaft nicht spezifizierst, wird die Standard-Azure Integration Runtime verwendet. |Nein |

Beispiel:

{
    "name": "MongoDBLinkedService",
    "properties": {
        "type": "MongoDbV2",
        "typeProperties": {
            "connectionString": "mongodb://[username:password@]host[:port][/[database][?options]]",
            "database": "myDatabase"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Dataset-Eigenschaften

Eine vollständige Liste der Abschnitte und Eigenschaften, die Sie zur Definition von Datensätzen verwenden können, finden Sie unter Datasets und verknüpfte Dienste. Die folgende Tabelle listet die unterstützten Eigenschaften eines MongoDB-Datensatzes auf:

Eigenschaft Beschreibung Erforderlich
type Setzen Sie die Typeigenschaft des Datensatzes auf: MongoDbV2Collection Ja
collectionName Der Name der Sammlung in der MongoDB-Datenbank Ja

Beispiel:

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

Eigenschaften der Kopieraktivität

Eine vollständige Liste mit den Abschnitten und Eigenschaften zum Definieren von Aktivitäten finden Sie im Artikel Pipelines. Dieser Abschnitt enthält eine Liste der Eigenschaften, die von der MongoDB-Quelle und -Senke unterstützt werden.

MongoDB als Quelle

Der Quellbereich der Kopieraktivität unterstützt folgende Eigenschaften:

Eigenschaft Beschreibung Erforderlich
type Setzen Sie die Typeigenschaft der Kopieraktivitätsquelle auf: MongoDbV2Source Ja
filter Gibt den Auswahlfilter mit Abfrageoperatoren an. Um alle Dokumente in einer Sammlung zurückzugeben, lassen Sie diesen Parameter aus oder übergeben Sie ein leeres Dokument ({}). Nein
cursorMethods.project Gibt die Felder an, die in den Dokumenten für die Projektion zurückgegeben werden sollen. Um alle Felder in den entsprechenden Dokumenten zurückzugeben, lassen Sie diesen Parameter aus. Nein
cursorMethods.sort Gibt die Reihenfolge an, in der übereinstimmende Dokumente von der Abfrage zurückgegeben werden. Siehe cursor.sort(). Nein
cursorMethods.limit Gibt die maximale Anzahl von Dokumenten an, die vom Server zurückgegeben werden. Siehe cursor.limit(). Nein
cursorMethods.skip Gibt die Anzahl von Dokumenten an, die übersprungen werden sollen und ab denen MongoDB mit der Rückgabe von Ergebnissen beginnt. Siehe cursor.skip(). Nein
batchSize Gibt die Anzahl von Dokumenten an, die in jedem Batch der Antwort von der MongoDB-Instanz zurückgegeben werden sollen. In den meisten Fällen beeinflusst die Änderung der Batch-Größe weder den Benutzer noch die Anwendung. Azure Cosmos DB begrenzt jede Charge, die 40 MB nicht überschreiten darf, was der Summe der BatchSize-Anzahl der Dokumente entspricht, daher sollten Sie diesen Wert verringern, wenn Ihre Dokumentgröße groß ist. Nein
(der Standardwert ist 100)

Tipp

Der Dienst unterstützt die Nutzung eines BSON-Dokuments im Strict-Modus. Stellen Sie sicher, dass Ihre Filteranfrage im Strict-Modus statt im Shell-Modus ist. Weitere Informationen finden Sie im MongoDB-Handbuch.

Beispiel:

"activities":[
    {
        "name": "CopyFromMongoDB",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<MongoDB input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "MongoDbV2Source",
                "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>"
            }
        }
    }
]

MongoDB als Senke

Der Abschnitt Copy Activity-Sink unterstützt folgende Eigenschaften:

Eigenschaft Beschreibung Erforderlich
type Setze die Typ-Eigenschaft der Copy Activity Sink auf MongoDbV2Sink. Ja
writeBehavior Beschreibt, wie Daten in MongoDB geschrieben werden. Zulässige Werte: insert und upsert.

Das Verhalten von upsert besteht darin, das Dokument zu ersetzen, wenn ein Dokument mit dem gleichen _id-Typ bereits vorhanden ist. Andernfalls wird das Dokument eingefügt.

Hinweis: Der Dienst generiert automatisch eine _id für ein Dokument, wenn eine _id weder im Originaldokument noch durch eine Spaltenzuordnung angegeben wird. Dies bedeutet, dass Sie sicherstellen müssen, dass Ihr Dokument eine ID besitzt, damit upsert wie erwartet funktioniert.
Nein
(der Standardwert ist insert)
writeBatchSize Die writeBatchSize-Eigenschaft steuert die Anzahl der Dokumente, die in jedem Batch geschrieben werden sollen. Um die Leistung zu verbessern, versuchen Sie, den Wert zu erhöhen. Wenn deine Dokumentgröße groß ist, versuche, den Wert zu verringern. Nein
(der Standardwert ist 10.000)
writeBatchTimeout Die Wartezeit, bis der Batch-Einfügevorgang beendet ist, bevor er eine Zeitüberschreitung verursacht. Der zulässige Wert ist timespan. Nein
(der Standardwert ist 00:30:00 – 30 Minuten)

Tipp

Um JSON-Dokumente as-iszu importieren, siehe den Abschnitt Import oder Export von JSON-Dokumenten . Um aus tabellenförmigen Daten zu kopieren, siehe Schema-Mapping.

Beispiel

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

Importieren und Exportieren von JSON-Dokumenten

Nutzen Sie diesen MongoDB-Connector, um einfach:

  • Dokumente zwischen zwei MongoDB-Sammlungen unverändert kopieren.
  • Importieren Sie JSON-Dokumente aus verschiedenen Quellen in MongoDB, einschließlich aus Azure Cosmos DB, Azure Blob-Speicher, Azure Data Lake Store und anderen unterstützten dateibasierten Speicher.
  • Exportieren von JSON-Dokumenten aus einer MongoDB-Sammlung in verschiedene dateibasierte Speicher.

Um eine solche vom Schema unabhängige Kopie zu erzielen, überspringen Sie den Abschnitt „structure“ (auch schema genannt) im Dataset und die Schemazuordnung in der Kopieraktivität.

Datentypzuordnung für MongoDB

Wenn Sie Daten aus MongoDB kopieren, verwendet der Dienst folgende Zuordnungen von MongoDB-Datentypen zu Zwischendatentypen. Für weitere Informationen darüber, wie Kopieraktivitäten das Quellschema und den Datentyp auf den Sink abbilden, siehe Schema- und Datentypabbildungen.

MongoDB-Datentyp Zwischendatentyp des Diensts
Datum Int64
Objekt-ID String
Dezimal128 String
Zeitstempel Die wichtigsten 32 Bits -> Int64
Die niederwertigsten 32 Bits -> Int64
String String
Double String
Int32 Int64
Int64 Int64
Boolean Boolean
Null Null
JavaScript String
Regulärer Ausdruck String
Min-Taste Int64
Max Key Int64
Binary String

Connectorlebenszyklus und -upgrade für MongoDB

Die folgende Tabelle zeigt die Releasestufe und Änderungsprotokolle für verschiedene Versionen des MongoDB-Connectors:

Version Freigabestufe Änderungsprotokoll
MongoDB (Vorgängerversion) Entfernt Nicht zutreffend.
MongoDB GA-Version verfügbar • Unterstützt nur die entsprechenden MongoDB-Abfragen.

• „double“ wird als String-Datentyp gelesen.

• Liest auch als String-Datentyp. |

Upgrade des verknüpften MongoDB-Diensts

Erstellen Sie einen neuen verknüpften MongoDB-Dienst, und konfigurieren Sie ihn anhand der Informationen unter Eigenschaften des verknüpften Diensts.

Eine Liste der Datenspeicher, die als Quellen und Senken für die Copy-Aktivität unterstützt werden, finden Sie in der Dokumentation zu unterstützten Datenspeichern.