Verschieben von Daten mithilfe von Azure Data Factory

Abgeschlossen

Azure Data Factory ist ein nativer Dienst zum Extrahieren, Transformieren und Laden von Daten über Senken und Speicher hinweg auf vollkommen serverlose Weise. Aus Sicht der Datenintegration bedeutet dies, dass Sie Daten unabhängig von den jeweiligen Nuancen von einem Datenspeicher in einen anderen marshallen können, solange Sie die Daten zwischen den einzelnen Datenparadigmen angemessen transformieren können.

Einrichten

Azure Cosmos DB for NoSQL ist innerhalb von Azure Data Factory als verknüpfter Dienst verfügbar. Diese Art von verknüpftem Dienst wird sowohl als Quelle der Datenerfassung als auch als Ziel (Senke) der Datenausgabe unterstützt. Die Konfiguration ist in beiden Fällen gleich. Stellen Sie sicher, dass Sie die Berechtigungen für die verwaltete Identität und die rollenbasierte Zugriffssteuerung (RBAC) für Ihr Cosmos DB-Konto aktiviert haben. Sie können den Dienst über das Azure-Portal oder alternativ mithilfe eines JSON-Objekts konfigurieren.

{
    "name": "<example-name-of-linked-service>",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "https://<cosmos-account-name>.documents.azure.com:443/",
            "authenticationType": "ManagedIdentity"
        }
    }
}

Lesen aus Azure Cosmos DB

In Azure Data Factory muss beim Lesen von Daten aus Azure Cosmos DB for NoSQL der verknüpfte Dienst als Quelle konfiguriert werden. Mit dieser Einstellung werden Daten eingelesen. Zur Konfiguration dieser Option müssen Sie eine SQL-Abfrage der Daten erstellen, die Sie einlesen möchten. Sie können beispielsweise eine Abfrage wie SELECT id, categoryId, price, quantity, name FROM products WHERE price > 500 schreiben, um die Elemente aus dem Container zu filtern, die Sie aus Azure Cosmos DB for NoSQL in Azure Data Factory einlesen möchten, um sie zu transformieren und schließlich in den Zieldatenspeicher zu laden.

In Azure Data Factory weist die Quellaktivität ein JSON-Konfigurationsobjekt auf, mit dem Eigenschaften wie die Abfrage festgelegt werden können:

{
    "source": {
        "type": "CosmosDbSqlApiSource",
        "query": "SELECT id, categoryId, price, quantity, name FROM products WHERE price > 500",
        "preferredRegions": [
            "East US",
            "West US"
        ]        
    }
}

Schreiben in Azure Cosmos DB

In Azure Data Factory muss beim Speichern von Daten in Azure Cosmos DB for NoSQL der verknüpfte Dienst als Senke konfiguriert werden. Mit dieser Einstellung werden unsere Daten geladen. Zur Konfiguration dieser Option müssen Sie das Schreibverhalten festlegen. Sie können beispielsweise Ihre Daten einfügen, oder Sie können einen Upsert-Vorgang für Ihre Daten durchführen und alle Elemente überschreiben, die einen übereinstimmenden eindeutigen Bezeichner (id-Feld) aufweisen.

Die Senkenaktivität weist ebenfalls ein JSON-Konfigurationsobjekt auf:

"sink": {
    "type": "CosmosDbSqlApiSink",
    "writeBehavior": "upsert"
}