Migrowanie danych do usługi Azure Cosmos DB za pomocą narzędzia do migracji danychUse Data migration tool to migrate your data to Azure Cosmos DB

Ten samouczek zawiera instrukcje dotyczące korzystania z narzędzia do migracji danych Azure Cosmos DB, które umożliwia importowanie danych z różnych źródeł do kontenerów i tabel usługi Azure Cosmos.This tutorial provides instructions on using the Azure Cosmos DB Data Migration tool, which can import data from various sources into Azure Cosmos containers and tables. Dane można importować z plików JSON, plików CSV, kodu SQL, bazy danych MongoDB, usługi Azure Table Storage, bazy danych Amazon DynamoDB, a nawet z kolekcji interfejsu API SQL usługi Azure Cosmos DB.You can import from JSON files, CSV files, SQL, MongoDB, Azure Table storage, Amazon DynamoDB, and even Azure Cosmos DB SQL API collections. Aby używać tych danych z usługą Azure Cosmos DB, należy przeprowadzić ich migrację do kolekcji i tabel.You migrate that data to collections and tables for use with Azure Cosmos DB. Narzędzie do migracji danych może być również używane podczas migracji z kolekcji z pojedynczą partycją do kolekcji z wieloma partycjami na potrzeby interfejsu SQL API.The Data Migration tool can also be used when migrating from a single partition collection to a multi-partition collection for the SQL API.

Który interfejs API będzie używany w usłudze Azure Cosmos DB?Which API are you going to use with Azure Cosmos DB?

Ten samouczek obejmuje następujące zadania:This tutorial covers the following tasks:

  • Instalowanie narzędzia do migracji danychInstalling the Data Migration tool
  • Importowanie danych z różnych źródeł danychImporting data from different data sources
  • Eksportowanie z usługi Azure Cosmos DB do formatu JSONExporting from Azure Cosmos DB to JSON

Wymagania wstępnePrerequisites

Przed wykonaniem instrukcji zawartych w tym artykule upewnij się, że zostały wykonane następujące kroki:Before following the instructions in this article, ensure that you do the following steps:

  • Zainstalowanie programu Microsoft .NET Framework 4.51 lub nowszego.Install Microsoft .NET Framework 4.51 or higher.

  • Zwiększanie przepływności: czas trwania migracji danych zależy od przepływności skonfigurowanej dla pojedynczej kolekcji lub dla zestawu kolekcji.Increase throughput: The duration of your data migration depends on the amount of throughput you set up for an individual collection or a set of collections. Pamiętaj o zwiększeniu przepływności w przypadku większych migracji danych.Be sure to increase the throughput for larger data migrations. Po ukończeniu migracji zmniejsz przepływność, aby ograniczyć koszty.After you've completed the migration, decrease the throughput to save costs. Aby uzyskać więcej informacji na temat zwiększania przepływności w witrynie Azure Portal, zobacz poziomy wydajności i warstwy cenowe w usłudze Azure Cosmos DB.For more information about increasing throughput in the Azure portal, see performance levels and pricing tiers in Azure Cosmos DB.

  • Tworzenie zasobów usługi Azure Cosmos DB: Przed rozpoczęciem migracji danych utwórz wstępnie wszystkie kolekcje w witrynie Azure Portal.Create Azure Cosmos DB resources: Before you start the migrating data, pre-create all your collections from the Azure portal. Aby przeprowadzić migrację do konta Azure Cosmos DB, które ma przepływność na poziomie bazy danych, należy podać klucz partycji podczas tworzenia kontenerów usługi Azure Cosmos.To migrate to an Azure Cosmos DB account that has database level throughput, provide a partition key when you create the Azure Cosmos containers.

OmówienieOverview

Narzędzie do migracji danych to rozwiązanie typu open source, które importuje dane do usługi Azure Cosmos DB z różnych źródeł, takich jak:The Data Migration tool is an open-source solution that imports data to Azure Cosmos DB from a variety of sources, including:

  • Pliki JSONJSON files
  • MongoDBMongoDB
  • Oprogramowanie SQL ServerSQL Server
  • Pliki CSVCSV files
  • Azure Table StorageAzure Table storage
  • Baza danych Amazon DynamoDBAmazon DynamoDB
  • HBaseHBase
  • Kontenery usługi Azure CosmosAzure Cosmos containers

Narzędzie do importowania ma graficzny interfejs użytkownika (dtui.exe), ale może być również zarządzane z poziomu wiersza polecenia (dt.exe).While the import tool includes a graphical user interface (dtui.exe), it can also be driven from the command-line (dt.exe). W rzeczywistości istnieje opcja wyprowadzenia skojarzonego polecenia po skonfigurowaniu importu za pośrednictwem interfejsu użytkownika.In fact, there's an option to output the associated command after setting up an import through the UI. Tabelaryczne źródła danych, takie jak program SQL Server lub pliki CSV, możesz przekształcać tak, aby podczas importowania tworzyć relacje hierarchiczne (dokumenty podrzędne).You can transform tabular source data, such as SQL Server or CSV files, to create hierarchical relationships (subdocuments) during import. W dalszej części artykułu przedstawiamy dalsze informacje na temat opcji źródeł, przykładowe polecenia do importowania z poszczególnych źródeł, opcje docelowe oraz informacje o wyświetlaniu wyników importu.Keep reading to learn more about source options, sample commands to import from each source, target options, and viewing import results.

InstalacjaInstallation

Kod źródłowy narzędzia do migracji jest dostępny w witrynie GitHub w tym repozytorium.The migration tool source code is available on GitHub in this repository. Możesz pobrać i skompilować rozwiązanie lokalnie lub pobrać wstępnie skompilowany plik binarny, a następnie uruchomić jeden z plików:You can download and compile the solution locally, or download a pre-compiled binary, then run either:

  • Dtui.exe: Wersja narzędzia z interfejsem graficznymDtui.exe: Graphical interface version of the tool
  • DT.exe: Wersja narzędzia dla wiersza poleceniaDt.exe: Command-line version of the tool

Wybierz źródło danychSelect data source

Po zainstalowaniu narzędzia można rozpocząć importowanie danych.Once you've installed the tool, it's time to import your data. Jakiego rodzaju dane chcesz importować?What kind of data do you want to import?

Importowanie plików JSONImport JSON files

Opcja importera źródła dla plików JSON umożliwia importowanie plików JSON z co najmniej jednym dokumentem lub plików JSON, z których każdy zawiera tablicę dokumentów JSON.The JSON file source importer option allows you to import one or more single document JSON files or JSON files that each have an array of JSON documents. W przypadku dodawania folderów zawierających pliki JSON do zaimportowania możesz wybrać opcję cyklicznego wyszukiwania plików w podfolderach.When adding folders that have JSON files to import, you have the option of recursively searching for files in subfolders.

Zrzut ekranu przedstawiający opcje źródła dla plików JSON — narzędzia do migracji bazy danych

Parametry połączenia mają następujący format:The connection string is in the following format:

AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>

  • <CosmosDB Endpoint> Jest to identyfikator URI punktu końcowego.The <CosmosDB Endpoint> is the endpoint URI. Tę wartość można uzyskać z Azure Portal.You can get this value from the Azure portal. Przejdź do swojego konta usługi Azure Cosmos.Navigate to your Azure Cosmos account. Otwórz okienko Przegląd i skopiuj wartość identyfikatora URI .Open the Overview pane and copy the URI value.
  • Jest to "hasło" lub klucz podstawowy. <AccountKey>The <AccountKey> is the "Password" or PRIMARY KEY. Tę wartość można uzyskać z Azure Portal.You can get this value from the Azure portal. Przejdź do swojego konta usługi Azure Cosmos.Navigate to your Azure Cosmos account. Otwórz okienko Parametry połączenia lub klucze i skopiuj wartość "hasło" lub klucz podstawowy .Open the Connection Strings or Keys pane, and copy the "Password" or PRIMARY KEY value.
  • <CosmosDB Database> Nazwa bazy danych CosmosDB.The <CosmosDB Database> is the CosmosDB database name.

Przykład: AccountEndpoint=https://myCosmosDBName.documents.azure.com:443/;AccountKey=wJmFRYna6ttQ79ATmrTMKql8vPri84QBiHTt6oinFkZRvoe7Vv81x9sn6zlVlBY10bEPMgGM982wfYXpWXWB9w==;Database=myDatabaseNameExample: AccountEndpoint=https://myCosmosDBName.documents.azure.com:443/;AccountKey=wJmFRYna6ttQ79ATmrTMKql8vPri84QBiHTt6oinFkZRvoe7Vv81x9sn6zlVlBY10bEPMgGM982wfYXpWXWB9w==;Database=myDatabaseName

Uwaga

Użyj polecenia Weryfikuj, aby upewnić się, że można uzyskać dostęp do konta Cosmos DB określonego w polu Parametry połączenia.Use the Verify command to ensure that the Cosmos DB account specified in the connection string field can be accessed.

Oto niektóre przykłady wiersza polecenia dotyczące importowania plików JSON:Here are some command-line samples to import JSON files:

#Import a single JSON file
dt.exe /s:JsonFile /s.Files:.\Sessions.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Sessions /t.CollectionThroughput:2500

#Import a directory of JSON files
dt.exe /s:JsonFile /s.Files:C:\TESessions\*.json /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Sessions /t.CollectionThroughput:2500

#Import a directory (including sub-directories) of JSON files
dt.exe /s:JsonFile /s.Files:C:\LastFMMusic\**\*.json /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Music /t.CollectionThroughput:2500

#Import a directory (single), directory (recursive), and individual JSON files
dt.exe /s:JsonFile /s.Files:C:\Tweets\*.*;C:\LargeDocs\**\*.*;C:\TESessions\Session48172.json;C:\TESessions\Session48173.json;C:\TESessions\Session48174.json;C:\TESessions\Session48175.json;C:\TESessions\Session48177.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:subs /t.CollectionThroughput:2500

#Import a single JSON file and partition the data across 4 collections
dt.exe /s:JsonFile /s.Files:D:\\CompanyData\\Companies.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:comp[1-4] /t.PartitionKey:name /t.CollectionThroughput:2500

Importowanie z bazy danych MongoDBImport from MongoDB

Ważne

W przypadku importowania do konta usługi Cosmos skonfigurowanego za pomocą interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB postępuj zgodnie z tymi instrukcjami.If you're importing to a Cosmos account configured with Azure Cosmos DB's API for MongoDB, follow these instructions.

Dzięki opcji importera źródła dla bazy danych MongoDB możesz importować z pojedynczej kolekcji bazy danych MongoDB, opcjonalnie filtrować dokumenty za pomocą zapytania i modyfikować strukturę dokumentu przy użyciu projekcji.With the MongoDB source importer option, you can import from a single MongoDB collection, optionally filter documents using a query, and modify the document structure by using a projection.

Zrzut ekranu przedstawiający opcje źródła dla bazy danych MongoDB

Parametry połączenia mają standardowy format bazy danych MongoDB:The connection string is in the standard MongoDB format:

mongodb://<dbuser>:<dbpassword>@<host>:<port>/<database>

Uwaga

Aby upewnić się, że wystąpienie bazy danych MongoDB określone w polu parametrów połączenia jest dostępne, użyj polecenia weryfikacji.Use the Verify command to ensure that the MongoDB instance specified in the connection string field can be accessed.

Wprowadź nazwę kolekcji, z której dane zostaną zaimportowane.Enter the name of the collection from which data will be imported. Opcjonalnie możesz określić lub udostępnić plik dla zapytania, taki jak {pop: {$gt:5000}}, lub projekcję, taką jak {loc:0}, na potrzeby filtrowania i kształtowania importowanych danych.You may optionally specify or provide a file for a query, such as {pop: {$gt:5000}}, or a projection, such as {loc:0}, to both filter and shape the data that you're importing.

Oto niektóre przykłady wiersza polecenia dotyczące importowania z bazy danych MongoDB:Here are some command-line samples to import from MongoDB:

#Import all documents from a MongoDB collection
dt.exe /s:MongoDB /s.ConnectionString:mongodb://<dbuser>:<dbpassword>@<host>:<port>/<database> /s.Collection:zips /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:BulkZips /t.IdField:_id /t.CollectionThroughput:2500

#Import documents from a MongoDB collection which match the query and exclude the loc field
dt.exe /s:MongoDB /s.ConnectionString:mongodb://<dbuser>:<dbpassword>@<host>:<port>/<database> /s.Collection:zips /s.Query:{pop:{$gt:50000}} /s.Projection:{loc:0} /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:BulkZipsTransform /t.IdField:_id/t.CollectionThroughput:2500

Importowanie plików eksportu bazy danych MongoDBImport MongoDB export files

Ważne

W przypadku importowania do konta usługi Azure Cosmos DB z obsługą bazy danych MongoDB postępuj zgodnie z następującymi instrukcjami.If you're importing to an Azure Cosmos DB account with support for MongoDB, follow these instructions.

Opcja importera źródła dla pliku JSON eksportu bazy danych MongoDB umożliwia importowanie co najmniej jednego pliku JSON utworzonego przez narzędzie mongoexport.The MongoDB export JSON file source importer option allows you to import one or more JSON files produced from the mongoexport utility.

Zrzut ekranu przedstawiający opcje źródła eksportu bazy danych MongoDB

W przypadku dodawania folderów zawierających pliki JSON eksportu bazy danych MongoDB do zaimportowania możesz wybrać opcję cyklicznego wyszukiwania plików w podfolderach.When adding folders that have MongoDB export JSON files for import, you have the option of recursively searching for files in subfolders.

Oto przykład wiersza polecenia dotyczący importowania z plików JSON eksportu bazy danych MongoDB:Here is a command-line sample to import from MongoDB export JSON files:

dt.exe /s:MongoDBExport /s.Files:D:\mongoemployees.json /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:employees /t.IdField:_id /t.Dates:Epoch /t.CollectionThroughput:2500

Importowanie z programu SQL ServerImport from SQL Server

Opcja importera źródła SQL umożliwia importowanie z pojedynczej bazy danych programu SQL Server i opcjonalnie filtrowanie rekordów do zaimportowania przy użyciu zapytania.The SQL source importer option allows you to import from an individual SQL Server database and optionally filter the records to be imported using a query. Ponadto można zmodyfikować strukturę dokumentu, określając separator zagnieżdżania (więcej informacji na temat można znaleźć w dalszej części artykułu).In addition, you can modify the document structure by specifying a nesting separator (more on that in a moment).

Zrzut ekranu przedstawiający opcje źródła dla kodu SQL — narzędzia do migracji bazy danych

Format parametrów połączenia to standardowy format parametrów połączenia SQL.The format of the connection string is the standard SQL connection string format.

Uwaga

Aby upewnić się, że wystąpienie programu SQL Server określone w polu parametrów połączenia jest dostępne, należy użyć polecenia weryfikacji.Use the Verify command to ensure that the SQL Server instance specified in the connection string field can be accessed.

Właściwość separatora zagnieżdżania służy do tworzenia relacji hierarchicznych (dokumentów podrzędnych) podczas importowania.The nesting separator property is used to create hierarchical relationships (sub-documents) during import. Rozważmy następujące zapytanie SQL:Consider the following SQL query:

select CAST(BusinessEntityID AS varchar) as Id, Name, AddressType as [Address.AddressType], AddressLine1 as [Address.AddressLine1], City as [Address.Location.City], StateProvinceName as [Address.Location.StateProvinceName], PostalCode as [Address.PostalCode], CountryRegionName as [Address.CountryRegionName] from Sales.vStoreWithAddresses WHERE AddressType='Main Office'

Zwraca ono następujące wyniki (częściowe):Which returns the following (partial) results:

Zrzut ekranu przedstawiający wyniki zapytania SQL

Zwróć uwagę na aliasy, takie jak Address.AddressType i Address.Location.StateProvinceName.Note the aliases such as Address.AddressType and Address.Location.StateProvinceName. Określając separator zagnieżdżania „.”, narzędzie importowania tworzy dokumenty podrzędne Address i Address.Location podczas importu.By specifying a nesting separator of '.', the import tool creates Address and Address.Location subdocuments during the import. Oto przykład dokumentu wynikowego w usłudze Azure Cosmos DB:Here is an example of a resulting document in Azure Cosmos DB:

{ "id": "956", "Name": "Finer Sales and Service", "Address": { "AddressType": "Main Office", "AddressLine1": "#500-75 O'Connor Street", "Location": { "City": "Ottawa", "StateProvinceName": "Ontario" }, "PostalCode": "K4B 1S2", "CountryRegionName": "Canada" } }{ "id": "956", "Name": "Finer Sales and Service", "Address": { "AddressType": "Main Office", "AddressLine1": "#500-75 O'Connor Street", "Location": { "City": "Ottawa", "StateProvinceName": "Ontario" }, "PostalCode": "K4B 1S2", "CountryRegionName": "Canada" } }

Oto niektóre przykłady wiersza polecenia dotyczące importowania z programu SQL Server:Here are some command-line samples to import from SQL Server:

#Import records from SQL which match a query
dt.exe /s:SQL /s.ConnectionString:"Data Source=<server>;Initial Catalog=AdventureWorks;User Id=advworks;Password=<password>;" /s.Query:"select CAST(BusinessEntityID AS varchar) as Id, * from Sales.vStoreWithAddresses WHERE AddressType='Main Office'" /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Stores /t.IdField:Id /t.CollectionThroughput:2500

#Import records from sql which match a query and create hierarchical relationships
dt.exe /s:SQL /s.ConnectionString:"Data Source=<server>;Initial Catalog=AdventureWorks;User Id=advworks;Password=<password>;" /s.Query:"select CAST(BusinessEntityID AS varchar) as Id, Name, AddressType as [Address.AddressType], AddressLine1 as [Address.AddressLine1], City as [Address.Location.City], StateProvinceName as [Address.Location.StateProvinceName], PostalCode as [Address.PostalCode], CountryRegionName as [Address.CountryRegionName] from Sales.vStoreWithAddresses WHERE AddressType='Main Office'" /s.NestingSeparator:. /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:StoresSub /t.IdField:Id /t.CollectionThroughput:2500

Importowanie plików CSV i konwertowanie formatu CSV na JSONImport CSV files and convert CSV to JSON

Opcja importera źródła dla pliku CSV umożliwia importowanie co najmniej jednego pliku CSV.The CSV file source importer option enables you to import one or more CSV files. W przypadku dodawania folderów zawierających pliki CSV do zaimportowania możesz wybrać opcję cyklicznego wyszukiwania plików w podfolderach.When adding folders that have CSV files for import, you have the option of recursively searching for files in subfolders.

Zrzut ekranu przedstawiający opcje źródła CSV — CSV do JSON

Podobnie jak w przypadku źródła kodu SQL, właściwość separatora zagnieżdżania może być używana do tworzenia relacji hierarchicznych (dokumentów podrzędnych) podczas importowania.Similar to the SQL source, the nesting separator property may be used to create hierarchical relationships (sub-documents) during import. Rozważmy następujące wiersze danych i wiersz nagłówka CSV:Consider the following CSV header row and data rows:

Zrzut ekranu przedstawiający przykładowe rekordy CSV — CSV do JSON

Zwróć uwagę na aliasy, takie jak DomainInfo.Domain_Name i RedirectInfo.Redirecting.Note the aliases such as DomainInfo.Domain_Name and RedirectInfo.Redirecting. Określając separator zagnieżdżania „.”, narzędzie importowania utworzy dokumenty podrzędne DomainInfo i RedirectInfo podczas importu.By specifying a nesting separator of '.', the import tool will create DomainInfo and RedirectInfo subdocuments during the import. Oto przykład dokumentu wynikowego w usłudze Azure Cosmos DB:Here is an example of a resulting document in Azure Cosmos DB:

{ "DomainInfo": { "Domain_Name": "Acus.gov", "Domain_Name_Address": "https://www.Acus.gov"}, "Federalny Urząd": "Administrative Conference of the United States", "RedirectInfo": { "Redirecting": "0", "Redirect_Destination": "" }, "id": "9cc565c5-ebcd-1c03-ebd3-cc3e2ecd814d" }{ "DomainInfo": { "Domain_Name": "ACUS.GOV", "Domain_Name_Address": "https://www.ACUS.GOV" }, "Federal Agency": "Administrative Conference of the United States", "RedirectInfo": { "Redirecting": "0", "Redirect_Destination": "" }, "id": "9cc565c5-ebcd-1c03-ebd3-cc3e2ecd814d" }

Narzędzie importowania próbuje wywnioskować informacje dotyczące typu dla wartości bez cudzysłowów w plikach CSV (wartości w cudzysłowie są zawsze traktowane jak ciągi).The import tool tries to infer type information for unquoted values in CSV files (quoted values are always treated as strings). Typy są identyfikowane w następującej kolejności: liczba, data/godzina, wartość logiczna.Types are identified in the following order: number, datetime, boolean.

Istnieją dwie kwestie, o których warto wspomnieć w związku z importem plików CSV:There are two other things to note about CSV import:

  1. Domyślnie wartości bez cudzysłowów są zawsze przycinane o tabulatory i spacje, a wartości w cudzysłowie są zachowywane w oryginalnej postaci.By default, unquoted values are always trimmed for tabs and spaces, while quoted values are preserved as-is. To zachowanie można przesłonić przy użyciu pola wyboru Przytnij wartości w cudzysłowie lub opcji wiersza polecenia /s.TrimQuoted.This behavior can be overridden with the Trim quoted values checkbox or the /s.TrimQuoted command-line option.
  2. Domyślnie wartość null bez cudzysłowów jest traktowana jako wartość null.By default, an unquoted null is treated as a null value. To zachowanie można przesłonić (czyli traktować wartość null bez cudzysłowów jako ciąg „null”) przy użyciu pola wyboru Traktuj wartość NULL bez cudzysłowów jako ciąg lub opcji wiersza polecenia /s.NoUnquotedNulls.This behavior can be overridden (that is, treat an unquoted null as a "null" string) with the Treat unquoted NULL as string checkbox or the /s.NoUnquotedNulls command-line option.

Oto przykład wiersza polecenia dotyczący importowania danych CSV:Here is a command-line sample for CSV import:

dt.exe /s:CsvFile /s.Files:.\Employees.csv /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:Employees /t.IdField:EntityID /t.CollectionThroughput:2500

Importowanie z usługi Azure Table StorageImport from Azure Table storage

Opcja importera źródła dla usługi Azure Table Storage umożliwia importowanie z pojedynczej tabeli usługi Azure Table Storage.The Azure Table storage source importer option allows you to import from an individual Azure Table storage table. Opcjonalnie można filtrować jednostki tabeli do zaimportowania.Optionally, you can filter the table entities to be imported.

Dane, które zostały zaimportowane z usługi Azure Table Storage, możesz wyprowadzić do tabel i jednostek usługi Azure Cosmos DB, aby używać ich z interfejsem API tabel.You may output data that was imported from Azure Table Storage to Azure Cosmos DB tables and entities for use with the Table API. Zaimportowane dane można także wyprowadzać do kolekcji i dokumentów, aby używać ich z interfejsem API SQL.Imported data can also be output to collections and documents for use with the SQL API. Jednak interfejs API tabel jest dostępny w narzędziu wiersza polecenia tylko jako element docelowy.However, Table API is only available as a target in the command-line utility. Nie można wyeksportować interfejsu API tabel przy użyciu interfejsu użytkownika narzędzia migracji danych.You can't export to Table API by using the Data Migration tool user interface. Aby uzyskać więcej informacji, zobacz Import data for use with the Azure Cosmos DB Table API (Importowanie danych do użycia z interfejsem Table API usługi Azure Cosmos DB).For more information, see Import data for use with the Azure Cosmos DB Table API.

Zrzut ekranu przedstawiający opcje źródła dla usługi Azure Table Storage

Format parametrów połączenia usługi Azure Table Storage to:The format of the Azure Table storage connection string is:

DefaultEndpointsProtocol=<protocol>;AccountName=<Account Name>;AccountKey=<Account Key>;

Uwaga

Aby upewnić się, że wystąpienie usługi Azure Table Storage określone w polu parametrów połączenia jest dostępne, należy użyć polecenia weryfikacji.Use the Verify command to ensure that the Azure Table storage instance specified in the connection string field can be accessed.

Wprowadź nazwę tabeli platformy Azure, z której chcesz importować dane.Enter the name of the Azure table from to import from. Możesz opcjonalnie określić filtr.You may optionally specify a filter.

Opcja importera źródła dla usługi Azure Table Storage ma następujące opcje dodatkowe:The Azure Table storage source importer option has the following additional options:

  1. Uwzględnij pola wewnętrzneInclude Internal Fields
    1. Wszystkie — uwzględnianie wszystkich pól wewnętrznych (PartitionKey, RowKey i Znacznik czasu)All - Include all internal fields (PartitionKey, RowKey, and Timestamp)
    2. Brak — wykluczanie wszystkich pól wewnętrznychNone - Exclude all internal fields
    3. RowKey — uwzględnianie tylko pola RowKeyRowKey - Only include the RowKey field
  2. Wybieranie kolumnSelect Columns
    1. Filtry usługi Azure Table Storage nie obsługują projekcji.Azure Table storage filters don't support projections. Jeśli chcesz zaimportować tylko określone właściwości jednostek usługi Azure Table, dodaj je do listy Wybierz kolumny.If you want to only import specific Azure Table entity properties, add them to the Select Columns list. Wszystkie inne właściwości jednostek zostaną zignorowane.All other entity properties are ignored.

Oto przykład wiersza polecenia dotyczący importowania danych z usługi Azure Table Storage:Here is a command-line sample to import from Azure Table storage:

dt.exe /s:AzureTable /s.ConnectionString:"DefaultEndpointsProtocol=https;AccountName=<Account Name>;AccountKey=<Account Key>" /s.Table:metrics /s.InternalFields:All /s.Filter:"PartitionKey eq 'Partition1' and RowKey gt '00001'" /s.Projection:ObjectCount;ObjectSize  /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:metrics /t.CollectionThroughput:2500

Importowanie z bazy danych Amazon DynamoDBImport from Amazon DynamoDB

Opcja importera źródła bazy danych Amazon DynamoDB umożliwia importowanie z pojedynczej tabeli Amazon DynamoDB.The Amazon DynamoDB source importer option allows you to import from a single Amazon DynamoDB table. Opcjonalnie może ona filtrować jednostki do zaimportowania.It can optionally filter the entities to be imported. Udostępniono kilka szablonów, aby konfigurowanie importu było jak najprostsze.Several templates are provided so that setting up an import is as easy as possible.

Zrzut ekranu przedstawiający opcje źródła dla bazy danych Amazon DynamoDB — narzędzia do migracji bazy danych

Zrzut ekranu przedstawiający opcje źródła dla bazy danych Amazon DynamoDB — narzędzia do migracji bazy danych

Format parametrów połączenia dla bazy danych Amazon DynamoDB to:The format of the Amazon DynamoDB connection string is:

ServiceURL=<Service Address>;AccessKey=<Access Key>;SecretKey=<Secret Key>;

Uwaga

Aby upewnić się, że wystąpienie bazy danych Amazon DynamoDB określone w polu parametrów połączenia jest dostępne, użyj polecenia weryfikacji.Use the Verify command to ensure that the Amazon DynamoDB instance specified in the connection string field can be accessed.

Oto przykład wiersza polecenia służący do importowania danych z bazy danych Amazon DynamoDB:Here is a command-line sample to import from Amazon DynamoDB:

dt.exe /s:DynamoDB /s.ConnectionString:ServiceURL=https://dynamodb.us-east-1.amazonaws.com;AccessKey=<accessKey>;SecretKey=<secretKey> /s.Request:"{   """TableName""": """ProductCatalog""" }" /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<Azure Cosmos DB Endpoint>;AccountKey=<Azure Cosmos DB Key>;Database=<Azure Cosmos database>;" /t.Collection:catalogCollection /t.CollectionThroughput:2500

Importowanie z usługi Azure Blob StorageImport from Azure Blob storage

Opcje importera źródła dla pliku JSON, pliku eksportu bazy danych MongoDB i pliku CSV umożliwiają importowanie co najmniej jednego pliku z usług Azure Blob Storage.The JSON file, MongoDB export file, and CSV file source importer options allow you to import one or more files from Azure Blob storage. Po określeniu adresu URL kontenera obiektów blob i klucza konta wprowadź wyrażenie regularne, aby wybrać pliki do zaimportowania.After specifying a Blob container URL and Account Key, provide a regular expression to select the file(s) to import.

Zrzut ekranu przedstawiający opcje źródła dla plików obiektów blob

Oto przykład wiersza polecenia dotyczący importowania plików JSON z usługi Azure Blob Storage:Here is command-line sample to import JSON files from Azure Blob storage:

dt.exe /s:JsonFile /s.Files:"blobs://<account key>@account.blob.core.windows.net:443/importcontainer/.*" /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:doctest

Importowanie z kolekcji interfejsu SQL APIImport from a SQL API collection

Opcja importera źródła Azure Cosmos DB umożliwia importowanie danych z co najmniej jednego kontenera usługi Azure Cosmos i opcjonalne filtrowanie dokumentów przy użyciu zapytania.The Azure Cosmos DB source importer option allows you to import data from one or more Azure Cosmos containers and optionally filter documents using a query.

Zrzut ekranu przedstawiający opcje źródła dla usługi Azure Cosmos DB

Format parametrów połączenia usługi Azure Cosmos DB to:The format of the Azure Cosmos DB connection string is:

AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;

Parametry połączenia konta usługi Azure Cosmos DB możesz pobrać ze strony Klucze w witrynie Azure Portal, zgodnie z opisem w artykule Zarządzanie kontami bazy danych w usłudze Azure Cosmos DB.You can retrieve the Azure Cosmos DB account connection string from the Keys page of the Azure portal, as described in How to manage an Azure Cosmos DB account. Jednak nazwę bazy danych należy dołączyć do parametrów połączenia w następującym formacie:However, the name of the database needs to be appended to the connection string in the following format:

Database=<CosmosDB Database>;

Uwaga

Aby upewnić się, że wystąpienie usługi Azure Cosmos DB określone w polu parametrów połączenia jest dostępne, użyj polecenia weryfikacji.Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

Aby zaimportować z jednego kontenera usługi Azure Cosmos, wprowadź nazwę kolekcji, z której mają zostać zaimportowane dane.To import from a single Azure Cosmos container, enter the name of the collection to import data from. Aby zaimportować z więcej niż jednego kontenera usługi Azure Cosmos, podaj wyrażenie regularne zgodne z co najmniej jedną nazwą kolekcji (na przykład collection01 | collection02 | collection03).To import from more than one Azure Cosmos container, provide a regular expression to match one or more collection names (for example, collection01 | collection02 | collection03). Opcjonalnie możesz określić lub udostępnić plik dla zapytania na potrzeby filtrowania i kształtowania importowanych danych.You may optionally specify, or provide a file for, a query to both filter and shape the data that you're importing.

Uwaga

Ponieważ w polu kolekcji są akceptowane wyrażenia regularne, jeśli import odbywa się z pojedynczej kolekcji, której nazwa zawiera znaki wyrażenia regularnego, te znaki muszą odpowiednio zmienić znaczenie.Since the collection field accepts regular expressions, if you're importing from a single collection whose name has regular expression characters, then those characters must be escaped accordingly.

Opcja importera źródła dla usługi Azure Cosmos DB ma następujące opcje zaawansowane:The Azure Cosmos DB source importer option has the following advanced options:

  1. Uwzględnij pola wewnętrzne: Określa, czy podczas eksportu mają być uwzględniane właściwości systemu dokumentów usługi Azure Cosmos DB (np. _rid, _ts).Include Internal Fields: Specifies whether or not to include Azure Cosmos DB document system properties in the export (for example, _rid, _ts).
  2. Liczba ponownych prób przy niepowodzeniu: Określa, ile razy ma zostać ponowiona próba nawiązania połączenia z usługą Azure Cosmos DB w przypadku przejściowych niepowodzeń (np. zakłócenia łączności sieciowej).Number of Retries on Failure: Specifies the number of times to retry the connection to Azure Cosmos DB in case of transient failures (for example, network connectivity interruption).
  3. Interwał ponownych prób: Określa, jak długo trzeba czekać między ponownymi próbami nawiązania połączenia z usługą Azure Cosmos DB w przypadku przejściowych niepowodzeń (np. zakłócenia łączności sieciowej).Retry Interval: Specifies how long to wait between retrying the connection to Azure Cosmos DB in case of transient failures (for example, network connectivity interruption).
  4. Tryb połączenia: Określa tryb połączenia do użycia z usługą Azure Cosmos DB.Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. Dostępne opcje to DirectTcp, DirectHttps i Gateway.The available choices are DirectTcp, DirectHttps, and Gateway. Tryby połączenia bezpośredniego są szybsze, ale tryb bramy jest korzystniejszy dla zapory, ponieważ używa tylko portu 443.The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Zrzut ekranu przedstawiający zaawansowane opcje źródła dla usługi Azure Cosmos DB

Porada

Narzędzie importowania jest domyślnie ustawiane na tryb połączenia DirectTcp.The import tool defaults to connection mode DirectTcp. Jeśli występują problemy z zaporą, przełącz się do trybu połączenia Gateway, ponieważ wymaga on tylko portu 443.If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

Oto niektóre przykłady wiersza polecenia dotyczące importowania z usługi Azure Cosmos DB:Here are some command-line samples to import from Azure Cosmos DB:

#Migrate data from one Azure Cosmos container to another Azure Cosmos containers
dt.exe /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /s.Collection:TEColl /t:DocumentDBBulk /t.ConnectionString:" AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:TESessions /t.CollectionThroughput:2500

#Migrate data from more than one Azure Cosmos container to a single Azure Cosmos container
dt.exe /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /s.Collection:comp1|comp2|comp3|comp4 /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:singleCollection /t.CollectionThroughput:2500

#Export an Azure Cosmos container to a JSON file
dt.exe /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /s.Collection:StoresSub /t:JsonFile /t.File:StoresExport.json /t.Overwrite /t.CollectionThroughput:2500

Porada

Narzędzie importowania danych usługi Azure Cosmos DB obsługuje również import danych z emulatora usługi Azure Cosmos DB.The Azure Cosmos DB Data Import Tool also supports import of data from the Azure Cosmos DB Emulator. W przypadku importowania danych z emulatora lokalnego ustaw punkt końcowy na https://localhost:<port>.When importing data from a local emulator, set the endpoint to https://localhost:<port>.

Importowanie z bazy danych HBaseImport from HBase

Opcja importera źródła dla bazy danych HBase umożliwia importowanie danych z tabeli HBase i opcjonalnie filtrowanie danych.The HBase source importer option allows you to import data from an HBase table and optionally filter the data. Udostępniono kilka szablonów, aby konfigurowanie importu było jak najprostsze.Several templates are provided so that setting up an import is as easy as possible.

Zrzut ekranu przedstawiający opcje źródła dla bazy danych HBase

Zrzut ekranu przedstawiający opcje źródła dla bazy danych HBase

Format parametrów połączenia bazy danych HBase Stargate to:The format of the HBase Stargate connection string is:

ServiceURL=<server-address>;Username=<username>;Password=<password>

Uwaga

Aby upewnić się, że wystąpienie bazy danych HBase określone w polu parametrów połączenia jest dostępne, użyj polecenia weryfikacji.Use the Verify command to ensure that the HBase instance specified in the connection string field can be accessed.

Oto przykład wiersza polecenia dotyczący importowania z bazy danych HBase:Here is a command-line sample to import from HBase:

dt.exe /s:HBase /s.ConnectionString:ServiceURL=<server-address>;Username=<username>;Password=<password> /s.Table:Contacts /t:DocumentDBBulk /t.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;" /t.Collection:hbaseimport

Importowanie do interfejsu SQL API (import zbiorczy)Import to the SQL API (Bulk Import)

Importer zbiorczy usługi Azure Cosmos DB umożliwia importowanie z dowolnych opcji źródła przy użyciu procedury składowanej usługi Azure Cosmos DB w celu zwiększenia wydajności.The Azure Cosmos DB Bulk importer allows you to import from any of the available source options, using an Azure Cosmos DB stored procedure for efficiency. Narzędzie obsługuje importowanie do jednego kontenera usługi Azure Cosmos o pojedynczej partycji.The tool supports import to one single-partitioned Azure Cosmos container. Obsługuje również import podzielonej na fragmenty, w którym dane są partycjonowane na więcej niż jednym kontenerze Azure Cosmos o pojedynczej partycji.It also supports sharded import whereby data is partitioned across more than one single-partitioned Azure Cosmos container. Aby uzyskać więcej informacji na temat partycjonowania danych, zobacz Partitioning and scaling in Azure Cosmos DB (Partycjonowanie i skalowanie w usłudze Azure Cosmos DB).For more information about partitioning data, see Partitioning and scaling in Azure Cosmos DB. Narzędzie tworzy, wykonuje, a następnie usuwa procedurę składowaną z kolekcji docelowych.The tool creates, executes, and then deletes the stored procedure from the target collection(s).

Zrzut ekranu przedstawiający opcje zbiorcze usługi Azure Cosmos DB

Format parametrów połączenia usługi Azure Cosmos DB to:The format of the Azure Cosmos DB connection string is:

AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;

Parametry połączenia konta usługi Azure Cosmos DB można pobrać ze strony kluczy w witrynie Azure Portal zgodnie z opisem w temacie How to manage an Azure Cosmos DB account (Jak zarządzać kontem usługi Azure Cosmos DB), ale do parametrów połączenia należy dołączyć bazę danych w następującym formacie:The Azure Cosmos DB account connection string can be retrieved from the Keys page of the Azure portal, as described in How to manage an Azure Cosmos DB account, however the name of the database needs to be appended to the connection string in the following format:

Database=<CosmosDB Database>;

Uwaga

Aby upewnić się, że wystąpienie usługi Azure Cosmos DB określone w polu parametrów połączenia jest dostępne, użyj polecenia weryfikacji.Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

Aby importować do pojedynczej kolekcji, wprowadź nazwę kolekcji, z której chcesz zaimportować dane, i kliknij przycisk Dodaj.To import to a single collection, enter the name of the collection to import data from and click the Add button. Aby importować do więcej niż jednej kolekcji, wprowadź pojedynczo nazwy poszczególnych kolekcji lub użyj poniższej składni, aby określić więcej niż jedną kolekcję: prefiks_kolekcji[indeks początkowy–indeks końcowy].To import to more than one collection, either enter each collection name individually or use the following syntax to specify more than one collection: collection_prefix[start index - end index]. W przypadku określania więcej niż jednej kolekcji za pomocą wyżej wymienionej składni pamiętaj o następujących wytycznych:When specifying more than one collection using the aforementioned syntax, keep the following guidelines in mind:

  1. Obsługiwane są tylko wzorce nazw zakresów liczb całkowitych.Only integer range name patterns are supported. Na przykład określenie kolekcji collection[0–3] powoduje utworzenie następujących kolekcji: collection0, collection1, collection2, collection3.For example, specifying collection[0-3] creates the following collections: collection0, collection1, collection2, collection3.
  2. Można użyć składni skróconej: collection[3] powoduje utworzenie tego samego zestawu kolekcji wspomnianego w kroku 1.You can use an abbreviated syntax: collection[3] creates the same set of collections mentioned in step 1.
  3. Można określić więcej niż jedno podstawienie.More than one substitution can be provided. Na przykład instrukcja collection[0–1] [0–9] powoduje wygenerowanie 20 nazw kolekcji z zerami początkowymi (collection01, ...02, ...03).For example, collection[0-1] [0-9] generates 20 collection names with leading zeros (collection01, ..02, ..03).

Po wskazaniu nazw kolekcji należy wybrać żądaną przepływność kolekcji (od 400 do 10 000 jednostek RU).Once the collection name(s) have been specified, choose the desired throughput of the collection(s) (400 RUs to 10,000 RUs). Aby uzyskać najlepszą wydajność importowania, wybierz wyższą przepustowość.For best import performance, choose a higher throughput. Więcej informacji na temat poziomów wydajności można znaleźć w temacie Performance levels in Azure Cosmos DB (Poziomy wydajności w usłudze Azure Cosmos DB).For more information about performance levels, see Performance levels in Azure Cosmos DB.

Uwaga

Ustawienie przepływności wydajności ma zastosowanie tylko do tworzenia kolekcji.The performance throughput setting only applies to collection creation. Jeśli określona kolekcja już istnieje, jej przepływność nie będzie modyfikowana.If the specified collection already exists, its throughput won't be modified.

W przypadku importowania do więcej niż jednej kolekcji narzędzie importowania obsługuje dzielenie na fragmenty na podstawie skrótów.When you import to more than one collection, the import tool supports hash-based sharding. W tym scenariuszu określ właściwość dokumentu, która będzie używana jako klucz partycji.In this scenario, specify the document property you wish to use as the Partition Key. (Jeśli pole Klucz partycji jest puste, dokumenty są losowo dzielone na fragmenty w kolekcjach docelowych).(If Partition Key is left blank, documents are sharded randomly across the target collections.)

Opcjonalnie możesz określić, które pole w źródle importu powinno być używane jako właściwość identyfikatora dokumentu usługi Azure Cosmos DB podczas importowania.You may optionally specify which field in the import source should be used as the Azure Cosmos DB document ID property during the import. Jeśli dokumenty nie mają tej właściwości, narzędzie importowania generuje identyfikator GUID jako wartość właściwości identyfikatora.If documents don't have this property, then the import tool generates a GUID as the ID property value.

Podczas importowania jest dostępnych kilka opcji zaawansowanych.There are a number of advanced options available during import. Najpierw, mimo że narzędzie oferuje domyślną procedurę składowaną importu zbiorczego (BulkInsert.js), możesz określić własną procedurę składowaną importowania:First, while the tool includes a default bulk import stored procedure (BulkInsert.js), you may choose to specify your own import stored procedure:

Zrzut ekranu przedstawiający opcję procedury składowanej wstawiania zbiorczego usługi Azure Cosmos DB

Dodatkowo w przypadku importowania typów danych (na przykład z programu SQL Server lub bazy danych MongoDB) można wybrać jedną z trzech opcji importowania:Additionally, when importing date types (for example, from SQL Server or MongoDB), you can choose between three import options:

Zrzut ekranu przedstawiający opcje importowania daty/godziny w usłudze Azure Cosmos DB

  • Ciąg: Utrzymywanie jako wartości ciąguString: Persist as a string value
  • Epoka: Utrzymywanie jako wartości liczbowej epokiEpoch: Persist as an Epoch number value
  • Oba: Utrzymywanie wartości ciągu i wartości liczbowej epoki.Both: Persist both string and Epoch number values. Ta opcja powoduje utworzenie dokumentu podrzędnego, na przykład: "date_joined": { "Value": "2013-10-21T21:17:25.2410000Z", "Epoch": 1382390245 }This option creates a subdocument, for example: "date_joined": { "Value": "2013-10-21T21:17:25.2410000Z", "Epoch": 1382390245 }

Importer zbiorczy usługi Azure Cosmos DB ma następujące opcje zaawansowane:The Azure Cosmos DB Bulk importer has the following additional advanced options:

  1. Rozmiar partii: Narzędzie domyślnie ustawia rozmiar partii na 50.Batch Size: The tool defaults to a batch size of 50. W przypadku importowania dużych dokumentów należy rozważyć zmniejszenie rozmiaru partii.If the documents to be imported are large, consider lowering the batch size. I odwrotnie: w przypadku importowania małych dokumentów należy rozważyć zwiększenie rozmiaru partii.Conversely, if the documents to be imported are small, consider raising the batch size.
  2. Maksymalny rozmiar skryptu (w bajtach): Narzędzie domyślnie ustawia maksymalny rozmiar skryptu na 512 KB.Max Script Size (bytes): The tool defaults to a max script size of 512 KB.
  3. Wyłącz automatyczne generowanie identyfikatora: Jeśli każdy dokument do zaimportowania zawiera pole identyfikatora, wybierając tę opcję, można zwiększyć wydajność.Disable Automatic Id Generation: If every document to be imported has an ID field, then selecting this option can increase performance. Dokumenty bez pola unikatowego identyfikatora nie są importowane.Documents missing a unique ID field aren't imported.
  4. Aktualizuj istniejące dokumenty: Narzędzie domyślnie nie zastępuje istniejących dokumentów z konfliktami identyfikatorów.Update Existing Documents: The tool defaults to not replacing existing documents with ID conflicts. Wybranie tej opcji pozwala na zastępowanie istniejących dokumentów z pasującymi identyfikatorami.Selecting this option allows overwriting existing documents with matching IDs. Ta funkcja jest przydatna w przypadku planowanych migracji danych, które aktualizują istniejące dokumenty.This feature is useful for scheduled data migrations that update existing documents.
  5. Liczba ponownych prób przy niepowodzeniu: Określa, jak często ma być ponawiana próba nawiązania połączenia z usługą Azure Cosmos DB w przypadku przejściowych niepowodzeń (np. zakłócenia łączności sieciowej).Number of Retries on Failure: Specifies how often to retry the connection to Azure Cosmos DB during transient failures (for example, network connectivity interruption).
  6. Interwał ponownych prób: Określa, jak długo trzeba czekać między ponownymi próbami nawiązania połączenia z usługą Azure Cosmos DB w przypadku przejściowych niepowodzeń (np. zakłócenia łączności sieciowej).Retry Interval: Specifies how long to wait between retrying the connection to Azure Cosmos DB in case of transient failures (for example, network connectivity interruption).
  7. Tryb połączenia: Określa tryb połączenia do użycia z usługą Azure Cosmos DB.Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. Dostępne opcje to DirectTcp, DirectHttps i Gateway.The available choices are DirectTcp, DirectHttps, and Gateway. Tryby połączenia bezpośredniego są szybsze, ale tryb bramy jest korzystniejszy dla zapory, ponieważ używa tylko portu 443.The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Zrzut ekranu przedstawiający zaawansowane opcje importu zbiorczego dla usługi Azure Cosmos DB

Porada

Narzędzie importowania jest domyślnie ustawiane na tryb połączenia DirectTcp.The import tool defaults to connection mode DirectTcp. Jeśli występują problemy z zaporą, przełącz się do trybu połączenia Gateway, ponieważ wymaga on tylko portu 443.If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

Importowanie do interfejsu SQL API (sekwencyjny import rekordów)Import to the SQL API (Sequential Record Import)

Sekwencyjny import rekordów usługi Azure Cosmos DB umożliwia importowanie kolejnych rekordów z dostępnej opcji źródła.The Azure Cosmos DB sequential record importer allows you to import from an available source option on a record-by-record basis. Można wybrać tę opcję w przypadku importowania do istniejącej kolekcji, która osiągnęła limit przydziału procedur składowanych.You might choose this option if you’re importing to an existing collection that has reached its quota of stored procedures. Narzędzie obsługuje importowanie do jednego kontenera platformy Azure Cosmos (zarówno z jedną partycją, jak i z wielopartycją).The tool supports import to a single (both single-partition and multi-partition) Azure Cosmos container. Obsługuje ona również podzielonej na fragmenty import, dzięki czemu dane są partycjonowane na więcej niż jednej partycji lub wielopartycji Azure Cosmos Container.It also supports sharded import whereby data is partitioned across more than one single-partition or multi-partition Azure Cosmos container. Aby uzyskać więcej informacji na temat partycjonowania danych, zobacz Partitioning and scaling in Azure Cosmos DB (Partycjonowanie i skalowanie w usłudze Azure Cosmos DB).For more information about partitioning data, see Partitioning and scaling in Azure Cosmos DB.

Zrzut ekranu przedstawiający opcje sekwencyjnego importu rekordów usługi Azure Cosmos DB

Format parametrów połączenia usługi Azure Cosmos DB to:The format of the Azure Cosmos DB connection string is:

AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;

Parametry połączenia konta usługi Azure Cosmos DB możesz pobrać ze strony Klucze w witrynie Azure Portal, zgodnie z opisem w artykule Zarządzanie kontami bazy danych w usłudze Azure Cosmos DB.You can retrieve the connection string for the Azure Cosmos DB account from the Keys page of the Azure portal, as described in How to manage an Azure Cosmos DB account. Jednak nazwę bazy danych należy dołączyć do parametrów połączenia w następującym formacie:However, the name of the database needs to be appended to the connection string in the following format:

Database=<Azure Cosmos database>;

Uwaga

Aby upewnić się, że wystąpienie usługi Azure Cosmos DB określone w polu parametrów połączenia jest dostępne, użyj polecenia weryfikacji.Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

Aby importować do pojedynczej kolekcji, wprowadź nazwę kolekcji, do której chcesz zaimportować dane, a następnie kliknij przycisk Dodaj.To import to a single collection, enter the name of the collection to import data into, and then click the Add button. Aby importować do więcej niż jednej kolekcji, wprowadź nazwę każdej kolekcji oddzielnie.To import to more than one collection, enter each collection name individually. Możesz także określić więcej niż jedną kolekcję, używając następującej składni: prefiks_kolekcji[indeks początkowy–indeks końcowy].You may also use the following syntax to specify more than one collection: collection_prefix[start index - end index]. W przypadku określania więcej niż jednej kolekcji za pośrednictwem wyżej wymienionej składni pamiętaj o następujących wytycznych:When specifying more than one collection via the aforementioned syntax, keep the following guidelines in mind:

  1. Obsługiwane są tylko wzorce nazw zakresów liczb całkowitych.Only integer range name patterns are supported. Na przykład określenie kolekcji collection[0–3] powoduje utworzenie następujących kolekcji: collection0, collection1, collection2, collection3.For example, specifying collection[0-3] creates the following collections: collection0, collection1, collection2, collection3.
  2. Można użyć składni skróconej: collection[3] powoduje utworzenie tego samego zestawu kolekcji wspomnianego w kroku 1.You can use an abbreviated syntax: collection[3] creates the same set of collections mentioned in step 1.
  3. Można określić więcej niż jedno podstawienie.More than one substitution can be provided. Na przykład instrukcja collection[0–1] [0–9] powoduje utworzenie 20 nazw kolekcji z zerami początkowymi (collection01, ...02, ...03).For example, collection[0-1] [0-9] creates 20 collection names with leading zeros (collection01, ..02, ..03).

Po wskazaniu nazw kolekcji należy wybrać żądaną przepływność kolekcji (od 400 do 250 000 jednostek RU).Once the collection name(s) have been specified, choose the desired throughput of the collection(s) (400 RUs to 250,000 RUs). Aby uzyskać najlepszą wydajność importowania, wybierz wyższą przepustowość.For best import performance, choose a higher throughput. Więcej informacji na temat poziomów wydajności można znaleźć w temacie Performance levels in Azure Cosmos DB (Poziomy wydajności w usłudze Azure Cosmos DB).For more information about performance levels, see Performance levels in Azure Cosmos DB. Wszystkie operacje importowania do kolekcji o przepływności większej niż 10 000 jednostek RU wymagają klucza partycji.Any import to collections with throughput >10,000 RUs require a partition key. Jeśli wybierzesz liczbę większą niż 250 000 jednostek RU, musisz w portalu przesłać żądanie zwiększenia możliwości konta.If you choose to have more than 250,000 RUs, you need to file a request in the portal to have your account increased.

Uwaga

Ustawienie przepływności ma zastosowanie tylko do tworzenia kolekcji lub bazy danych.The throughput setting only applies to collection or database creation. Jeśli określona kolekcja już istnieje, jej przepływność nie będzie modyfikowana.If the specified collection already exists, its throughput won't be modified.

Podczas importowania do więcej niż jednej kolekcji narzędzie importowania obsługuje dzielenie na fragmenty na podstawie skrótów.When importing to more than one collection, the import tool supports hash-based sharding. W tym scenariuszu określ właściwość dokumentu, która będzie używana jako klucz partycji.In this scenario, specify the document property you wish to use as the Partition Key. (Jeśli pole Klucz partycji jest puste, dokumenty są losowo dzielone na fragmenty w kolekcjach docelowych).(If Partition Key is left blank, documents are sharded randomly across the target collections.)

Opcjonalnie możesz określić, które pole w źródle importu powinno być używane jako właściwość identyfikatora dokumentu usługi Azure Cosmos DB podczas importowania.You may optionally specify which field in the import source should be used as the Azure Cosmos DB document ID property during the import. (Jeśli dokumenty nie mają tej właściwości, narzędzie importowania generuje identyfikator GUID jako wartość właściwości identyfikatora).(If documents don't have this property, then the import tool generates a GUID as the ID property value.)

Podczas importowania jest dostępnych kilka opcji zaawansowanych.There are a number of advanced options available during import. Najpierw w przypadku importowania typów danych (na przykład z programu SQL Server lub bazy danych MongoDB) można wybrać jedną z trzech opcji importowania:First, when importing date types (for example, from SQL Server or MongoDB), you can choose between three import options:

Zrzut ekranu przedstawiający opcje importowania daty/godziny w usłudze Azure Cosmos DB

  • Ciąg: Utrzymywanie jako wartości ciąguString: Persist as a string value
  • Epoka: Utrzymywanie jako wartości liczbowej epokiEpoch: Persist as an Epoch number value
  • Oba: Utrzymywanie wartości ciągu i wartości liczbowej epoki.Both: Persist both string and Epoch number values. Ta opcja powoduje utworzenie dokumentu podrzędnego, na przykład: "date_joined": { "Value": "2013-10-21T21:17:25.2410000Z", "Epoch": 1382390245 }This option creates a subdocument, for example: "date_joined": { "Value": "2013-10-21T21:17:25.2410000Z", "Epoch": 1382390245 }

Sekwencyjny importer rekordów usługi Azure Cosmos DB ma następujące zaawansowane opcje dodatkowe:The Azure Cosmos DB - Sequential record importer has the following additional advanced options:

  1. Liczba żądań równoległych: Domyślnie narzędzie obsługuje dwa żądania równoległe.Number of Parallel Requests: The tool defaults to two parallel requests. W przypadku importowania małych dokumentów należy rozważyć zwiększenie liczby żądań równoległych.If the documents to be imported are small, consider raising the number of parallel requests. Jeśli zostanie ta liczba zostanie za bardzo zwiększona, podczas importowania mogą wystąpić ograniczenia prędkości.If this number is raised too much, the import may experience rate limiting.
  2. Wyłącz automatyczne generowanie identyfikatora: Jeśli każdy dokument do zaimportowania zawiera pole identyfikatora, wybierając tę opcję, można zwiększyć wydajność.Disable Automatic Id Generation: If every document to be imported has an ID field, then selecting this option can increase performance. Dokumenty bez pola unikatowego identyfikatora nie są importowane.Documents missing a unique ID field aren't imported.
  3. Aktualizuj istniejące dokumenty: Narzędzie domyślnie nie zastępuje istniejących dokumentów z konfliktami identyfikatorów.Update Existing Documents: The tool defaults to not replacing existing documents with ID conflicts. Wybranie tej opcji pozwala na zastępowanie istniejących dokumentów z pasującymi identyfikatorami.Selecting this option allows overwriting existing documents with matching IDs. Ta funkcja jest przydatna w przypadku planowanych migracji danych, które aktualizują istniejące dokumenty.This feature is useful for scheduled data migrations that update existing documents.
  4. Liczba ponownych prób przy niepowodzeniu: Określa, jak często ma być ponawiana próba nawiązania połączenia z usługą Azure Cosmos DB w przypadku przejściowych niepowodzeń (np. zakłócenia łączności sieciowej).Number of Retries on Failure: Specifies how often to retry the connection to Azure Cosmos DB during transient failures (for example, network connectivity interruption).
  5. Interwał ponownych prób: Określa, jak długo trzeba czekać między ponownymi próbami nawiązania połączenia z usługą Azure Cosmos DB w przypadku przejściowych niepowodzeń (np. zakłócenia łączności sieciowej).Retry Interval: Specifies how long to wait between retrying the connection to Azure Cosmos DB during transient failures (for example, network connectivity interruption).
  6. Tryb połączenia: Określa tryb połączenia do użycia z usługą Azure Cosmos DB.Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. Dostępne opcje to DirectTcp, DirectHttps i Gateway.The available choices are DirectTcp, DirectHttps, and Gateway. Tryby połączenia bezpośredniego są szybsze, ale tryb bramy jest korzystniejszy dla zapory, ponieważ używa tylko portu 443.The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Zrzut ekranu przedstawiający zaawansowane opcje sekwencyjnego importowania rekordów usługi Azure Cosmos DB

Porada

Narzędzie importowania jest domyślnie ustawiane na tryb połączenia DirectTcp.The import tool defaults to connection mode DirectTcp. Jeśli występują problemy z zaporą, przełącz się do trybu połączenia Gateway, ponieważ wymaga on tylko portu 443.If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

Określanie zasad indeksowaniaSpecify an indexing policy

W przypadku zezwolenia narzędziu do migracji na tworzenie kolekcji interfejsu SQL API usługi Azure Cosmos DB podczas importowania można określić zasady indeksowania kolekcji.When you allow the migration tool to create Azure Cosmos DB SQL API collections during import, you can specify the indexing policy of the collections. W sekcji zaawansowanych opcji importu zbiorczego usługi Azure Cosmos DB i opcji sekwencyjnych rekordów usługi Azure Cosmos DB przejdź do sekcji Zasady indeksowania.In the advanced options section of the Azure Cosmos DB Bulk import and Azure Cosmos DB Sequential record options, navigate to the Indexing Policy section.

Zrzut ekranu przedstawiający zaawansowane opcje zasad indeksowania dla usługi Azure Cosmos DB

Przy użyciu zaawansowanej opcji zasad indeksowania wybierz plik zasad indeksowania, ręcznie wprowadź zasady indeksowania lub wybierz szablon z zestawu szablonów domyślnych (na przykład przez kliknięcie prawym przyciskiem myszy w polu tekstowym zasad indeksowania).Using the Indexing Policy advanced option, you can select an indexing policy file, manually enter an indexing policy, or select from a set of default templates (by right-clicking in the indexing policy textbox).

Szablony zasad udostępniane przez narzędzie to:The policy templates the tool provides are:

  • Domyślne.Default. Te zasady to najlepszy wybór w przypadku wykonywania zapytań dotyczących równości względem ciągów.This policy is best when you perform equality queries against strings. Działają również w przypadku wykonywania zapytań typu ORDER BY oraz dotyczących zakresu i równości względem liczb.It also works if you use ORDER BY, range, and equality queries for numbers. Mają one mniejszy narzut na przechowywanie indeksu niż szablon Zakres.This policy has a lower index storage overhead than Range.
  • Zakres.Range. Te zasady to najlepszy wybór w przypadku wykonywania zapytań typu ORDER BY oraz dotyczących zakresu i równości względem liczb i ciągów.This policy is best when you use ORDER BY, range, and equality queries on both numbers and strings. Mają one większy narzut na przechowywanie indeksu niż szablon Domyślny lub Skrót.This policy has a higher index storage overhead than Default or Hash.

Zrzut ekranu przedstawiający zaawansowane opcje zasad indeksowania dla usługi Azure Cosmos DB

Uwaga

Jeśli nie określisz zasad indeksowania, zostaną zastosowane zasady domyślne.If you don't specify an indexing policy, then the default policy is applied. Aby uzyskać więcej informacji na temat zasad indeksowania, zobacz Azure Cosmos DB indexing policies (Zasady indeksowania w usłudze Azure Cosmos DB).For more information about indexing policies, see Azure Cosmos DB indexing policies.

Eksportowanie do pliku JSONExport to JSON file

Eksporter JSON w usłudze Azure Cosmos DB umożliwia eksportowanie dowolnej z dostępnych opcji źródeł do pliku JSON, który zawiera tablicę dokumentów JSON.The Azure Cosmos DB JSON exporter allows you to export any of the available source options to a JSON file that has an array of JSON documents. Narzędzie obsługuje eksport w imieniu użytkownika.The tool handles the export for you. Alternatywnie można wybrać opcję wyświetlania wynikowego polecenia migracji i jego samodzielnego uruchamiania.Alternatively, you can choose to view the resulting migration command and run the command yourself. Wynikowy plik JSON może być przechowywany lokalnie lub w usłudze Azure Blob Storage.The resulting JSON file may be stored locally or in Azure Blob storage.

Zrzut ekranu przedstawiający opcję eksportowania lokalnego pliku JSON usługi Azure Cosmos DB

Zrzut ekranu przedstawiający opcję eksportowania magazynu usługi Azure Blob Storage w formacie JSON w usłudze Azure Cosmos DB

Opcjonalnie można wybrać opcję ulepszenia wynikowego pliku JSON.You may optionally choose to prettify the resulting JSON. Ta akcja spowoduje zwiększenie rozmiaru dokumentu wynikowego, poprawiając równocześnie czytelność zawartości widocznej dla użytkownika.This action will increase the size of the resulting document while making the contents more human readable.

  • Eksport standardowego pliku JSONStandard JSON export

    [{"id":"Sample","Title":"About Paris","Language":{"Name":"English"},"Author":{"Name":"Don","Location":{"City":"Paris","Country":"France"}},"Content":"Don's document in Azure Cosmos DB is a valid JSON document as defined by the JSON spec.","PageViews":10000,"Topics":[{"Title":"History of Paris"},{"Title":"Places to see in Paris"}]}]
    
  • Eksport ulepszonego pliku JSONPrettified JSON export

      [
       {
      "id": "Sample",
      "Title": "About Paris",
      "Language": {
        "Name": "English"
      },
      "Author": {
        "Name": "Don",
        "Location": {
          "City": "Paris",
          "Country": "France"
        }
      },
      "Content": "Don's document in Azure Cosmos DB is a valid JSON document as defined by the JSON spec.",
      "PageViews": 10000,
      "Topics": [
        {
          "Title": "History of Paris"
        },
        {
          "Title": "Places to see in Paris"
        }
      ]
      }]
    

Poniżej przedstawiono przykład wiersza polecenia umożliwiający wyeksportowanie pliku JSON do usługi Azure Blob Storage:Here is a command-line sample to export the JSON file to Azure Blob storage:

dt.exe /ErrorDetails:All /s:DocumentDB /s.ConnectionString:"AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB database_name>" /s.Collection:<CosmosDB collection_name>
/t:JsonFile /t.File:"blobs://<Storage account key>@<Storage account name>.blob.core.windows.net:443/<Container_name>/<Blob_name>"
/t.Overwrite

Konfiguracja zaawansowanaAdvanced configuration

Na ekranie konfiguracji zaawansowanej określ lokalizację pliku dziennika, w którym chcesz zapisywać błędy.In the Advanced configuration screen, specify the location of the log file to which you would like any errors written. Na tej stronie obowiązują następujące reguły:The following rules apply to this page:

  1. Jeśli nie podano nazwy pliku, wszystkie błędy są zwracane na stronie wyników.If a file name isn't provided, then all errors are returned on the Results page.

  2. Jeśli podano nazwę pliku bez katalogu, plik jest tworzony (lub zastępowany) w katalogu bieżącego środowiska.If a file name is provided without a directory, then the file is created (or overwritten) in the current environment directory.

  3. Jeśli wybrano istniejący plik, plik jest zastępowany i nie ma dostępnej opcji dołączania.If you select an existing file, then the file is overwritten, there's no append option.

  4. Następnie należy wybrać opcję rejestrowania komunikatów o błędach: wszystkich, krytycznych lub żadnych.Then, choose whether to log all, critical, or no error messages. Na koniec należy zdecydować, jak często wyświetlany na ekranie komunikat dotyczący transferu będzie aktualizowany przy użyciu informacji o jego postępie.Finally, decide how frequently the on-screen transfer message is updated with its progress.

    Zrzut ekranu przedstawiający konfigurację zaawansowaną

Potwierdzanie ustawień importu i wyświetlanie wiersza poleceniaConfirm import settings and view command line

  1. Po podaniu informacji o źródle i celu oraz konfiguracji zaawansowanej przejrzyj podsumowanie migracji i jeśli chcesz, wyświetl lub skopiuj wynikowe polecenie migracji.After you specify the source information, target information, and advanced configuration, review the migration summary and view or copy the resulting migration command if you want. (Kopiowanie polecenia jest przydatne w przypadku automatyzowania operacji importu).(Copying the command is useful to automate import operations.)

    Zrzut ekranu przedstawiający ekran podsumowania

    Zrzut ekranu przedstawiający ekran podsumowania

  2. Po wybraniu żądanych opcji źródła i celu kliknij przycisk Importuj.Once you’re satisfied with your source and target options, click Import. Czas, który upłynął, liczba przetransferowanych plików i informacje o błędach (jeśli nie podano nazwy pliku w obszarze konfiguracji zaawansowanej) są aktualizowane w miarę postępu importu.The elapsed time, transferred count, and failure information (if you didn't provide a file name in the Advanced configuration) update as the import is in process. Po ukończeniu możesz wyeksportować wyniki (na przykład na wypadek błędów importu).Once complete, you can export the results (for example, to deal with any import failures).

    Zrzut ekranu przedstawiający opcję eksportowania pliku JSON usługi Azure Cosmos DB

  3. Możesz także rozpocząć nowy import, resetując wszystkie wartości lub zachowując istniejące ustawienia.You may also start a new import by either resetting all values or keeping the existing settings. (Na przykład możesz zachować informacje o parametrach połączenia, wybranym elemencie źródłowym i docelowym itd.).(For example, you may choose to keep connection string information, source and target choice, and more.)

    Zrzut ekranu przedstawiający opcję eksportowania pliku JSON usługi Azure Cosmos DB

Następne krokiNext steps

W tym samouczku wykonano następujące zadania:In this tutorial, you've done the following tasks:

  • Zainstalowano narzędzie do migracji danychInstalled the Data Migration tool
  • Zaimportowano dane z różnych źródeł danychImported data from different data sources
  • Przeprowadzono eksportowanie z usługi Azure Cosmos DB do formatu JSONExported from Azure Cosmos DB to JSON

Teraz możesz przejść do następnego samouczka, aby dowiedzieć się, jak wykonywać zapytania dotyczące danych za pomocą usługi Azure Cosmos DB.You can now proceed to the next tutorial and learn how to query data using Azure Cosmos DB.