Udostępnij za pośrednictwem


Kopiowanie danych z lub do usługi MongoDB Atlas przy użyciu usługi Azure Data Factory lub Synapse Analytics

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 potoku usługi Azure Data Factory lub Synapse Analytics w celu kopiowania danych z bazy danych MongoDB Atlas i do bazy danych MongoDB. Jest on oparty na artykule omówienie działania kopiowania, który przedstawia ogólne omówienie działania kopiowania.

Obsługiwane możliwości

Ten łącznik usługi MongoDB Atlas jest obsługiwany w następujących funkcjach:

Obsługiwane możliwości IR
działanie Kopiuj (źródło/ujście) (1) (2)

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

Aby uzyskać listę magazynów danych obsługiwanych jako źródła/ujścia, zobacz tabelę Obsługiwane magazyny danych.

Wymagania wstępne

Jeśli magazyn danych znajduje się wewnątrz sieci lokalnej, sieci wirtualnej platformy Azure lub chmury prywatnej Amazon Virtual, musisz skonfigurować własne środowisko Integration Runtime , aby się z nim połączyć.

Jeśli magazyn danych jest zarządzaną usługą danych w chmurze, możesz użyć środowiska Azure Integration Runtime. Jeśli dostęp jest ograniczony do adresów IP zatwierdzonych w regułach zapory, możesz dodać adresy IP środowiska Azure Integration Runtime do listy dozwolonych.

Możesz również użyć funkcji środowiska Integration Runtime zarządzanej sieci wirtualnej w usłudze Azure Data Factory, aby uzyskać dostęp do sieci lokalnej bez instalowania i konfigurowania własnego środowiska Integration Runtime.

Aby uzyskać więcej informacji na temat mechanizmów zabezpieczeń sieci i opcji obsługiwanych przez usługę Data Factory, zobacz Strategie dostępu do danych.

Wprowadzenie

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ą MongoDB Atlas przy użyciu interfejsu użytkownika

Wykonaj poniższe kroki, aby utworzyć połączoną usługę z usługą MongoDB Atlas 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 usługę MongoDB Atlas i wybierz łącznik Usługi Atlas bazy danych MongoDB.

    Wybierz łącznik Usługi Atlas bazy danych MongoDB.

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

    Skonfiguruj połączoną usługę w usłudze MongoDB Atlas.

Szczegóły konfiguracji łącznika

Poniższe sekcje zawierają szczegółowe informacje o właściwościach używanych do definiowania jednostek usługi Data Factory specyficznych dla łącznika usługi MongoDB Atlas.

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

Następujące właściwości są obsługiwane w przypadku połączonej usługi MongoDB Atlas:

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na: MongoDbAtlas Tak
Parametry połączenia Określ parametry połączenia Atlas bazy danych MongoDB, np. mongodb+srv://<username>:<password>@<clustername>.<randomString>.<hostName>/<dbname>?<otherProperties>.

Możesz również umieścić parametry połączenia w usłudze Azure Key Vault. Aby uzyskać więcej informacji, zobacz Przechowywanie poświadczeń w usłudze Azure Key Vault .
Tak
database Nazwa bazy danych, do której chcesz uzyskać dostęp. Tak
driverVersion Określ wersję sterownika do wersji 2, która obsługuje bazę danych MongoDB w wersji 3.6 i nowszej. Aby uzyskać więcej informacji, przejdź do tego artykułu. Nie.
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Dowiedz się więcej w sekcji Wymagania wstępne . Jeśli nie zostanie określony, używa domyślnego środowiska Azure Integration Runtime. Nie.

Przykład:

{
    "name": "MongoDbAtlasLinkedService",
    "properties": {
        "type": "MongoDbAtlas",
        "typeProperties": {
            "connectionString": "mongodb+srv://<username>:<password>@<clustername>.<randomString>.<hostName>/<dbname>?<otherProperties>",
            "database": "myDatabase",
            "driverVersion": "<driver version>"
        },
        "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 dla zestawu danych Usługi MongoDB Atlas:

Właściwości Opis Wymagania
type Właściwość type zestawu danych musi być ustawiona na: MongoDbAtlasCollection Tak
collectionName Nazwa kolekcji w bazie danych MongoDB Atlas. Tak

Przykład:

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

Właściwości działania kopiowania

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

Usługa MongoDB Atlas jako źródło

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: MongoDbAtlasSource Tak
filtr Określa filtr wyboru przy użyciu operatorów zapytań. Aby zwrócić wszystkie dokumenty w kolekcji, pomiń ten parametr lub przekaż pusty dokument ({}). Nie.
cursorMethods.project Określa pola, które mają być zwracane w dokumentach na potrzeby projekcji. Aby zwrócić wszystkie pola w pasujących dokumentach, pomiń ten parametr. Nie.
cursorMethods.sort Określa kolejność, w której zapytanie zwraca pasujące dokumenty. Zapoznaj się z tematem cursor.sort(). Nie.
cursorMethods.limit Określa maksymalną liczbę dokumentów zwracanych przez serwer. Zapoznaj się z tematem cursor.limit(). Nie.
cursorMethods.skip Określa liczbę dokumentów do pominięcia i od miejsca, w którym usługa MongoDB Atlas zaczyna zwracać wyniki. Zapoznaj się z elementem cursor.skip(). Nie.
batchSize Określa liczbę dokumentów, które mają być zwracane w każdej partii odpowiedzi z wystąpienia usługi MongoDB Atlas. W większości przypadków modyfikowanie rozmiaru partii nie wpłynie na użytkownika ani aplikację. Limity usługi Azure Cosmos DB dla każdej partii nie mogą przekraczać rozmiaru 40 MB, czyli sumy rozmiaru wsadowego Rozmiaru dokumentów, więc zmniejsz tę wartość, jeśli rozmiar dokumentu jest duży. Nie.
(wartość domyślna to 100)

Napiwek

Usługa obsługuje korzystanie z dokumentu BSON w trybie ścisłym. Upewnij się, że zapytanie filtru jest w trybie ścisłym zamiast w trybie powłoki. Więcej informacji można znaleźć w podręczniku bazy danych MongoDB.

Przykład:

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

Usługa MongoDB Atlas jako ujście

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 MongoDbAtlasSink. Tak
writeBehavior Opisuje sposób zapisywania danych w usłudze MongoDB Atlas. Dozwolone wartości: wstawianie i upsert.

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

Uwaga: usługa automatycznie generuje _id element dla dokumentu, jeśli _id element 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 Właściwość writeBatchSize kontroluje rozmiar dokumentów do zapisu w każdej partii. Możesz spróbować zwiększyć wartość parametru writeBatchSize , aby zwiększyć wydajność i zmniejszyć wartość, jeśli rozmiar dokumentu jest duży. Nie.
(wartość domyślna to 10 000)
writeBatchTimeout Czas oczekiwania na zakończenie operacji wstawiania wsadowego przed upływem limitu czasu. Dozwolona wartość to przedział czasu. Nie.
(wartość domyślna to 00:30:00 –30 minut)

Napiwek

Aby zaimportować dokumenty JSON zgodnie z rzeczywistym użyciem, zapoznaj się z sekcją Importowanie lub eksportowanie dokumentów JSON. Aby skopiować z danych w kształcie tabelarycznego, zapoznaj się z mapowaniem schematu.

Przykład

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

Importowanie i eksportowanie dokumentów JSON

Tego łącznika usługi MongoDB Atlas można łatwo użyć:

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

Aby uzyskać taką niezależną kopię schematu, pomiń sekcję "struktura" (nazywaną również schematem) w zestawie danych i mapowaniu schematu w działaniu kopiowania.

Mapowanie schematu

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

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