Kopiowanie i przekształcanie danych w usłudze Azure Cosmos DB for NoSQL przy użyciu usługi Azure Data Factory

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

W tym artykule opisano sposób używania działania kopiowania w usłudze Azure Data Factory do kopiowania danych z i do usługi Azure Cosmos DB for NoSQL oraz używania Przepływ danych do przekształcania danych w usłudze Azure Cosmos DB for NoSQL. Aby dowiedzieć się więcej, przeczytaj artykuły wprowadzające dotyczące usług Azure Data Factory i Azure Synapse Analytics.

Uwaga

Ten łącznik obsługuje tylko usługę Azure Cosmos DB for NoSQL. W przypadku usługi Azure Cosmos DB dla bazy danych MongoDB zapoznaj się z tematem Connector for Azure Cosmos DB for MongoDB (Łącznik dla usługi Azure Cosmos DB dla bazy danych MongoDB). Inne typy interfejsów API nie są teraz obsługiwane.

Obsługiwane możliwości

Ten łącznik usługi Azure Cosmos DB for NoSQL jest obsługiwany w następujących funkcjach:

Obsługiwane możliwości IR Zarządzany prywatny punkt końcowy
działanie Kopiuj (źródło/ujście) (1) (2)
Przepływ danych mapowania (źródło/ujście) (1)
Działanie Lookup (1) (2)

(1) Środowisko Azure Integration Runtime (2) Self-hosted Integration Runtime

W przypadku działanie Kopiuj ten łącznik usługi Azure Cosmos DB for NoSQL obsługuje następujące elementy:

  • Skopiuj dane z i do usługi Azure Cosmos DB for NoSQL przy użyciu kluczy, jednostki usługi lub tożsamości zarządzanych na potrzeby uwierzytelniania zasobów platformy Azure.
  • Zapisz w usłudze Azure Cosmos DB jako operację wstawiania lub upsert.
  • Zaimportuj i wyeksportuj dokumenty JSON zgodnie z rzeczywistym użyciem lub skopiuj dane z lub do tabelarycznego zestawu danych. Przykłady obejmują bazę danych SQL i plik CSV. Aby skopiować dokumenty w formacie is do lub z plików JSON lub do lub z innej kolekcji usługi Azure Cosmos DB, zobacz Importowanie i eksportowanie dokumentów JSON.

Potoki usługi Data Factory i Synapse integrują się z biblioteką funkcji wykonawczej operacji zbiorczych usługi Azure Cosmos DB, aby zapewnić najlepszą wydajność podczas pisania w usłudze Azure Cosmos DB.

Napiwek

Film wideo dotyczący migracji danych przeprowadzi Cię przez kroki kopiowania danych z usługi Azure Blob Storage do usługi Azure Cosmos DB. W filmie wideo opisano również zagadnienia dotyczące dostrajania wydajności dotyczące pozyskiwania danych do usługi Azure Cosmos DB w ogóle.

Rozpocznij

Aby wykonać działanie Kopiuj za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:

Tworzenie połączonej usługi z usługą Azure Cosmos DB przy użyciu interfejsu użytkownika

Wykonaj poniższe kroki, aby utworzyć połączoną usługę z usługą Azure Cosmos DB w interfejsie użytkownika witryny Azure Portal.

  1. Przejdź do karty Zarządzanie w obszarze roboczym usługi Azure Data Factory lub Synapse i wybierz pozycję Połączone usługi, a następnie kliknij pozycję Nowy:

  2. Wyszukaj ciąg Azure Cosmos DB for NoSQL i wybierz łącznik Azure Cosmos DB for NoSQL.

    Wybierz pozycję Łącznik usługi Azure Cosmos DB for NoSQL.

  3. Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.

    Zrzut ekranu przedstawiający połączoną konfigurację usługi dla usługi Azure Cosmos DB.

szczegóły konfiguracji Połączenie or

Poniższe sekcje zawierają szczegółowe informacje o właściwościach, których można użyć do definiowania jednostek specyficznych dla usługi Azure Cosmos DB for NoSQL.

Właściwości połączonej usługi

Łącznik usługi Azure Cosmos DB for NoSQL obsługuje następujące typy uwierzytelniania. Aby uzyskać szczegółowe informacje, zobacz odpowiednie sekcje:

Uwierzytelnianie za pomocą klucza

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na CosmosDb. Tak
Parametry połączenia Określ informacje wymagane do nawiązania połączenia z bazą danych usługi Azure Cosmos DB.
Uwaga: należy określić informacje o bazie danych w parametry połączenia, jak pokazano w poniższych przykładach.
Możesz również umieścić klucz konta w usłudze Azure Key Vault i ściągnąć konfigurację accountKey z parametry połączenia. Zapoznaj się z poniższymi przykładami i artykułem Store credentials in Azure Key Vault (Przechowywanie poświadczeń w usłudze Azure Key Vault ), aby uzyskać więcej szczegółów.
Tak
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime (jeśli magazyn danych znajduje się w sieci prywatnej). Jeśli ta właściwość nie zostanie określona, zostanie użyte domyślne środowisko Azure Integration Runtime. Nie.

Przykład

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "connectionString": "AccountEndpoint=<EndpointUrl>;AccountKey=<AccessKey>;Database=<Database>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Przykład: przechowywanie klucza konta w usłudze Azure Key Vault

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "connectionString": "AccountEndpoint=<EndpointUrl>;Database=<Database>",
            "accountKey": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Uwierzytelnianie nazwy głównej usługi

Uwaga

Obecnie uwierzytelnianie jednostki usługi nie jest obsługiwane w przepływie danych.

Aby użyć uwierzytelniania jednostki usługi, wykonaj następujące kroki.

  1. Zarejestruj aplikację w Platforma tożsamości Microsoft. Aby dowiedzieć się, jak to zrobić, zobacz Szybki start: rejestrowanie aplikacji przy użyciu Platforma tożsamości Microsoft. Zanotuj te wartości, których użyjesz do zdefiniowania połączonej usługi:

    • Application ID
    • Klucz aplikacji
    • Identyfikator dzierżawy
  2. Przyznaj jednostce usługi odpowiednie uprawnienie. Zobacz przykłady działania uprawnień w usłudze Azure Cosmos DB z list kontroli dostępu w plikach i katalogach. W szczególności utwórz definicję roli i przypisz rolę do jednostki usługi za pomocą identyfikatora obiektu jednostki usługi.

Te właściwości są obsługiwane w przypadku połączonej usługi:

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na CosmosDb. Tak
accountEndpoint Określ adres URL punktu końcowego konta dla wystąpienia usługi Azure Cosmos DB. Tak
database Określ nazwę bazy danych. Tak
servicePrincipalId Określ identyfikator klienta aplikacji. Tak
servicePrincipalCredentialType Typ poświadczeń do użycia na potrzeby uwierzytelniania jednostki usługi. Dozwolone wartości to ServicePrincipalKey i ServicePrincipalCert. Tak
servicePrincipalCredential Poświadczenie jednostki usługi.
W przypadku użycia klucza ServicePrincipalKey jako typu poświadczeń określ klucz aplikacji. Oznacz to pole jako SecureString , aby bezpiecznie je przechowywać lub odwołuje się do wpisu tajnego przechowywanego w usłudze Azure Key Vault.
Jeśli używasz klasy ServicePrincipalCert jako poświadczenia, odwołaj się do certyfikatu w usłudze Azure Key Vault i upewnij się, że typ zawartości certyfikatu to PKCS #12.
Tak
tenant Określ informacje o dzierżawie (nazwę domeny lub identyfikator dzierżawy), w ramach których znajduje się aplikacja. Pobierz go, umieszczając wskaźnik myszy w prawym górnym rogu witryny Azure Portal. Tak
azureCloudType W przypadku uwierzytelniania jednostki usługi określ typ środowiska chmury platformy Azure, do którego zarejestrowano aplikację Firmy Microsoft Entra.
Dozwolone wartości to AzurePublic, AzureChina, AzureUsGovernment i AzureGermany. Domyślnie używane jest środowisko chmury usługi.
Nie.
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime, jeśli magazyn danych znajduje się w sieci prywatnej. Jeśli nie zostanie określony, zostanie użyte domyślne środowisko Azure Integration Runtime. Nie.

Przykład: używanie uwierzytelniania klucza jednostki usługi

Klucz jednostki usługi można również przechowywać w usłudze Azure Key Vault.

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalKey",
            "servicePrincipalCredential": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Przykład: używanie uwierzytelniania certyfikatu jednostki usługi

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>", 
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalCert",
            "servicePrincipalCredential": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<AKV reference>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<certificate name in AKV>" 
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Uwierzytelnianie tożsamości zarządzanej przypisanej przez system

Uwaga

Obecnie uwierzytelnianie tożsamości zarządzanej przypisanej przez system nie jest obsługiwane w przepływie danych.

Potok fabryki danych lub usługi Synapse może być skojarzony z tożsamością zarządzaną przypisaną przez system dla zasobów platformy Azure, która reprezentuje to konkretne wystąpienie usługi. Tę tożsamość zarządzaną można bezpośrednio użyć do uwierzytelniania usługi Azure Cosmos DB, podobnie jak w przypadku własnej jednostki usługi. Dzięki temu wyznaczonemu zasobowi można uzyskiwać dostęp do wystąpienia usługi Azure Cosmos DB i kopiować je do lub z niego.

Aby użyć tożsamości zarządzanych przypisanych przez system na potrzeby uwierzytelniania zasobów platformy Azure, wykonaj następujące kroki.

  1. Pobierz informacje o tożsamości zarządzanej przypisanej przez system, kopiując wartość identyfikatora obiektu tożsamości zarządzanej wygenerowanego wraz z usługą.

  2. Przyznaj przypisanej przez system tożsamości zarządzanej odpowiednie uprawnienia. Zobacz przykłady działania uprawnień w usłudze Azure Cosmos DB z list kontroli dostępu w plikach i katalogach. W szczególności utwórz definicję roli i przypisz rolę do tożsamości zarządzanej przypisanej przez system.

Te właściwości są obsługiwane w przypadku połączonej usługi:

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na CosmosDb. Tak
accountEndpoint Określ adres URL punktu końcowego konta dla wystąpienia usługi Azure Cosmos DB. Tak
database Określ nazwę bazy danych. Tak
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime, jeśli magazyn danych znajduje się w sieci prywatnej. Jeśli nie zostanie określony, zostanie użyte domyślne środowisko Azure Integration Runtime. Nie.

Przykład:

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Uwierzytelnianie tożsamości zarządzanej przypisanej przez użytkownika

Uwaga

Obecnie uwierzytelnianie tożsamości zarządzanej przypisanej przez użytkownika nie jest obsługiwane w przepływie danych.

Potok fabryki danych lub usługi Synapse może być skojarzony z tożsamościami zarządzanymi przypisanymi przez użytkownika, które reprezentują to konkretne wystąpienie usługi. Tę tożsamość zarządzaną można bezpośrednio użyć do uwierzytelniania usługi Azure Cosmos DB, podobnie jak w przypadku własnej jednostki usługi. Dzięki temu wyznaczonemu zasobowi można uzyskiwać dostęp do wystąpienia usługi Azure Cosmos DB i kopiować je do lub z niego.

Aby użyć tożsamości zarządzanych przypisanych przez użytkownika na potrzeby uwierzytelniania zasobów platformy Azure, wykonaj następujące kroki.

  1. Utwórz jedną lub wiele tożsamości zarządzanych przypisanych przez użytkownika i przyznaj odpowiednie uprawnienia tożsamości zarządzanej przypisanej przez użytkownika. Zobacz przykłady działania uprawnień w usłudze Azure Cosmos DB z list kontroli dostępu w plikach i katalogach. W szczególności utwórz definicję roli i przypisz rolę do tożsamości zarządzanej przypisanej przez użytkownika.

  2. Przypisz jedną lub wiele tożsamości zarządzanych przypisanych przez użytkownika do fabryki danych i utwórz poświadczenia dla każdej tożsamości zarządzanej przypisanej przez użytkownika.

Te właściwości są obsługiwane w przypadku połączonej usługi:

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na CosmosDb. Tak
accountEndpoint Określ adres URL punktu końcowego konta dla wystąpienia usługi Azure Cosmos DB. Tak
database Określ nazwę bazy danych. Tak
poświadczenia Określ tożsamość zarządzaną przypisaną przez użytkownika jako obiekt poświadczeń. Tak
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Azure Integration Runtime lub własnego środowiska Integration Runtime, jeśli magazyn danych znajduje się w sieci prywatnej. Jeśli nie zostanie określony, zostanie użyte domyślne środowisko Azure Integration Runtime. Nie.

Przykład:

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Właściwości zestawu danych

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania zestawów danych, zobacz Zestawy danych i połączone usługi.

Następujące właściwości są obsługiwane w przypadku zestawu danych Azure Cosmos DB for NoSQL:

Właściwości Opis Wymagania
type Właściwość type zestawu danych musi być ustawiona na CosmosDbSqlApiCollection. Tak
Collectionname Nazwa kolekcji dokumentów usługi Azure Cosmos DB. Tak

Jeśli używasz zestawu danych typu "DocumentDbCollection", nadal jest on obsługiwany w celu zapewnienia zgodności z poprzednimi wersjami dla działań kopiowania i wyszukiwania, nie jest obsługiwany w przypadku Przepływ danych. Zaleca się użycie nowego modelu w przyszłości.

Przykład

{
    "name": "CosmosDbSQLAPIDataset",
    "properties": {
        "type": "CosmosDbSqlApiCollection",
        "linkedServiceName":{
            "referenceName": "<Azure Cosmos DB linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [],
        "typeProperties": {
            "collectionName": "<collection name>"
        }
    }
}

Właściwości działania kopiowania

Ta sekcja zawiera listę właściwości obsługiwanych przez źródło i ujście usługi Azure Cosmos DB for NoSQL. Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, zobacz Pipelines (Potoki).

Usługa Azure Cosmos DB for NoSQL jako źródło

Aby skopiować dane z usługi Azure Cosmos DB for NoSQL, ustaw typ źródła w działaniu kopiowania na wartość DocumentDbCollectionSource.

Następujące właściwości są obsługiwane w sekcji Źródło działania kopiowania:

Właściwości Opis Wymagania
type Właściwość type źródła działania kopiowania musi być ustawiona na CosmosDbSqlApiSource. Tak
zapytanie Określ zapytanie usługi Azure Cosmos DB, aby odczytywać dane.

Przykład:
SELECT c.BusinessEntityID, c.Name.First AS FirstName, c.Name.Middle AS MiddleName, c.Name.Last AS LastName, c.Suffix, c.EmailPromotion FROM c WHERE c.ModifiedDate > \"2009-01-01T00:00:00\"
Nr

Jeśli nie zostanie określona, ta instrukcja SQL zostanie wykonana: select <columns defined in structure> from mycollection
preferredRegions Preferowana lista regionów do nawiązania połączenia podczas pobierania danych z usługi Azure Cosmos DB. Nie.
Pagesize Liczba dokumentów na stronę wyniku zapytania. Wartość domyślna to "-1", co oznacza użycie dynamicznego rozmiaru strony usługi do 1000. Nie.
detectDatetime Czy wykrywać datę/godzinę z wartości ciągu w dokumentach. Dozwolone wartości to: true (wartość domyślna), false. Nie.

Jeśli używasz źródła typu "DocumentDbCollectionSource", nadal jest obsługiwana zgodnie ze zgodnością z poprzednimi wersjami. Zalecamy użycie nowego modelu w przyszłości, który zapewnia bogatsze możliwości kopiowania danych z usługi Azure Cosmos DB.

Przykład

"activities":[
    {
        "name": "CopyFromCosmosDBSQLAPI",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Cosmos DB for NoSQL input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "CosmosDbSqlApiSource",
                "query": "SELECT c.BusinessEntityID, c.Name.First AS FirstName, c.Name.Middle AS MiddleName, c.Name.Last AS LastName, c.Suffix, c.EmailPromotion FROM c WHERE c.ModifiedDate > \"2009-01-01T00:00:00\"",
                "preferredRegions": [
                    "East US"
                ]
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Podczas kopiowania danych z usługi Azure Cosmos DB, chyba że chcesz wyeksportować dokumenty JSON, najlepszym rozwiązaniem jest określenie mapowania w działaniu kopiowania. Usługa honoruje mapowanie określone w działaniu — jeśli wiersz nie zawiera wartości dla kolumny, zostanie podana wartość null dla wartości kolumny. Jeśli nie określisz mapowania, usługa wywnioskuje schemat przy użyciu pierwszego wiersza w danych. Jeśli pierwszy wiersz nie zawiera pełnego schematu, w wyniku operacji działania brakuje niektórych kolumn.

Usługa Azure Cosmos DB for NoSQL jako ujście

Aby skopiować dane do usługi Azure Cosmos DB for NoSQL, ustaw typ ujścia w działaniu kopiowania na DocumentDbCollectionSink.

Następujące właściwości są obsługiwane w sekcji ujścia działania kopiowania:

Właściwości Opis Wymagania
type Właściwość type ujścia działania kopiowania musi być ustawiona na CosmosDbSqlApiSink. Tak
writeBehavior Opisuje sposób zapisywania danych w usłudze Azure Cosmos DB. Dozwolone wartości: wstawianie i upsert.

Zachowanie operacji upsert polega na zastąpieniu dokumentu, jeśli dokument o tym samym identyfikatorze już istnieje; w przeciwnym razie wstaw dokument.

Uwaga: usługa automatycznie generuje identyfikator dokumentu, jeśli identyfikator nie został określony w oryginalnym dokumencie lub według mapowania kolumn. Oznacza to, że należy upewnić się, że aby operacja upsert działała zgodnie z oczekiwaniami, dokument ma identyfikator.
Nie.
(wartość domyślna to wstawianie)
writeBatchSize Usługa używa biblioteki funkcji wykonawczej zbiorczej usługi Azure Cosmos DB do zapisywania danych w usłudze Azure Cosmos DB. Właściwość writeBatchSize kontroluje rozmiar dokumentów, które usługa udostępnia bibliotece. Możesz spróbować zwiększyć wartość dla funkcji writeBatchSize , aby zwiększyć wydajność i zmniejszyć wartość, jeśli rozmiar dokumentu jest duży — zobacz poniższe porady. Nie.
(wartość domyślna to 10 000)
disableMetricsCollection Usługa zbiera metryki, takie jak jednostki RU usługi Azure Cosmos DB na potrzeby optymalizacji wydajności kopiowania i zaleceń. Jeśli interesuje Cię to zachowanie, określ true , aby go wyłączyć. Nie (wartość domyślna to false)
 maxConcurrent Połączenie ions Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas uruchamiania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne.  Nr

Napiwek

Aby zaimportować dokumenty JSON zgodnie z rzeczywistym użyciem, zapoznaj się z sekcją Importowanie lub eksportowanie dokumentów JSON. Aby skopiować z danych tabelarycznych, zobacz Migrowanie z relacyjnej bazy danych do usługi Azure Cosmos DB.

Napiwek

Usługa Azure Cosmos DB ogranicza rozmiar pojedynczego żądania do 2 MB. Formuła to Rozmiar żądania = Rozmiar pojedynczego dokumentu * Rozmiar partii zapisu. Jeśli wystąpi błąd informujący o tym, że "Rozmiar żądania jest zbyt duży"., zmniejsz writeBatchSize wartość w konfiguracji ujścia kopii.

Jeśli używasz źródła typu "DocumentDbCollectionSink", nadal jest obsługiwana zgodnie ze zgodnością z poprzednimi wersjami. Zalecamy użycie nowego modelu w przyszłości, który zapewnia bogatsze możliwości kopiowania danych z usługi Azure Cosmos DB.

Przykład

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

Mapowanie schematu

Aby skopiować dane z usługi Azure Cosmos DB do ujścia tabelarycznego lub odwróconego, zapoznaj się z mapowaniem schematu.

Właściwości przepływu mapowania danych

Podczas przekształcania danych w przepływie mapowania danych można odczytywać i zapisywać w kolekcjach w usłudze Azure Cosmos DB. Aby uzyskać więcej informacji, zobacz przekształcanie źródła i przekształcanie ujścia w przepływach danych mapowania.

Uwaga

Bezserwerowa usługa Azure Cosmos DB nie jest obsługiwana w przepływie mapowania danych.

Przekształcanie źródła

Ustawienia specyficzne dla usługi Azure Cosmos DB są dostępne w usłudze Karta Opcje źródła przekształcenia źródła.

Uwzględnij kolumny systemowe: jeśli wartości true, id, _tsi inne kolumny systemowe zostaną uwzględnione w metadanych przepływu danych z usługi Azure Cosmos DB. Podczas aktualizowania kolekcji ważne jest, aby uwzględnić ten element, aby można było pobrać istniejący identyfikator wiersza.

Rozmiar strony: liczba dokumentów na stronę wyniku zapytania. Wartość domyślna to "-1", która używa strony dynamicznej usługi do 1000.

Przepływność: ustaw opcjonalną wartość liczby jednostek RU, które mają być stosowane do kolekcji usługi Azure Cosmos DB dla każdego wykonania tego przepływu danych podczas operacji odczytu. Minimalna wartość to 400.

Preferowane regiony: wybierz preferowane regiony odczytu dla tego procesu.

Zestawienie zmian: jeśli ma wartość true, otrzymasz dane ze źródła zmian usługi Azure Cosmos DB, które jest trwałym rekordem zmian w kontenerze w kolejności, w jakiej są wykonywane automatycznie z ostatniego uruchomienia. Po ustawieniu wartości true nie należy ustawiać zarówno dryfowanych typów kolumn wywnioskowanych, jak i Zezwalaj na dryf schematu jako true w tym samym czasie. Aby uzyskać więcej informacji, zobacz Zestawienie zmian usługi Azure Cosmos DB).

Zacznij od początku: jeśli wartość true, w pierwszym uruchomieniu otrzymasz początkowe ładowanie pełnych danych migawki, a następnie przechwycenie zmienionych danych w następnych uruchomieniach. Jeśli wartość false, początkowe obciążenie zostanie pominięte w pierwszym uruchomieniu, a następnie przechwycenie zmienionych danych w następnych uruchomieniach. To ustawienie jest wyrównane do tej samej nazwy ustawienia w dokumentacji usługi Azure Cosmos DB. Aby uzyskać więcej informacji, zobacz Zestawienie zmian usługi Azure Cosmos DB.

Przekształcenie ujścia

Ustawienia specyficzne dla usługi Azure Cosmos DB są dostępne na karcie Ustawienia przekształcenia ujścia.

Metoda aktualizacji: określa, jakie operacje są dozwolone w miejscu docelowym bazy danych. Ustawieniem domyślnym jest zezwalanie tylko na wstawianie. Aby zaktualizować, upsert lub usunąć wiersze, do tagowania wierszy dla tych akcji jest wymagane przekształcenie alter-row. W przypadku aktualizacji, operacji upsert i usuwania należy ustawić kolumnę klucza lub kolumny w celu określenia, który wiersz ma zostać zmieniony.

Akcja kolekcji: określa, czy należy ponownie utworzyć kolekcję docelową przed zapisaniem.

  • Brak: do kolekcji nie zostanie wykonana żadna akcja.
  • Utwórz ponownie: kolekcja zostanie porzucona i ponownie utworzona

Rozmiar partii: liczba całkowita reprezentująca liczbę obiektów zapisywanych w kolekcji usługi Azure Cosmos DB w każdej partii. Zazwyczaj, począwszy od domyślnego rozmiaru partii, wystarczy. Aby dostroić tę wartość, należy pamiętać:

  • Usługa Azure Cosmos DB ogranicza rozmiar pojedynczego żądania do 2 MB. Formuła to "Rozmiar żądania = Rozmiar pojedynczego dokumentu * Rozmiar partii". Jeśli wystąpi błąd informujący o tym, że "Rozmiar żądania jest za duży", zmniejsz wartość rozmiaru partii.
  • Większy rozmiar partii, tym większa przepływność, którą może osiągnąć usługa, a jednocześnie upewnij się, że przydzielasz wystarczającą liczbę jednostek RU, aby zwiększyć wydajność obciążenia.

Klucz partycji: wprowadź ciąg reprezentujący klucz partycji dla kolekcji. Przykład: /movies/title

Przepływność: ustaw opcjonalną wartość liczby jednostek RU, które mają być stosowane do kolekcji usługi Azure Cosmos DB dla każdego wykonania tego przepływu danych. Minimalna wartość to 400.

Budżet przepływności zapisu: liczba całkowita reprezentująca jednostki RU, które mają zostać przydzielone dla tej Przepływ danych operacji zapisu, z całkowitej przepływności przydzielonej do kolekcji.

Uwaga

Aby ograniczyć użycie jednostek RU, ustaw wartość Przepływność (autoskalowanie) usługi Cosmos DB na Wartość Ręczna.

Właściwości działania wyszukiwania

Aby dowiedzieć się więcej o właściwościach, sprawdź działanie Wyszukiwania.

Importowanie i eksportowanie dokumentów JSON

Tego łącznika usługi Azure Cosmos DB for NoSQL można łatwo użyć:

  • Skopiuj dokumenty między dwiema kolekcjami usługi Azure Cosmos DB, tak jak to jest.
  • Zaimportuj dokumenty JSON z różnych źródeł do usługi Azure Cosmos DB, w tym z usługi Azure Blob Storage, Azure Data Lake Store i innych magazynów opartych na plikach, które obsługuje usługa.
  • Eksportowanie dokumentów JSON z kolekcji usługi Azure Cosmos DB do różnych magazynów opartych na plikach.

Aby uzyskać niezależną kopię schematu:

  • Gdy używasz narzędzia do kopiowania danych, wybierz opcję Eksportuj zgodnie z rzeczywistym użyciem do plików JSON lub kolekcji usługi Azure Cosmos DB.
  • W przypadku korzystania z tworzenia działań wybierz format JSON z odpowiednim magazynem plików dla źródła lub ujścia.

Migrowanie z relacyjnej bazy danych do usługi Azure Cosmos DB

Podczas migracji z relacyjnej bazy danych e.g. SQL Server do usługi Azure Cosmos DB działanie kopiowania może łatwo mapować dane tabelaryczne ze źródła do spłaszanych dokumentów JSON w usłudze Azure Cosmos DB. W niektórych przypadkach możesz przeprojektować model danych, aby zoptymalizować go pod kątem przypadków użycia NoSQL zgodnie z modelowaniem danych w usłudze Azure Cosmos DB, na przykład, aby usunąć normalizację danych, osadzając wszystkie powiązane elementy podrzędne w jednym dokumencie JSON. W takim przypadku zapoznaj się z tym artykułem z przewodnikiem dotyczącym sposobu jego osiągnięcia przy użyciu działania kopiowania.

Zestawienie zmian usługi Azure Cosmos DB

Usługa Azure Data Factory może pobierać dane ze źródła zmian usługi Azure Cosmos DB, włączając je w przekształceniu źródła przepływu danych mapowania. Dzięki tej opcji łącznika można odczytywać zestawienia zmian i stosować przekształcenia przed załadowaniem przekształconych danych do zestawów danych docelowych. Nie musisz używać funkcji platformy Azure do odczytywania zestawienia zmian, a następnie zapisywania przekształceń niestandardowych. Możesz użyć tej opcji, aby przenieść dane z jednego kontenera do innego, przygotować widoki materiałów opartych na zestawieniach zmian do celu lub zautomatyzować tworzenie kopii zapasowych kontenerów lub odzyskiwanie na podstawie zestawienia zmian i włączyć wiele innych przypadków użycia za pomocą wizualnego przeciągania i upuszczania możliwości usługi Azure Data Factory.

Upewnij się, że nazwa potoku i działania pozostaje niezmieniona, aby punkt kontrolny mógł być rejestrowany przez usługę ADF w celu automatycznego pobierania zmienionych danych z ostatniego uruchomienia. Jeśli zmienisz nazwę potoku lub nazwę działania, punkt kontrolny zostanie zresetowany, co prowadzi do rozpoczęcia od początku lub pobrania zmian od teraz w następnym uruchomieniu.

Podczas debugowania potoku ta funkcja działa tak samo. Pamiętaj, że punkt kontrolny zostanie zresetowany podczas odświeżania przeglądarki podczas uruchamiania debugowania. Po zadowoleniu z wyniku potoku z przebiegu debugowania możesz przejść do przodu, aby opublikować i wyzwolić potok. W momencie, gdy po raz pierwszy wyzwalasz opublikowany potok, automatycznie uruchamia się ponownie od początku lub pobiera zmiany od teraz.

W sekcji monitorowania zawsze masz możliwość ponownego uruchomienia potoku. W tym przypadku zmienione dane są zawsze przechwytywane z poprzedniego punktu kontrolnego wybranego przebiegu potoku.

Ponadto magazyn analityczny usługi Azure Cosmos DB obsługuje teraz funkcję przechwytywania zmian danych (CDC) dla interfejsu API usługi Azure Cosmos DB dla noSQL i interfejsu API usługi Azure Cosmos DB dla bazy danych Mongo DB (publiczna wersja zapoznawcza). Magazyn analityczny usługi Azure Cosmos DB umożliwia efektywne korzystanie z ciągłego i przyrostowego źródła danych zmienionych (wstawionych, zaktualizowanych i usuniętych) z magazynu analitycznego.

Aby uzyskać listę magazynów danych obsługiwanych przez działanie kopiowania jako źródła i ujścia, zobacz obsługiwane magazyny danych.