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:
- Narzędzie do kopiowania danych
- Witryna Azure Portal
- Zestaw SDK platformy .NET
- Zestaw SDK języka Python
- Azure PowerShell
- Interfejs API REST
- Szablon usługi Azure Resource Manager
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.
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:
Wyszukaj pozycję Mongo i wybierz łącznik MongoDB.
Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.
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 |
Powiązana zawartość
Aby uzyskać listę magazynów danych obsługiwanych jako źródła i ujścia działania kopiowania, zobacz obsługiwane magazyny danych.