データ移行ツールを使用して Azure Cosmos DB にデータを移行するUse Data migration tool to migrate your data to Azure Cosmos DB

このチュートリアルでは、Azure Cosmos DB データ移行ツールを使用して、さまざまなソースからデータを Azure Cosmos DB コレクションおよびテーブルにインポートする方法について説明します。This tutorial provides instructions on using the Azure Cosmos DB Data Migration tool, which can import data from various sources into Azure Cosmos DB collections and tables. JSON ファイル、CSV ファイル、SQL、MongoDB、Azure テーブル ストレージ、Amazon DynamoDB、さらには Azure Cosmos DB SQL API コレクションからインポートすることができます。You can import from JSON files, CSV files, SQL, MongoDB, Azure Table storage, Amazon DynamoDB, and even Azure Cosmos DB SQL API collections. Azure Cosmos DB で使用するためには、そのデータをコレクションやテーブルに移行します。You migrate that data to collections and tables for use with Azure Cosmos DB. データ移行ツールは、SQL API の 1 つの単一パーティション コレクションから複数パーティション コレクションに移行する場合にも使用できます。The Data Migration tool can also be used when migrating from a single partition collection to a multi-partition collection for the SQL API.

Azure Cosmos DB で使用する API を教えてください。Which API are you going to use with Azure Cosmos DB?

このチュートリアルに含まれるタスクは次のとおりです。This tutorial covers the following tasks:

  • データ移行ツールのインストールInstalling the Data Migration tool
  • さまざまなデータ ソースからのデータのインポートImporting data from different data sources
  • Azure Cosmos DB から JSON へのエクスポートExporting from Azure Cosmos DB to JSON

前提条件Prerequisites

この記事の手順を実行する前に、必ず以下の手順を実施してください。Before following the instructions in this article, ensure that you do the following steps:

  • Microsoft .NET Framework 4.51 以降をインストールする。Install Microsoft .NET Framework 4.51 or higher.

  • スループットを上げる: データの移行にかかる時間は、個別のコレクションまたは一連のコレクションに対して設定したスループットの量に依存します。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. 大規模なデータ移行では、スループットが上がっていることを確認します。Be sure to increase the throughput for larger data migrations. 移行が完了したら、コストを節約するためにスループットを下げます。After you've completed the migration, decrease the throughput to save costs. Azure portal でスループットを上げることの詳細については、Azure Cosmos DB のパフォーマンス レベル価格レベルに関するページを参照してください。For more information about increasing throughput in the Azure portal, see performance levels and pricing tiers in Azure Cosmos DB.

  • Azure Cosmos DB リソースを作成する: データの移行を開始する前に、Azure portal のすべてのコレクションを事前に作成します。Create Azure Cosmos DB resources: Before you start the migrating data, pre-create all your collections from the Azure portal. データベース レベルのスループットがある Azure Cosmos DB アカウントに移行する場合は、Azure Cosmos DB コレクションの作成時にパーティション キーを指定してください。To migrate to an Azure Cosmos DB account that has database level throughput, provide a partition key when you create the Azure Cosmos DB collections.

概要Overview

データ移行ツールはオープン ソース ソリューションで、次のような各種ソースからデータを Azure Cosmos DB にインポートします。The Data Migration tool is an open-source solution that imports data to Azure Cosmos DB from a variety of sources, including:

  • JSON ファイルJSON files
  • MongoDBMongoDB
  • SQL ServerSQL Server
  • CSV ファイルCSV files
  • Azure Table StorageAzure Table storage
  • Amazon DynamoDBAmazon DynamoDB
  • hbaseHBase
  • Azure Cosmos DB コレクションAzure Cosmos DB collections

このインポート ツールにはグラフィカル ユーザー インターフェイス (dtui.exe) が搭載されていますが、コマンド ライン (dt.exe) から実行することもできます。While the import tool includes a graphical user interface (dtui.exe), it can also be driven from the command-line (dt.exe). 実際には、UI を使用してインポートを設定した後で関連コマンドを出力するオプションもあります。In fact, there's an option to output the associated command after setting up an import through the UI. インポート時には、表形式のソース データ (SQL Server や CSV ファイルなど) を変換して階層関係 (サブドキュメント) を作成できます。You can transform tabular source data, such as SQL Server or CSV files, to create hierarchical relationships (subdocuments) during import. 最後まで目を通し、ソース オプション、各ソースからインポートするためのサンプル コマンド、ターゲット オプション、およびインポート結果の表示に関する詳細を確認してください。Keep reading to learn more about source options, sample commands to import from each source, target options, and viewing import results.

インストールInstallation

移行ツールのソース コードは、GitHub のこのリポジトリで入手できます。The migration tool source code is available on GitHub in this repository. ソリューションをローカルにダウンロードしてコンパイルするか、プリコンパイル済みのバイナリをダウンロードしてから、次のいずれかを実行できます。You can download and compile the solution locally, or download a pre-compiled binary, then run either:

  • Dtui.exe: グラフィカル インターフェイス バージョンのツールDtui.exe: Graphical interface version of the tool
  • Dt.exe: コマンド ライン バージョンのツールDt.exe: Command-line version of the tool

データ ソースの選択Select data source

ツールのインストールが完了したら、次にデータをインポートします。Once you've installed the tool, it's time to import your data. インポートするデータの種類を確認してください。What kind of data do you want to import?

JSON ファイルのインポートImport JSON files

JSON ファイル ソース インポーター オプションを使用すると、1 つ以上の単一ドキュメント JSON ファイル、またはそれぞれに JSON ドキュメントの配列が含まれた 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. インポートする JSON ファイルが含まれたフォルダーを追加する際は、サブフォルダー内のファイルを再帰的に検索できます。When adding folders that have JSON files to import, you have the option of recursively searching for files in subfolders.

JSON ファイル ソース オプションのスクリーンショット - データベース移行ツール

接続文字列は次の形式です。The connection string is in the following format:

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

  • <CosmosDB Endpoint> はエンドポイント URI です。The <CosmosDB Endpoint> is the endpoint URI. この値は Azure portal から取得できます。You can get this value from the Azure portal. Azure Cosmos アカウントに移動します。Navigate to your Azure Cosmos account. [概要] ウィンドウを開き、URI 値をコピーします。Open the Overview pane and copy the URI value.
  • <AccountKey> は "パスワード" または主キーです。The <AccountKey> is the "Password" or PRIMARY KEY. この値は Azure portal から取得できます。You can get this value from the Azure portal. Azure Cosmos アカウントに移動します。Navigate to your Azure Cosmos account. [接続文字列] または [キー] ウィンドウを開き、"パスワード" または主キー値をコピーします。Open the Connection Strings or Keys pane, and copy the "Password" or PRIMARY KEY value.
  • <CosmosDB Database> は CosmosDB データベース名です。The <CosmosDB Database> is the CosmosDB database name.

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

注意

[確認] を使用して、[接続文字列] フィールドで指定した Cosmos DB アカウントにアクセスできることを確認してください。Use the Verify command to ensure that the Cosmos DB account specified in the connection string field can be accessed.

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

MongoDB からのインポートImport from MongoDB

重要

Azure Cosmos DB の MongoDB 用 API で構成されている Cosmos アカウントにインポートする場合は、こちらの指示に従ってください。If you're importing to a Cosmos account configured with Azure Cosmos DB's API for MongoDB, follow these instructions.

MongoDB ソース インポーター オプションを使用すると、単一の MongoDB コレクションからインポートすることができます。必要に応じて、クエリを使用してドキュメントをフィルター処理したり、プロジェクションを使用してドキュメント構造を変更したりすることもできます。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.

MongoDB ソース オプションのスクリーンショット

接続文字列は、標準的な MongoDB 形式です。The connection string is in the standard MongoDB format:

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

注意

[確認] を使用して、[接続文字列] フィールドで指定した MongoDB インスタンスにアクセスできることを確認してください。Use the Verify command to ensure that the MongoDB instance specified in the connection string field can be accessed.

データのインポート元となるコレクションの名前を入力します。Enter the name of the collection from which data will be imported. 必要に応じて、クエリ ({pop: {$gt:5000}} など) やプロジェクション ({loc:0} など) を直接入力するか、そのためのファイルを指定して、インポートするデータのフィルター処理と整形を実行できます。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.

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

MongoDB エクスポート ファイルのインポートImport MongoDB export files

重要

MongoDB 対応の Azure Cosmos DB アカウントにインポートする場合は、こちらの指示に従ってください。If you're importing to an Azure Cosmos DB account with support for MongoDB, follow these instructions.

MongoDB エクスポート JSON ファイル ソース インポーター オプションを使用して、mongoexport ユーティリティによって生成された 1 つ以上の JSON ファイルをインポートできます。The MongoDB export JSON file source importer option allows you to import one or more JSON files produced from the mongoexport utility.

MongoDB エクスポート ソース オプションのスクリーンショット

インポートする MongoDB エクスポート JSON ファイルが含まれたフォルダーを追加する際は、サブフォルダー内のファイルを再帰的に検索できます。When adding folders that have MongoDB export JSON files for import, you have the option of recursively searching for files in subfolders.

MongoDB エクスポート JSON ファイルからインポートするためのコマンド ライン サンプルを以下に示します。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

SQL Server からのインポートImport from SQL Server

SQL ソース インポーター オプションを使用して、個々の SQL Server データベースからインポートできます。また、必要に応じて、クエリを使用してインポートするレコードをフィルター処理できます。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. さらに、入れ子の区切り記号を指定して、ドキュメント構造を変更することもできます (詳細は後ほど説明します)。In addition, you can modify the document structure by specifying a nesting separator (more on that in a moment).

SQL ソース オプションのスクリーンショット - データベース移行ツール

接続文字列の形式は、標準的な SQL 接続文字列の形式です。The format of the connection string is the standard SQL connection string format.

注意

[確認] を使用して、[接続文字列] フィールドで指定した SQL Server インスタンスにアクセスできることを確認してください。Use the Verify command to ensure that the SQL Server instance specified in the connection string field can be accessed.

[入れ子の区切り記号] プロパティは、インポート時に階層関係 (サブドキュメント) を作成する場合に使用します。The nesting separator property is used to create hierarchical relationships (sub-documents) during import. 次の 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'

返される結果 (一部) は次のとおりです。Which returns the following (partial) results:

SQL クエリ結果のスクリーンショット

Address.AddressType や Address.Location.StateProvinceName などのエイリアスに注目してください。Note the aliases such as Address.AddressType and Address.Location.StateProvinceName. 入れ子の区切り記号 "." を指定することで、インポート ツールによって、インポート中に Address や Address.Location のサブドキュメントが作成されます。By specifying a nesting separator of '.', the import tool creates Address and Address.Location subdocuments during the import. 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" } }

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

CSV ファイルをインポートして CSV を JSON に変換するImport CSV files and convert CSV to JSON

CSV ファイル ソース インポーター オプションを使用して、1 つ以上の CSV ファイルをインポートできます。The CSV file source importer option enables you to import one or more CSV files. インポートする CSV ファイルが含まれたフォルダーを追加する際は、サブフォルダー内のファイルを再帰的に検索できます。When adding folders that have CSV files for import, you have the option of recursively searching for files in subfolders.

CSV ソース オプションのスクリーンショット - CSV から JSON へ

SQL ソースの場合と同様、[入れ子の区切り記号] プロパティは、インポート時に階層関係 (サブドキュメント) を使用するために使用されます。Similar to the SQL source, the nesting separator property may be used to create hierarchical relationships (sub-documents) during import. 次のような CSV のヘッダー行とデータ行について考えてみましょう。Consider the following CSV header row and data rows:

CSV サンプル レコードのスクリーンショット - CSV から JSON へ

DomainInfo.Domain_Name や RedirectInfo.Redirecting などのエイリアスに注目してください。Note the aliases such as DomainInfo.Domain_Name and RedirectInfo.Redirecting. 入れ子の区切り記号 "." を指定することで、インポート ツールによって、インポート中に DomainInfo や RedirectInfo のサブドキュメントが作成されます。By specifying a nesting separator of '.', the import tool will create DomainInfo and RedirectInfo subdocuments during the import. 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" }, "Federal Agency":"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" }

CSV ファイルに含まれる引用符なしの値に関して、インポート ツールは型情報の推測を試みます (引用符で囲まれた値は、常に文字列として扱われます)。The import tool tries to infer type information for unquoted values in CSV files (quoted values are always treated as strings). 型は、数値型、DateTime 型、ブール型の順に識別されます。Types are identified in the following order: number, datetime, boolean.

CSV のインポートに関して注意することが他に 2 つあります。There are two other things to note about CSV import:

  1. 既定では、引用符なしの値は常にタブやスペースで切られますが、引用符で囲まれた値はそのまま保持されます。By default, unquoted values are always trimmed for tabs and spaces, while quoted values are preserved as-is. この動作は、[引用符付きの値をトリミングする] チェックボックスまたはコマンド ライン オプション /s.TrimQuoted を使用してオーバーライドすることができます。This behavior can be overridden with the Trim quoted values checkbox or the /s.TrimQuoted command-line option.
  2. 既定では、引用符なしの null は、null 値として扱われます。By default, an unquoted null is treated as a null value. この動作は、[引用符なしの NULL を文字列として扱う] チェックボックスまたはコマンド ライン オプション /s.NoUnquotedNulls を使用してオーバーライドすることができます (つまり、引用符なしの null を "null" という文字列として扱います)。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.

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

Azure テーブル ストレージからのインポートImport from Azure Table storage

Azure Table Storage ソース インポーター オプションを使用して、個々の Azure Table Storage テーブルからインポートできます。The Azure Table storage source importer option allows you to import from an individual Azure Table storage table. 必要に応じて、インポートするテーブル エンティティをフィルター処理できます。Optionally, you can filter the table entities to be imported.

Azure Table Storage からインポートしたデータは、Table API で使用するために Azure Cosmos DB のテーブルやエンティティに出力できます。You may output data that was imported from Azure Table Storage to Azure Cosmos DB tables and entities for use with the Table API. インポートしたデータは、SQL API で使用するためにコレクションやドキュメントに出力することもできます。Imported data can also be output to collections and documents for use with the SQL API. ただし、Table API をターゲットとして利用できるのは、コマンドライン ユーティリティでのみです。However, Table API is only available as a target in the command-line utility. データ移行ツールのユーザー インターフェイスを使用して Table API にエクスポートすることはできません。You can't export to Table API by using the Data Migration tool user interface. 詳細については、「Azure Cosmos DB Table API で使用するデータのインポート」を参照してください。For more information, see Import data for use with the Azure Cosmos DB Table API.

Azure テーブル ストレージ ソース オプションのスクリーンショット

Azure テーブル ストレージの接続文字列の形式は次のとおりです。The format of the Azure Table storage connection string is:

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

注意

[確認] を使用して、[接続文字列] フィールドで指定した Azure テーブル ストレージ インスタンスにアクセスできることを確認してください。Use the Verify command to ensure that the Azure Table storage instance specified in the connection string field can be accessed.

データのインポート元となる Azure テーブルの名前を入力します。Enter the name of the Azure table from to import from. 必要に応じて、 フィルターを指定することもできます。You may optionally specify a filter.

Azure テーブル ストレージ ソース インポーター オプションには、次の追加オプションがあります。The Azure Table storage source importer option has the following additional options:

  1. 内部フィールドを含めるInclude Internal Fields
    1. すべて - 内部フィールド (PartitionKey、RowKey、Timestamp) をすべて含めます。All - Include all internal fields (PartitionKey, RowKey, and Timestamp)
    2. なし - すべての内部フィールドを除外します。None - Exclude all internal fields
    3. RowKey - RowKey フィールドのみを含めます。RowKey - Only include the RowKey field
  2. 列の選択Select Columns
    1. Azure テーブル ストレージのフィルターでは、プロジェクションはサポートされません。Azure Table storage filters don't support projections. 特定の Azure テーブル エンティティ プロパティのみをインポートする場合は、[列の選択] リストに追加します。If you want to only import specific Azure Table entity properties, add them to the Select Columns list. これにより、他のエンティティ プロパティはすべて無視されます。All other entity properties are ignored.

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

Amazon DynamoDB からのインポートImport from Amazon DynamoDB

Amazon DynamoDB のソース インポーター オプションを使用すると、単一の Amazon DynamoDB テーブルからインポートすることができます。The Amazon DynamoDB source importer option allows you to import from a single Amazon DynamoDB table. インポートするエンティティは、必要に応じてフィルター処理することができます。It can optionally filter the entities to be imported. インポートの設定が可能な限り簡単になるように、いくつかのテンプレートが用意されています。Several templates are provided so that setting up an import is as easy as possible.

Amazon DynamoDB ソース オプションのスクリーンショット - データベース移行ツール

Amazon DynamoDB ソース オプションのスクリーンショット - データベース移行ツール

Amazon DynamoDB の接続文字列の形式は次のとおりです。The format of the Amazon DynamoDB connection string is:

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

注意

[確認] を使用して、[接続文字列] フィールドで指定した Amazon DynamoDB インスタンスにアクセスできることを確認してください。Use the Verify command to ensure that the Amazon DynamoDB instance specified in the connection string field can be accessed.

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 DB Database>;" /t.Collection:catalogCollection /t.CollectionThroughput:2500

Azure Blob Storage からのインポートImport from Azure Blob storage

JSON ファイル、MongoDB のエクスポート ファイル、および CSV ファイル ソースのインポーター オプションを使用すると、Azure BLOB ストレージから 1 つ以上のファイルをインポートできます。The JSON file, MongoDB export file, and CSV file source importer options allow you to import one or more files from Azure Blob storage. BLOB コンテナーの URL とアカウント キーを指定した後に、正規表現を使用してインポートするファイルを選択してください。After specifying a Blob container URL and Account Key, provide a regular expression to select the file(s) to import.

BLOB ファイル ソース オプションのスクリーンショット

Azure Blob Storage から JSON ファイルをインポートするためのコマンド ライン サンプルを以下に示します。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

SQL API コレクションからのインポートImport from a SQL API collection

Azure Cosmos DB ソース インポーターのオプションを使用して、1 つ以上の Azure Cosmos DB コレクションからデータをインポートできます。また、必要に応じて、クエリを使用してドキュメントをフィルター処理できます。The Azure Cosmos DB source importer option allows you to import data from one or more Azure Cosmos DB collections and optionally filter documents using a query.

Azure Cosmos DB ソース オプションのスクリーンショット

Azure Cosmos DB の接続文字列の形式は次のとおりです。The format of the Azure Cosmos DB connection string is:

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

Azure Cosmos DB アカウントの接続文字列は、Azure Cosmos DB アカウントの管理方法に関するページの説明に従って、Azure portal の [キー] ページから取得できます。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. ただし、その接続文字列には、データベースの名前を次の形式で追加する必要があります。However, the name of the database needs to be appended to the connection string in the following format:

Database=<CosmosDB Database>;

注意

[確認] を使用して、[接続文字列] フィールドで指定した Azure Cosmos DB インスタンスにアクセスできることを確認してください。Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

1 つの Azure Cosmos DB コレクションからインポートするには、データのインポート元のコレクション名を入力します。To import from a single Azure Cosmos DB collection, enter the name of the collection to import data from. 複数の Azure Cosmos DB コレクションからインポートするには、1 つ以上のコレクション名に一致する正規表現を指定します (例: collection01 | collection02 | collection03)。To import from more than one Azure Cosmos DB collection, provide a regular expression to match one or more collection names (for example, collection01 | collection02 | collection03). 必要に応じて、クエリを直接入力するか、そのためのファイルを指定して、インポートするデータのフィルター処理と整形を実行できます。You may optionally specify, or provide a file for, a query to both filter and shape the data that you're importing.

注意

コレクション フィールドは正規表現に対応しているため、名前に正規表現文字を含む 1 つのコレクションからインポートする場合は、これらの文字を適宜エスケープする必要があります。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.

Azure Cosmos DB ソース インポーター オプションには、次の詳細オプションがあります。The Azure Cosmos DB source importer option has the following advanced options:

  1. 内部フィールドを含める: エクスポート内の Azure Cosmos DB ドキュメント システム プロパティ (_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. エラー発生時の再試行回数: 一時的なエラー (ネットワーク接続の中断など) が発生した場合に Azure Cosmos DB への接続を再試行する回数を指定します。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. 再試行の間隔: 一時的なエラー (ネットワーク接続の中断など) が発生した場合に Azure Cosmos DB への接続を次に再試行するまでの待機時間を指定します。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. 接続モード: Azure Cosmos DB で使用する接続モードを指定します。Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. 使用できる選択肢は、DirectTcp、DirectHttps、およびゲートウェイです。The available choices are DirectTcp, DirectHttps, and Gateway. Direct という語が付いている接続モードの方が高速です。これに対して、ゲートウェイ モードはポート 443 のみを使用するため、ファイアウォールとの適合性が高いという特徴があります。The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Azure Cosmos DB ソース詳細オプションのスクリーンショット

ヒント

インポート ツールの接続モードは既定で [DirectTcp] に設定されています。The import tool defaults to connection mode DirectTcp. ファイアウォールの問題が発生した場合は、ポート 443 のみを使用する必要があるため、接続モードを [ゲートウェイ] に切り替えてください。If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

Azure Cosmos DB からインポートするためのコマンド ライン サンプルを以下にいくつか示します。Here are some command-line samples to import from Azure Cosmos DB:

#Migrate data from one Azure Cosmos DB collection to another Azure Cosmos DB collections
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 DB collection to a single Azure Cosmos DB collection
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 DB collection 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

ヒント

Azure Cosmos DB データ インポート ツールは、Azure Cosmos DB Emulator のデータのインポートもサポートしています。The Azure Cosmos DB Data Import Tool also supports import of data from the Azure Cosmos DB Emulator. ローカル エミュレーターからデータをインポートする場合は、エンドポイントを https://localhost:<port> に設定します。When importing data from a local emulator, set the endpoint to https://localhost:<port>.

HBase からのインポートImport from HBase

HBase のソース インポーター オプションを使用すると、HBase テーブルのデータをインポートし、必要に応じてデータをフィルターすることができます。The HBase source importer option allows you to import data from an HBase table and optionally filter the data. インポートの設定が可能な限り簡単になるように、いくつかのテンプレートが用意されています。Several templates are provided so that setting up an import is as easy as possible.

HBase のソース オプションのスクリーンショット

HBase のソース オプションのスクリーンショット

HBase Stargate の接続文字列の形式は次のとおりです。The format of the HBase Stargate connection string is:

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

注意

[確認] を使用して、[接続文字列] フィールドで指定した HBase インスタンスにアクセスできることを確認してください。Use the Verify command to ensure that the HBase instance specified in the connection string field can be accessed.

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

SQL API へのインポート (一括インポート)Import to the SQL API (Bulk Import)

Azure Cosmos DB 一括インポーターを使用すると、Azure Cosmos DB ストアド プロシージャによって使用可能な任意のソース オプションからインポートできるようになり、効率が向上します。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. このツールは、1 つの単一パーティション Azure Cosmos DB コレクションへのインポートをサポートします。The tool supports import to one single-partitioned Azure Cosmos DB collection. また、データが複数の単一パーティションの Azure Cosmos DB コレクションにパーティション分割される、シャード化されたインポートもサポートされます。It also supports sharded import whereby data is partitioned across more than one single-partitioned Azure Cosmos DB collection. データのパーティション分割の詳細については、Azure Cosmos DB でのパーティション分割とスケーリングに関する記事をご覧ください。For more information about partitioning data, see Partitioning and scaling in Azure Cosmos DB. このツールでは、ストアド プロシージャの作成と実行、およびターゲット コレクションからの削除が実行されます。The tool creates, executes, and then deletes the stored procedure from the target collection(s).

Azure Cosmos DB 一括オプションのスクリーンショット

Azure Cosmos DB の接続文字列の形式は次のとおりです。The format of the Azure Cosmos DB connection string is:

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

Azure Cosmos DB アカウントの接続文字列は、「Azure Cosmos DB アカウントの管理方法」の説明に従って、Azure Portal の [キー] ページから取得できます。ただし、データベースの名前は、次の形式で接続文字列に追加する必要があります。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>;

注意

[確認] を使用して、[接続文字列] フィールドで指定した Azure Cosmos DB インスタンスにアクセスできることを確認してください。Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

1 つのコレクションにインポートするには、データのインポート元のコレクション名を入力し、[追加] ボタンをクリックします。To import to a single collection, enter the name of the collection to import data from and click the Add button. 複数のコレクションにインポートするには、各コレクション名を個別に入力するか、次の構文を使用して複数のコレクションを指定します。collection_prefix[<開始インデックス> - <終了インデックス>]。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]. 前述の構文を使用して複数のコレクションを指定する場合は、次のガイドラインに留意してください。When specifying more than one collection using the aforementioned syntax, keep the following guidelines in mind:

  1. 範囲名のパターンでサポートされるのは整数のみです。Only integer range name patterns are supported. たとえば、collection[0-3] と指定すると、collection0、collection1、collection2、collection3 が作成されます。For example, specifying collection[0-3] creates the following collections: collection0, collection1, collection2, collection3.
  2. 省略構文を使用することができます。collection[3] は、手順 1. で説明したのと同じコレクションのセットを生成します。You can use an abbreviated syntax: collection[3] creates the same set of collections mentioned in step 1.
  3. 複数の代入値を指定することができます。More than one substitution can be provided. たとえば、collection[0-1] [0-9] と指定すると、0 か 1 で始まる 20 のコレクション名を生成します (collection01、..02、..03)。For example, collection[0-1] [0-9] generates 20 collection names with leading zeros (collection01, ..02, ..03).

コレクション名を指定したら、コレクションのひつよなスループット (400 RU ~ 10,000 RU) を選択します。Once the collection name(s) have been specified, choose the desired throughput of the collection(s) (400 RUs to 10,000 RUs). インポートのパフォーマンスを最大限に高めるには、高いスループットを選択してください。For best import performance, choose a higher throughput. パフォーマンス レベルの詳細については、Azure Cosmos DB のパフォーマンス レベルに関する記事をご覧ください。For more information about performance levels, see Performance levels in Azure Cosmos DB.

注意

パフォーマンス スループットの設定は、コレクションの作成にのみ適用されます。The performance throughput setting only applies to collection creation. 指定したコレクションが既に存在する場合、そのスループットは変更されません。If the specified collection already exists, its throughput won't be modified.

複数のコレクションにインポートする場合、インポート ツールはハッシュベースのシャーディングをサポートします。When you import to more than one collection, the import tool supports hash-based sharding. このシナリオでは、パーティション キーとして使用するドキュメント プロパティを指定します In this scenario, specify the document property you wish to use as the Partition Key. (パーティション キーを空白のままにすると、ドキュメントはターゲット コレクション全体でランダムにシャード化されます)。(If Partition Key is left blank, documents are sharded randomly across the target collections.)

インポート時には、Azure Cosmos DB ドキュメントの ID プロパティとして使用するインポート ソースのフィールドを必要に応じて指定できます。You may optionally specify which field in the import source should be used as the Azure Cosmos DB document ID property during the import. ドキュメントにこのプロパティがない場合は、インポート ツールによって ID プロパティの値として GUID が生成されます。If documents don't have this property, then the import tool generates a GUID as the ID property value.

インポート時に利用できる詳細オプションは多数あります。There are a number of advanced options available during import. まず、ツールには既定の一括インポート用ストアド プロシージャ (BulkInsert.js) が用意されていますが、独自のインポート用ストアド プロシージャを指定することもできます。First, while the tool includes a default bulk import stored procedure (BulkInsert.js), you may choose to specify your own import stored procedure:

Azure Cosmos DB 一括挿入ストアド プロシージャ オプションのスクリーンショット

また、日付型をインポートする際 (たとえば SQL Server や MongoDB から) に、次の 3 つのインポート オプションから選択できます。Additionally, when importing date types (for example, from SQL Server or MongoDB), you can choose between three import options:

Azure Cosmos DB 日付時刻インポート オプションのスクリーンショット

  • 文字列: 文字列値として保持しますString: Persist as a string value
  • エポック: エポック番号値として保持しますEpoch: Persist as an Epoch number value
  • 両方: 文字列値およびエポック番号値の両方を保持します。Both: Persist both string and Epoch number values. このオプションにより、サブドキュメントが作成されます。例: "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 }

Azure Cosmos DB 一括インポーターには、次の詳細オプションがあります。The Azure Cosmos DB Bulk importer has the following additional advanced options:

  1. バッチ サイズ: ツールのバッチ サイズは既定で 50 に設定されています。Batch Size: The tool defaults to a batch size of 50. インポートするドキュメントが大きい場合は、バッチ サイズを減らすことを検討してみてください。If the documents to be imported are large, consider lowering the batch size. 反対に、インポートするドキュメントが小さい場合は、バッチ サイズを増やすことを検討してみてください。Conversely, if the documents to be imported are small, consider raising the batch size.
  2. スクリプトの最大サイズ (バイト単位): スクリプトの最大サイズは既定で 512 KB に設定されています。Max Script Size (bytes): The tool defaults to a max script size of 512 KB.
  3. 自動 ID 生成を無効にする: インポートする各ドキュメントに ID フィールドが含まれている場合は、このオプションを選択するとパフォーマンスを向上させることができます。Disable Automatic Id Generation: If every document to be imported has an ID field, then selecting this option can increase performance. 一意の ID フィールドがないドキュメントはインポートされません。Documents missing a unique ID field aren't imported.
  4. 既存のドキュメントを更新する: 既定では、ID が競合する既存のドキュメントは置き換えられません。Update Existing Documents: The tool defaults to not replacing existing documents with ID conflicts. このオプションを選択すると、ID が一致する既存のドキュメントを上書きできます。Selecting this option allows overwriting existing documents with matching IDs. この機能は、既存のドキュメントを更新するスケジュールされたデータ移行に役立ちます。This feature is useful for scheduled data migrations that update existing documents.
  5. エラー発生時の再試行回数: 一時的なエラー (ネットワーク接続の中断など) が発生したときに Azure Cosmos DB への接続を再試行する回数を指定します。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. 再試行の間隔: 一時的なエラー (ネットワーク接続の中断など) が発生した場合に Azure Cosmos DB への接続を次に再試行するまでの待機時間を指定します。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. 接続モード: Azure Cosmos DB で使用する接続モードを指定します。Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. 使用できる選択肢は、DirectTcp、DirectHttps、およびゲートウェイです。The available choices are DirectTcp, DirectHttps, and Gateway. Direct という語が付いている接続モードの方が高速です。これに対して、ゲートウェイ モードはポート 443 のみを使用するため、ファイアウォールとの適合性が高いという特徴があります。The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Azure Cosmos DB 一括インポート詳細オプションのスクリーンショット

ヒント

インポート ツールの接続モードは既定で [DirectTcp] に設定されています。The import tool defaults to connection mode DirectTcp. ファイアウォールの問題が発生した場合は、ポート 443 のみを使用する必要があるため、接続モードを [ゲートウェイ] に切り替えてください。If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

SQL API へのインポート (シーケンシャル レコードのインポート)Import to the SQL API (Sequential Record Import)

Azure Cosmos DB シーケンシャル レコード インポーターを使用すると、レコードで使用可能なソース オプションからレコード単位でインポートできます。The Azure Cosmos DB sequential record importer allows you to import from an available source option on a record-by-record basis. ストアド プロシージャのクォータに達した既存のコレクションにインポートしている場合に、このオプションを選択できます。You might choose this option if you’re importing to an existing collection that has reached its quota of stored procedures. このツールは、単一の Azure Cosmos DB コレクション (単一パーティション コレクションと複数パーティション コレクションの両方) へのインポートをサポートします。The tool supports import to a single (both single-partition and multi-partition) Azure Cosmos DB collection. また、複数の単一パーティション Azure Cosmos DB コレクションまたは複数パーティション Azure Cosmos DB コレクション全体でデータがパーティション分割される、シャード化されたインポートもサポートされます。It also supports sharded import whereby data is partitioned across more than one single-partition or multi-partition Azure Cosmos DB collection. データのパーティション分割の詳細については、Azure Cosmos DB でのパーティション分割とスケーリングに関する記事をご覧ください。For more information about partitioning data, see Partitioning and scaling in Azure Cosmos DB.

Azure Cosmos DB シーケンシャル レコード インポート オプションのスクリーンショット

Azure Cosmos DB の接続文字列の形式は次のとおりです。The format of the Azure Cosmos DB connection string is:

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

Azure Cosmos DB アカウントの接続文字列は、Azure Cosmos DB アカウントの管理方法に関するページの説明に従って、Azure portal の [キー] ページから取得できます。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. ただし、その接続文字列には、データベースの名前を次の形式で追加する必要があります。However, the name of the database needs to be appended to the connection string in the following format:

Database=<Azure Cosmos DB Database>;

注意

[確認] を使用して、[接続文字列] フィールドで指定した Azure Cosmos DB インスタンスにアクセスできることを確認してください。Use the Verify command to ensure that the Azure Cosmos DB instance specified in the connection string field can be accessed.

1 つのコレクションにインポートするには、データのインポート先となるコレクションの名前を入力し、[追加] ボタンをクリックします。To import to a single collection, enter the name of the collection to import data into, and then click the Add button. 複数のコレクションにインポートする場合は、各コレクションの名前を個別に入力してください。To import to more than one collection, enter each collection name individually. または、collection_prefix[<開始インデックス> - <終了インデックス>] という構文を使用して複数のコレクションを指定することもできます。You may also use the following syntax to specify more than one collection: collection_prefix[start index - end index]. 前述の構文を使用して複数のコレクションを指定する場合は、次のガイドラインに留意してください。When specifying more than one collection via the aforementioned syntax, keep the following guidelines in mind:

  1. 範囲名のパターンでサポートされるのは整数のみです。Only integer range name patterns are supported. たとえば、collection[0-3] と指定すると、collection0、collection1、collection2、collection3 が作成されます。For example, specifying collection[0-3] creates the following collections: collection0, collection1, collection2, collection3.
  2. 省略構文を使用することができます。collection[3] は、手順 1. で説明したのと同じコレクションのセットを生成します。You can use an abbreviated syntax: collection[3] creates the same set of collections mentioned in step 1.
  3. 複数の代入値を指定することができます。More than one substitution can be provided. たとえば、collection[0-1] [0-9] と指定すると、0 か 1 で始まる 20 のコレクション名を作成します (collection01、..02、..03)。For example, collection[0-1] [0-9] creates 20 collection names with leading zeros (collection01, ..02, ..03).

コレクション名を指定したら、コレクションのひつよなスループット (400 RU ~ 250,000 RU) を選択します。Once the collection name(s) have been specified, choose the desired throughput of the collection(s) (400 RUs to 250,000 RUs). インポートのパフォーマンスを最大限に高めるには、高いスループットを選択してください。For best import performance, choose a higher throughput. パフォーマンス レベルの詳細については、Azure Cosmos DB のパフォーマンス レベルに関する記事をご覧ください。For more information about performance levels, see Performance levels in Azure Cosmos DB. スループットが 10,000 RU を超えるコレクションへのインポートには、パーティション キーが必要になります。Any import to collections with throughput >10,000 RUs require a partition key. 250,000 を上回る RU を選択する場合は、アカウントの制限を引き上げるように、ポータルで要求を送信する必要があります。If you choose to have more than 250,000 RUs, you need to file a request in the portal to have your account increased.

注意

スループットの設定は、コレクションまたはデータベースの作成にのみ適用されます。The throughput setting only applies to collection or database creation. 指定したコレクションが既に存在する場合、そのスループットは変更されません。If the specified collection already exists, its throughput won't be modified.

複数のコレクションにインポートする場合、インポート ツールはハッシュベースのシャーディングをサポートします。When importing to more than one collection, the import tool supports hash-based sharding. このシナリオでは、パーティション キーとして使用するドキュメント プロパティを指定します In this scenario, specify the document property you wish to use as the Partition Key. (パーティション キーを空白のままにすると、ドキュメントはターゲット コレクション全体でランダムにシャード化されます)。(If Partition Key is left blank, documents are sharded randomly across the target collections.)

インポート時には、Azure Cosmos DB ドキュメントの ID プロパティとして使用するインポート ソースのフィールドを必要に応じて指定できます You may optionally specify which field in the import source should be used as the Azure Cosmos DB document ID property during the import. (ドキュメントにこのプロパティがない場合は、インポート ツールによって ID プロパティの値として GUID が生成されます)。(If documents don't have this property, then the import tool generates a GUID as the ID property value.)

インポート時に利用できる詳細オプションは多数あります。There are a number of advanced options available during import. まず、日付型をインポートする際 (たとえば SQL Server や MongoDB から) に、次の 3 つのインポート オプションから選択できます。First, when importing date types (for example, from SQL Server or MongoDB), you can choose between three import options:

Azure Cosmos DB 日付時刻インポート オプションのスクリーンショット

  • 文字列: 文字列値として保持しますString: Persist as a string value
  • エポック: エポック番号値として保持しますEpoch: Persist as an Epoch number value
  • 両方: 文字列値およびエポック番号値の両方を保持します。Both: Persist both string and Epoch number values. このオプションにより、サブドキュメントが作成されます。例: "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 }

Azure Cosmos DB シーケンシャル レコード インポーターには、次の詳細オプションがあります。The Azure Cosmos DB - Sequential record importer has the following additional advanced options:

  1. 並列要求の数: 並列要求の数は既定で 2 に設定されています。Number of Parallel Requests: The tool defaults to two parallel requests. インポートするドキュメントが小さい場合は、並列要求の数を増やすことを検討してみてください。If the documents to be imported are small, consider raising the number of parallel requests. この数が大きすぎると、インポート時にレートが制限される場合があります。If this number is raised too much, the import may experience rate limiting.
  2. 自動 ID 生成を無効にする: インポートする各ドキュメントに ID フィールドが含まれている場合は、このオプションを選択するとパフォーマンスを向上させることができます。Disable Automatic Id Generation: If every document to be imported has an ID field, then selecting this option can increase performance. 一意の ID フィールドがないドキュメントはインポートされません。Documents missing a unique ID field aren't imported.
  3. 既存のドキュメントを更新する: 既定では、ID が競合する既存のドキュメントは置き換えられません。Update Existing Documents: The tool defaults to not replacing existing documents with ID conflicts. このオプションを選択すると、ID が一致する既存のドキュメントを上書きできます。Selecting this option allows overwriting existing documents with matching IDs. この機能は、既存のドキュメントを更新するスケジュールされたデータ移行に役立ちます。This feature is useful for scheduled data migrations that update existing documents.
  4. エラー発生時の再試行回数: 一時的なエラー (ネットワーク接続の中断など) が発生したときに Azure Cosmos DB への接続を再試行する回数を指定します。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. 再試行の間隔: 一時的なエラー (ネットワーク接続の中断など) が発生したときに Azure Cosmos DB への接続を次に再試行するまでの待機時間を指定します。Retry Interval: Specifies how long to wait between retrying the connection to Azure Cosmos DB during transient failures (for example, network connectivity interruption).
  6. 接続モード: Azure Cosmos DB で使用する接続モードを指定します。Connection Mode: Specifies the connection mode to use with Azure Cosmos DB. 使用できる選択肢は、DirectTcp、DirectHttps、およびゲートウェイです。The available choices are DirectTcp, DirectHttps, and Gateway. Direct という語が付いている接続モードの方が高速です。これに対して、ゲートウェイ モードはポート 443 のみを使用するため、ファイアウォールとの適合性が高いという特徴があります。The direct connection modes are faster, while the gateway mode is more firewall friendly as it only uses port 443.

Azure Cosmos DB シーケンシャル レコード インポート詳細オプションのスクリーンショット

ヒント

インポート ツールの接続モードは既定で [DirectTcp] に設定されています。The import tool defaults to connection mode DirectTcp. ファイアウォールの問題が発生した場合は、ポート 443 のみを使用する必要があるため、接続モードを [ゲートウェイ] に切り替えてください。If you experience firewall issues, switch to connection mode Gateway, as it only requires port 443.

インデックス作成ポリシーの指定Specify an indexing policy

移行ツールを使用してインポート中に Azure Cosmos DB SQL API コレクションを作成するときに、コレクションのインデックス作成ポリシーを指定できます。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. Azure Cosmos DB の一括インポートと Azure Cosmos DB のシーケンシャル レコード オプションの詳細オプション セクションで、[インデックス作成ポリシー] セクションに移動します。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.

Azure Cosmos DB インデックス作成ポリシー詳細オプションのスクリーンショット

[インデックス作成ポリシー] の詳細オプションを使用すると、インデックス作成ポリシー ファイルを選択するか、インデックス作成ポリシーを手動で入力するか、既定のテンプレート セットから選択することができます (インデックス作成ポリシー テキスト ボックスを右クリックします)。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).

ツールには、次のポリシー テンプレートが用意されています。The policy templates the tool provides are:

  • [既定]。Default. このポリシーは、文字列に対しては等値クエリを実行する場合に最適です。This policy is best when you perform equality queries against strings. また、数値に対して ORDER BY クエリ、範囲クエリ、等値クエリを使用する場合にも機能します。It also works if you use ORDER BY, range, and equality queries for numbers. [範囲] よりもインデックスのストレージ オーバーヘッドが少なくいポリシーです。This policy has a lower index storage overhead than Range.
  • [範囲]。Range. このポリシーは、数値と文字列の両方に対して ORDER BY クエリ、範囲クエリ、等値クエリを使用する場合に最適です。This policy is best when you use ORDER BY, range, and equality queries on both numbers and strings. [既定] または [ハッシュ] よりもインデックスのストレージ オーバーヘッドが高いポリシーです。This policy has a higher index storage overhead than Default or Hash.

Azure Cosmos DB インデックス作成ポリシー詳細オプションのスクリーンショット

注意

インデックス作成ポリシーを指定しないと、既定のポリシーが適用されます。If you don't specify an indexing policy, then the default policy is applied. インデックス作成ポリシーの詳細については、Azure Cosmos DB インデックス作成ポリシーに関する記事をご覧ください。For more information about indexing policies, see Azure Cosmos DB indexing policies.

JSON ファイルへのエクスポートExport to JSON file

Azure Cosmos DB JSON エクスポーターを使用すると、使用可能な任意のソース オプションを、JSON ドキュメントの配列が含まれた 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. エクスポートはツールによって自動的に処理されます。The tool handles the export for you. また、その結果生成される移行コマンドを表示し、自分でコマンドを実行することもできます。Alternatively, you can choose to view the resulting migration command and run the command yourself. 結果の JSON ファイルは、ローカルまたは Azure BLOB ストレージに保存できます。The resulting JSON file may be stored locally or in Azure Blob storage.

Azure Cosmos DB JSON ローカル ファイル エクスポート オプションのスクリーンショット

Azure Cosmos DB JSON Azure Blob ストレージ エクスポート オプションのスクリーンショット

必要に応じて、出力される JSON を整形することができます。You may optionally choose to prettify the resulting JSON. このアクションにより、生成されるドキュメントのサイズは大きくなりますが、内容は人間が判読しやすいものになります。This action will increase the size of the resulting document while making the contents more human readable.

  • 標準的な JSON エクスポートStandard 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"}]}]
    
  • 整形された JSON エクスポートPrettified 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"
        }
      ]
      }]
    

JSON ファイルを Azure Blob ストレージにエクスポートするためのコマンドライン サンプルを以下に示します。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

詳細な構成Advanced configuration

詳細な構成画面では、発生したエラーが書き込まれるログ ファイルの場所を指定します。In the Advanced configuration screen, specify the location of the log file to which you would like any errors written. このページには、次の規則が適用されます。The following rules apply to this page:

  1. ファイル名を指定しなかった場合は、すべてのエラーが結果ページに返されます。If a file name isn't provided, then all errors are returned on the Results page.

  2. ディレクトリを指定せずにファイル名を指定した場合は、現在の環境のディレクトリにファイルが作成 (または上書き) されます。If a file name is provided without a directory, then the file is created (or overwritten) in the current environment directory.

  3. 既存のファイルを選択した場合は、ファイルが上書きされます。追加するオプションはありません。If you select an existing file, then the file is overwritten, there's no append option.

  4. 次に、ログに記録するメッセージとして、すべてのメッセージ、重要なメッセージ、エラーがないメッセージのいずれかを選択します。Then, choose whether to log all, critical, or no error messages. 最後に、画面上の転送メッセージが進行状況と共に更新される頻度を指定します。Finally, decide how frequently the on-screen transfer message is updated with its progress.

    詳細な構成画面のスクリーンショット

インポート設定の確認とコマンド ラインの表示Confirm import settings and view command line

  1. ソース情報、ターゲット情報、詳細な構成を指定した後、必要であれば、移行の概要を確認し、生成された移行コマンドの表示やコピーを実行します 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. (コマンドのコピーは、インポート操作を自動化するのに役立ちます)。(Copying the command is useful to automate import operations.)

    概要画面のスクリーンショット

    概要画面のスクリーンショット

  2. ソースとターゲットのオプションに問題がなければ、 [インポート] をクリックします。Once you’re satisfied with your source and target options, click Import. 経過時間、転送済みファイル数、およびエラーに関する情報 ([詳細構成]でファイル名を指定しなかった場合) がインポート処理の進行と共に更新されます。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. 処理が完了したら、結果をエクスポートできます (インポート エラーに対処する場合など)。Once complete, you can export the results (for example, to deal with any import failures).

    Azure Cosmos DB JSON エクスポート オプションのスクリーンショット

  3. すべての値をリセットするか、既存の設定をそのまま使用して、新たにインポートを開始することもできます You may also start a new import by either resetting all values or keeping the existing settings. (たとえば、接続文字列の情報やソースとターゲットの選択などをそのまま使用することもできます)。(For example, you may choose to keep connection string information, source and target choice, and more.)

    Azure Cosmos DB JSON エクスポート オプションのスクリーンショット

次の手順Next steps

このチュートリアルでは、次のタスクを行いました。In this tutorial, you've done the following tasks:

  • データ移行ツールのインストールInstalled the Data Migration tool
  • さまざまなデータ ソースからのデータのインポートImported data from different data sources
  • Azure Cosmos DB から JSON へのエクスポートExported from Azure Cosmos DB to JSON

次のチュートリアルに進み、Azure Cosmos DB を使用してデータにクエリを実行する方法を学ぶことができます。You can now proceed to the next tutorial and learn how to query data using Azure Cosmos DB.