Przenoszenie danych przy użyciu usługi Azure Data Factory

Ukończone

Azure Data Factory to natywna usługa do wyodrębniania danych, przekształcania ich i ładowania ich między ujściami i magazynami w całkowicie bezserwerowy sposób. Z perspektywy integracji danych oznacza to, że można przenieść dane z jednego repozytorium danych do innego, niezależnie od niuansów każdego z tych magazynów, o ile można rozsądnie przekształcić dane między poszczególnymi modelami danych.

Ustawienia

Usługa Azure Cosmos DB for NoSQL jest dostępna jako połączona usługa w usłudze Azure Data Factory. Ten typ połączonej usługi jest obsługiwany zarówno jako źródło przetwarzania danych, jak i jako docelowy (odbiornik) danych wyjściowych. W obu przypadkach konfiguracja jest identyczna. Upewnij się, że włączono tożsamość zarządzaną i uprawnienia kontroli dostępu opartej na rolach (RBAC) na koncie usługi Cosmos DB. Usługę można skonfigurować przy użyciu witryny Azure Portal lub alternatywnie przy użyciu obiektu JSON.

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

Odczyt z Azure Cosmos DB

W usłudze Azure Data Factory, gdy odczytujemy dane z Azure Cosmos DB for NoSQL, musimy skonfigurować naszą połączoną usługę jako źródło. To ustawienie służy do odczytu danych. Aby skonfigurować tę opcję, musimy utworzyć zapytanie SQL dotyczące danych, które chcemy odczytać. Na przykład zapisujemy zapytanie, takie jak SELECT id, categoryId, price, quantity, name FROM products WHERE price > 500, aby przefiltrować elementy z kontenera, które chcemy odczytać z usługi Azure Cosmos DB for NoSQL. Następnie przesyłamy je do usługi Azure Data Factory, gdzie zostaną przekształcone, a ostatecznie załadowane do docelowego magazynu danych.

W usłudze Azure Data Factory nasze działanie źródłowe zawiera obiekt JSON konfiguracji, którego możemy użyć do ustawiania właściwości, takich jak zapytanie:

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

Pisz do Azure Cosmos DB

W usłudze Azure Data Factory podczas przechowywania danych w usłudze Azure Cosmos DB for NoSQL musimy skonfigurować połączoną usługę jako ujście. To ustawienie ładuje nasze dane. Aby skonfigurować tę opcję, musimy ustawić nasze zachowanie zapisu. Na przykład, możemy chcieć wstawić nasze dane lub zmodyfikować nasze dane i zastąpić wszystkie elementy, które mają pasujący unikalny identyfikator (pole id).

Nasza aktywność sink miała również obiekt JSON konfiguracji.

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