Kopiowanie danych z bazy danych MongoDB przy użyciu usługi Azure Data Factory lub Synapse Analytics (starsza wersja)

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 do kopiowania danych z bazy danych MongoDB. Jest on oparty na artykule omówienie działania kopiowania, który przedstawia ogólne omówienie działania kopiowania.

Ważne

Usługa wydała nowy łącznik bazy danych MongoDB, który zapewnia lepszą natywną obsługę bazy danych MongoDB w porównaniu z tą implementacją opartą na protokole ODBC, zapoznaj się z artykułem dotyczącym łącznika bazy danych MongoDB.

Obsługiwane możliwości

Dane z bazy danych MongoDB można skopiować do dowolnego obsługiwanego magazynu danych ujścia. Aby uzyskać listę magazynów danych obsługiwanych jako źródła/ujścia przez działanie kopiowania, zobacz tabelę Obsługiwane magazyny danych.

W szczególności ten łącznik bazy danych MongoDB obsługuje następujące funkcje:

  • MongoDB w wersji 2.4, 2.6, 3.0, 3.2, 3.4 i 3.6.
  • Kopiowanie danych przy użyciu uwierzytelniania podstawowego lub anonimowego .

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.

Środowisko Integration Runtime udostępnia wbudowany sterownik bazy danych MongoDB, dlatego nie trzeba ręcznie instalować żadnego sterownika podczas kopiowania danych z bazy danych MongoDB.

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

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

    Zrzut ekranu przedstawiający łącznik bazy danych MongoDB.

  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 bazy danych MongoDB.

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 bazy danych MongoDB.

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:

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na: MongoDb Tak
serwer Adres IP lub nazwa hosta serwera MongoDB. Tak
port Port TCP używany przez serwer MongoDB do nasłuchiwania połączeń klienckich. Nie (wartość domyślna to 27017)
databaseName Nazwa bazy danych MongoDB, do której chcesz uzyskać dostęp. Tak
authenticationType Typ uwierzytelniania używanego do nawiązywania połączenia z bazą danych MongoDB.
Dozwolone wartości to: Podstawowa i Anonimowa.
Tak
nazwa użytkownika Konto użytkownika w celu uzyskania dostępu do bazy danych MongoDB. Tak (jeśli jest używane uwierzytelnianie podstawowe).
hasło Hasło użytkownika. Oznacz to pole jako element SecureString w celu bezpiecznego przechowywania go lub odwołuj się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. Tak (jeśli jest używane uwierzytelnianie podstawowe).
authSource Nazwa bazy danych MongoDB, która ma być używana do sprawdzania poświadczeń na potrzeby uwierzytelniania. L.p. W przypadku uwierzytelniania podstawowego ustawieniem domyślnym jest użycie konta administratora i bazy danych określonej przy użyciu właściwości databaseName.
enableSsl Określa, czy połączenia z serwerem są szyfrowane przy użyciu protokołu TLS. Wartość domyślna to false. Nie.
allowSelfSignedServerCert Określa, czy zezwalać na certyfikaty z podpisem własnym z serwera. Wartość domyślna to false. 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": "MongoDBLinkedService",
    "properties": {
        "type": "MongoDb",
        "typeProperties": {
            "server": "<server name>",
            "databaseName": "<database name>",
            "authenticationType": "Basic",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "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 MongoDB:

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

Przykład:

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

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 bazy danych MongoDB.

MongoDB 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: MongoDbSource Tak
zapytanie Użyj niestandardowego zapytania SQL-92, aby odczytać dane. Na przykład: wybierz pozycję * z tabeli MyTable. Nie (jeśli określono wartość "collectionName" w zestawie danych)

Przykład:

"activities":[
    {
        "name": "CopyFromMongoDB",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<MongoDB input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "MongoDbSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Napiwek

Podczas określania zapytania SQL zwróć uwagę na format DateTime. Na przykład: SELECT * FROM Account WHERE LastModifiedDate >= '2018-06-01' AND LastModifiedDate < '2018-06-02' lub do użycia parametru SELECT * FROM Account WHERE LastModifiedDate >= '@{formatDateTime(pipeline().parameters.StartTime,'yyyy-MM-dd HH:mm:ss')}' AND LastModifiedDate < '@{formatDateTime(pipeline().parameters.EndTime,'yyyy-MM-dd HH:mm:ss')}'

Schemat według usługi Data Factory

Usługa Azure Data Factory wnioskuje schemat z kolekcji bazy danych MongoDB przy użyciu najnowszych 100 dokumentów w kolekcji. Jeśli te 100 dokumentów nie zawiera pełnego schematu, niektóre kolumny mogą być ignorowane podczas operacji kopiowania.

Mapowanie typów danych dla bazy danych MongoDB

Podczas kopiowania danych z bazy danych MongoDB następujące mapowania są używane z typów danych Bazy danych MongoDB do tymczasowych typów danych używanych wewnętrznie w usłudze. Zobacz Mapowania schematu i typu danych, aby dowiedzieć się, jak działanie kopiowania mapuje schemat źródłowy i typ danych na ujście.

Typ danych bazy danych MongoDB Typ danych usługi tymczasowej
Plik binarny Bajt[]
Wartość logiczna Wartość logiczna
Date DateTime
Liczbadouble Liczba rzeczywista
NumberInt Int32
NumberLong Int64
ObjectID String
String String
Identyfikator UUID Identyfikator GUID
Objekt Ponownie znormalizowane na spłaszczone kolumny z separatorem "_" jako separatorem zagnieżdżonym

Uwaga

Aby dowiedzieć się więcej o obsłudze tablic przy użyciu tabel wirtualnych, zapoznaj się z sekcją Obsługa typów złożonych przy użyciu tabel wirtualnych.

Obecnie następujące typy danych bazy danych MongoDB nie są obsługiwane: DBPointer, JavaScript, Max/Min key, Regular Expression, Symbol, Timestamp, Undefined.

Obsługa złożonych typów przy użyciu tabel wirtualnych

Usługa używa wbudowanego sterownika ODBC do nawiązywania połączenia z bazą danych MongoDB i kopiowania danych. W przypadku typów złożonych, takich jak tablice lub obiekty z różnymi typami w dokumentach, sterownik ponownie normalizuje dane w odpowiednich tabelach wirtualnych. W szczególności jeśli tabela zawiera takie kolumny, sterownik generuje następujące tabele wirtualne:

  • Tabela podstawowa zawierająca te same dane co rzeczywista tabela z wyjątkiem kolumn typu złożonego. Tabela podstawowa używa takiej samej nazwy jak rzeczywista tabela, którą reprezentuje.
  • Tabela wirtualna dla każdej kolumny typu złożonego, która rozszerza zagnieżdżone dane. Tabele wirtualne są nazwane przy użyciu nazwy rzeczywistej tabeli, separatora "_" i nazwy tablicy lub obiektu.

Tabele wirtualne odwołują się do danych w rzeczywistej tabeli, umożliwiając sterownikowi dostęp do danych, które nie są znormalizowane. Dostęp do zawartości tablic Bazy danych MongoDB można uzyskać, wykonując zapytania i łącząc tabele wirtualne.

Przykład

Na przykład tabela ExampleTable to tabela Bazy danych MongoDB zawierająca jedną kolumnę z tablicą obiektów w każdej komórce — Faktury i jedną kolumnę z tablicą typów skalarnych — klasyfikacje.

_id Nazwa klienta Faktury Poziom usługi Oceny
1111 ABC [{invoice_id:"123", item:"oven", price:"456", discount:"0.2"}, {invoice_id:"124", item:"oven", price: "1235", discount: "0.2"}] Srebrny [5,6]
2222 XYZ [{invoice_id:"135", item:"fridge", price: "12543", discount: "0.0"}] Złoty [1,2]

Sterownik wygenerowałby wiele tabel wirtualnych reprezentujących tę pojedynczą tabelę. Pierwsza tabela wirtualna to tabela podstawowa o nazwie "ExampleTable", pokazana w przykładzie. Tabela podstawowa zawiera wszystkie dane oryginalnej tabeli, ale dane z tablic zostały pominięte i są rozszerzane w tabelach wirtualnych.

_id Nazwa klienta Poziom usługi
1111 ABC Srebrny
2222 XYZ Złoty

W poniższych tabelach przedstawiono tabele wirtualne reprezentujące oryginalne tablice w przykładzie. Te tabele zawierają następujące elementy:

  • Odwołanie z powrotem do oryginalnej kolumny klucza podstawowego odpowiadającej wierszowi oryginalnej tablicy (za pośrednictwem kolumny _id)
  • Wskazanie położenia danych w oryginalnej tablicy
  • Rozwinięte dane dla każdego elementu w tablicy

Tabela "ExampleTable_Invoices":

_id ExampleTable_Invoices_dim1_idx invoice_id element price Discount
1111 0 123 toster 456 0,2
1111 1 124 piekarnik 1235 0,2
2222 0 135 lodówka 12543 0,0

Tabela "ExampleTable_Ratings":

_id ExampleTable_Ratings_dim1_idx ExampleTable_Ratings
1111 0 5
1111 1 6
2222 0 1
2222 1 2

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