Kopiowanie danych do lub z usługi Azure Cosmos DB dla bazy danych MongoDB 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 potokach usługi Azure Data Factory i usługi Synapse Analytics do kopiowania danych z i do usługi Azure Cosmos DB dla bazy danych MongoDB. Artykuł opiera się na działaniu kopiowania, które przedstawia ogólne omówienie działania kopiowania.
Uwaga
Ten łącznik obsługuje tylko kopiowanie danych do/z usługi Azure Cosmos DB dla bazy danych MongoDB. W przypadku usługi Azure Cosmos DB for NoSQL zapoznaj się z łącznikiem usługi Azure Cosmos DB for NoSQL. Inne typy interfejsów API nie są obecnie obsługiwane.
Obsługiwane możliwości
Ten łącznik usługi Azure Cosmos DB dla bazy danych MongoDB 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) | ✓ |
(1) Środowisko Azure Integration Runtime (2) Self-hosted Integration Runtime
Dane z usługi Azure Cosmos DB dla bazy danych MongoDB można skopiować do dowolnego obsługiwanego magazynu danych ujścia lub skopiować dane z dowolnego obsługiwanego magazynu danych źródłowych do usługi Azure Cosmos DB for MongoDB. Aby uzyskać listę magazynów danych obsługiwanych przez działanie kopiowania jako źródła i ujścia, zobacz Obsługiwane magazyny danych i formaty.
Łącznik usługi Azure Cosmos DB dla bazy danych MongoDB umożliwia:
- Skopiuj dane z i do usługi Azure Cosmos DB dla bazy danych MongoDB.
- 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 zgodnie z instrukcjami do lub z plików JSON lub do lub z innej kolekcji usługi Azure Cosmos DB, zobacz Importowanie lub eksportowanie dokumentów JSON.
Rozpocznij
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 usługą Azure Cosmos DB dla bazy danych MongoDB przy użyciu interfejsu użytkownika
Wykonaj poniższe kroki, aby utworzyć połączoną usługę z usługą Azure Cosmos DB for 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 usługę Azure Cosmos DB dla bazy danych MongoDB i wybierz ten łącznik.
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, których można użyć do definiowania jednostek usługi Data Factory specyficznych dla usługi Azure Cosmos DB dla 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 Azure Cosmos DB dla bazy danych MongoDB:
Właściwości | Opis | Wymagania |
---|---|---|
type | Właściwość type musi być ustawiona na CosmosDbMongoDbApi. | Tak |
Parametry połączenia | Określ parametry połączenia dla usługi Azure Cosmos DB dla bazy danych MongoDB. Można ją znaleźć w witrynie Azure Portal —> bloku usługi Azure Cosmos DB —> podstawowej lub pomocniczej parametry połączenia. W przypadku wersji serwera 3.2 wzorzec ciągu to mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb . W przypadku wersji serwera w wersji 3.6 lub nowszej wzorzec ciągu to mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000&appName=@<cosmosdb-name>@ .Możesz również umieścić hasło w usłudze Azure Key Vault i ściągnąć password konfigurację z parametry połączenia. 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 |
isServerVersionAbove32 | Określ, czy wersja serwera jest wyższa niż 3.2. Dozwolone wartości to true i false(default). Spowoduje to określenie sterownika do użycia w usłudze. | 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": "CosmosDbMongoDBAPILinkedService",
"properties": {
"type": "CosmosDbMongoDbApi",
"typeProperties": {
"connectionString": "mongodb://<cosmosdb-name>:<password>@<cosmosdb-name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb",
"database": "myDatabase",
"isServerVersionAbove32": "false"
},
"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 usługi Azure Cosmos DB dla bazy danych MongoDB:
Właściwości | Opis | Wymagania |
---|---|---|
type | Właściwość type zestawu danych musi być ustawiona na CosmosDbMongoDbApiCollection. | Tak |
collectionName | Nazwa kolekcji usługi Azure Cosmos DB. | Tak |
Przykład
{
"name": "CosmosDbMongoDBAPIDataset",
"properties": {
"type": "CosmosDbMongoDbApiCollection",
"typeProperties": {
"collectionName": "<collection name>"
},
"schema": [],
"linkedServiceName":{
"referenceName": "<Azure Cosmos DB for MongoDB linked service name>",
"type": "LinkedServiceReference"
}
}
}
Właściwości działania kopiowania
Ta sekcja zawiera listę właściwości, które obsługują źródło i ujście usługi Azure Cosmos DB dla bazy danych MongoDB.
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 dla bazy danych 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 CosmosDbMongoDbApiSource. | 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 baza MongoDB 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 bazy danych MongoDB. 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 ADF 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": "CopyFromCosmosDBMongoDBAPI",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure Cosmos DB for MongoDB input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "CosmosDbMongoDbApiSource",
"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 Azure Cosmos DB dla bazy danych MongoDB 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 CosmosDbMongoDbApiSink. | 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 _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": "CopyToCosmosDBMongoDBAPI",
"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": "CosmosDbMongoDbApiSink",
"writeBehavior": "upsert"
}
}
}
]
Importowanie i eksportowanie dokumentów JSON
Za pomocą tego łącznika usługi Azure Cosmos DB można łatwo wykonywać następujące czynności:
- 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 bazy danych MongoDB, usługi Azure Blob Storage, usługi 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.
Mapowanie schematu
Aby skopiować dane z usługi Azure Cosmos DB dla bazy danych MongoDB do ujścia tabelarycznego lub odwróconego, zapoznaj się z mapowaniem schematu.
W szczególności do pisania w usłudze Azure Cosmos DB, aby upewnić się, że usługa Azure Cosmos DB jest wypełniona odpowiednim identyfikatorem obiektu z danych źródłowych, na przykład masz kolumnę "id" w tabeli bazy danych SQL i chcesz użyć wartości tego jako identyfikatora dokumentu w bazie danych MongoDB na potrzeby wstawiania/upsert, musisz ustawić odpowiednie mapowanie schematu zgodnie z definicją trybu ścisłego bazy danych MongoDB (_id.$oid
) w następujący sposób:
Po wykonaniu działania kopiowania poniżej identyfikatora ObjectId BSON jest generowany w ujściu:
{
"_id": ObjectId("592e07800000000000000000")
}
Powiązana zawartość
Aby uzyskać listę magazynów danych obsługiwanych przez działanie kopiowania jako źródła i ujścia, zobacz obsługiwane magazyny danych.