Azure Cosmos DB Table API アカウントにデータを移行するMigrate your data to Azure Cosmos DB Table API account

このチュートリアルでは、Azure Cosmos DB Table API で使用するデータをインポートする手順を示します。This tutorial provides instructions on importing data for use with the Azure Cosmos DB Table API. Azure Table Storage に格納されたデータがある場合は、データ移行ツールまたは AzCopy を使用してデータを Azure Cosmos DB Table API にインポートできます。If you have data stored in Azure Table storage, you can use either the Data Migration Tool or AzCopy to import your data to Azure Cosmos DB Table API. Azure Cosmos DB Table API (プレビュー) アカウントに格納されたデータがある場合、データの移行にはデータ移行ツールを使用する必要があります。If you have data stored in an Azure Cosmos DB Table API (preview) account, you must use the Data Migration tool to migrate your data.

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

  • データ移行ツールを使用したデータのインポートImporting data with the Data Migration tool
  • AzCopy を使用したデータのインポートImporting data with AzCopy
  • Table API (プレビュー) から Table API への移行Migrating from Table API (preview) to Table API

前提条件Prerequisites

  • スループットを上げる: データの移行にかかる時間は、個別のコンテナーまたは一連のコンテナーに対して設定したスループットの量に依存します。Increase throughput: The duration of your data migration depends on the amount of throughput you set up for an individual container or a set of containers. 大規模なデータ移行では、スループットが上がっていることを確認します。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 tables from the Azure portal. データベース レベルのスループットがある Azure Cosmos DB アカウントに移行しようとしている場合は、Azure Cosmos DB テーブルの作成時に必ずパーティション キーを提供するようにしてください。If you are migrating to an Azure Cosmos DB account that has database level throughput, make sure to provide a partition key when creating the Azure Cosmos DB tables.

データ移行ツールData Migration tool

コマンド ラインの Azure Cosmos DB データ移行ツール (dt.exe) を使用すると、既存の Azure Table ストレージ データを Table API GA アカウントにインポートしたり、Table API (プレビュー) アカウントのデータを Table API GA アカウントに移行したりすることができます。The command-line Azure Cosmos DB Data Migration tool (dt.exe) can be used to import your existing Azure Table storage data to a Table API GA account, or migrate data from a Table API (preview) account into a Table API GA account. その他のソースは現在はサポートされていません。Other sources are not currently supported. 現在、UI ベースのデータ移行ツール (dtui.exe) は、テーブル API アカウントに対してはサポートされていません。The UI based Data Migration tool (dtui.exe) is not currently supported for Table API accounts.

テーブル データの移行を実行するには、次のタスクを実行します。To perform a migration of table data, complete the following tasks:

  1. 移行ツールを GitHub からダウンロードします。Download the migration tool from GitHub.

  2. 実際のシナリオに合ったコマンド ライン引数を使用して dt.exe を実行します。Run dt.exe using the command-line arguments for your scenario. dt.exe は次の形式のコマンドを受け取ります。dt.exe takes a command in the following format:

     dt.exe [/<option>:<value>] /s:<source-name> [/s.<source-option>:<value>] /t:<target-name> [/t.<target-option>:<value>] 
    

コマンドのオプションは次のとおりです。Options for the command are:

/ErrorLog: Optional. Name of the CSV file to redirect data transfer failures
/OverwriteErrorLog: Optional. Overwrite error log file
/ProgressUpdateInterval: Optional, default is 00:00:01. Time interval to refresh on-screen data transfer progress
/ErrorDetails: Optional, default is None. Specifies that detailed error information should be displayed for the following errors: None, Critical, All
/EnableCosmosTableLog: Optional. Direct the log to a cosmos table account. If set, this defaults to destination account connection string unless /CosmosTableLogConnectionString is also provided. This is useful if multiple instances of DT are being run simultaneously.
/CosmosTableLogConnectionString: Optional. ConnectionString to direct the log to a remote cosmos table account. 

コマンドラインのソース設定Command-line source settings

移行のソースとして Azure Table Storage または Table API プレビュー を定義する場合は、次のソース オプションを使用します。Use the following source options when defining Azure Table Storage or Table API preview as the source of the migration.

/s:AzureTable: Reads data from Azure Table storage
/s.ConnectionString: Connection string for the table endpoint. This can be retrieved from the Azure portal
/s.LocationMode: Optional, default is PrimaryOnly. Specifies which location mode to use when connecting to Azure Table storage: PrimaryOnly, PrimaryThenSecondary, SecondaryOnly, SecondaryThenPrimary
/s.Table: Name of the Azure Table
/s.InternalFields: Set to All for table migration as RowKey and PartitionKey are required for import.
/s.Filter: Optional. Filter string to apply
/s.Projection: Optional. List of columns to select

Azure Table Storage からインポートする場合にソースの接続文字列を取得するには、Azure Portal を開き、 [ストレージ アカウント] > [アカウント] > [アクセス キー] の順にクリックし、[コピー] ボタンを使用して [接続文字列] をコピーします。To retrieve the source connection string when importing from Azure Table storage, open the Azure portal and click Storage accounts > Account > Access keys, and then use the copy button to copy the Connection string.

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

Azure Cosmos DB Table API (プレビュー) からインポートする場合にソースの接続文字列を取得するには、Azure Portal を開き、 [Azure Cosmos DB] > [アカウント] > [接続文字列] の順にクリックし、[コピー] ボタンを使用して [接続文字列] をコピーします。To retrieve the source connection string when importing from an Azure Cosmos DB Table API (preview) account, open the Azure portal, click Azure Cosmos DB > Account > Connection String and use the copy button to copy the Connection String.

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

Azure Table Storage のサンプル コマンドSample Azure Table Storage command

Azure Cosmos DB Table API (プレビュー) のサンプル コマンドSample Azure Cosmos DB Table API (preview) command

コマンドラインのターゲット設定Command-line target settings

移行のターゲットとして Azure Cosmos DB Table API を定義する場合は、次のターゲット オプションを使用します。Use the following target options when defining Azure Cosmos DB Table API as the target of the migration.

/t:TableAPIBulk: Uploads data into Azure CosmosDB Table in batches
/t.ConnectionString: Connection string for the table endpoint
/t.TableName: Specifies the name of the table to write to
/t.Overwrite: Optional, default is false. Specifies if existing values should be overwritten
/t.MaxInputBufferSize: Optional, default is 1GB. Approximate estimate of input bytes to buffer before flushing data to sink
/t.Throughput: Optional, service defaults if not specified. Specifies throughput to configure for table
/t.MaxBatchSize: Optional, default is 2MB. Specify the batch size in bytes

サンプル コマンド:ソースが Azure Table StorageSample command: Source is Azure Table storage

Azure Table Storage から Table API にインポートするコマンドライン サンプルを以下に示します。Here is a command-line sample showing how to import from Azure Table storage to Table API:

dt /s:AzureTable /s.ConnectionString:DefaultEndpointsProtocol=https;AccountName=<Azure Table storage account name>;AccountKey=<Account Key>;EndpointSuffix=core.windows.net /s.Table:<Table name> /t:TableAPIBulk /t.ConnectionString:DefaultEndpointsProtocol=https;AccountName=<Azure Cosmos DB account name>;AccountKey=<Azure Cosmos DB account key>;TableEndpoint=https://<Account name>.table.cosmosdb.azure.com:443 /t.TableName:<Table name> /t.Overwrite

サンプル コマンド:ソースが Azure Cosmos DB Table API (プレビュー)Sample command: Source is Azure Cosmos DB Table API (preview)

Table API プレビュー から Table API GA にインポートするコマンドライン サンプルを以下に示します。Here is a command-line sample to import from Table API preview to Table API GA:

dt /s:AzureTable /s.ConnectionString:DefaultEndpointsProtocol=https;AccountName=<Table API preview account name>;AccountKey=<Table API preview account key>;TableEndpoint=https://<Account Name>.documents.azure.com; /s.Table:<Table name> /t:TableAPIBulk /t.ConnectionString:DefaultEndpointsProtocol=https;AccountName=<Azure Cosmos DB account name>;AccountKey=<Azure Cosmos DB account key>;TableEndpoint=https://<Account name>.table.cosmosdb.azure.com:443 /t.TableName:<Table name> /t.Overwrite

AzCopy を使用してデータを移行するMigrate data by using AzCopy

Azure Table Sorage から Azure Cosmos DB Table API にデータを移行するには、AzCopy コマンドライン ユーティリティを使用する方法もあります。Using the AzCopy command-line utility is the other option for migrating data from Azure Table storage to the Azure Cosmos DB Table API. AzCopy を使用するには、まず「Table Storage からデータをエクスポートする」の説明に従ってデータをエクスポートし、Azure Cosmos DB Table API に関するページの説明に従ってデータを Azure Cosmos DB にインポートします。To use AzCopy, you first export your data as described in Export data from Table storage, then import the data to Azure Cosmos DB as described in Azure Cosmos DB Table API.

Azure Cosmos DB へのインポートを実行する場合は、次のサンプルを参照してください。When performing the import into Azure Cosmos DB, refer to the following sample. /Dest 値には、core ではなく cosmosdb を使用してください。Note that the /Dest value uses cosmosdb, not core.

インポート コマンド例:Example import command:

AzCopy /Source:C:\myfolder\ /Dest:https://myaccount.table.cosmosdb.windows.net/mytable1/ /DestKey:key /Manifest:"myaccount_mytable_20140103T112020.manifest" /EntityOperation:InsertOrReplace

Table API (プレビュー) から Table API への移行Migrate from Table API (preview) to Table API

警告

一般公開のテーブルを活用したい場合は、このセクションの説明に従って既存のプレビュー テーブルを移行してください。手動で移行しない場合、今後数週間以内に既存のプレビュー ユーザーについて自動移行が実行される予定です。ただし、自動移行されたプレビュー テーブルには、新規作成のテーブルにはない特定の制限が課せられます。If you want to immediately enjoy the benefits of the generally available tables then please migrate your existing preview tables as specified in this section, otherwise we will be performing auto-migrations for existing preview customers in the coming weeks, note however that auto-migrated preview tables will have certain restrictions to them that newly created tables will not.

Table API は一般公開 (GA) されました。The Table API is now generally available (GA). プレビュー バージョンと GA バージョンのテーブルには違いがあります。違いは、クラウドで実行されるコードだけでなく、クライアントで実行されるコードにもあります。There are differences between the preview and GA versions of tables both in the code that runs in the cloud as well as in code that runs at the client. そのため、プレビューの SDK クライアントと GA Table API アカウントを混在させることはお勧めしません。Therefore it is not advised to try to mix a preview SDK client with a GA Table API account, and vice versa. Table API プレビューを使用していて、既存のテーブルを運用環境でも引き続き使用するには、プレビューから GA 環境に移行するか、自動移行を待つ必要があります。Table API preview customers who want to continue to use their existing tables but in a production environment need to migrate from the preview to the GA environment, or wait for auto-migration. 自動移行を待つ場合、移行されたテーブルに課せられる制限が通知されます。If you wait for auto-migration, you will be notified of the restrictions on the migrated tables. 移行後は、既存のアカウントを使用して制限なしで新しいテーブルを作成できるようになります (移行されたテーブルのみに制限が課せられます)。After migration, you will be able to create new tables on your existing account without restrictions (only migrated tables will have restrictions).

Table API (プレビュー) から一般公開の Table API に移行するには、次の手順を実行します。To migrate from Table API (preview) to the generally available Table API:

  1. データベース アカウントの作成」の説明に従って新しい Azure Cosmos DB アカウントを作成し、API の種類を Azure Table に設定します。Create a new Azure Cosmos DB account and set its API type to Azure Table as described in Create a database account.

  2. Table API SDK の GA リリースを使用するようにクライアントを変更します。Change clients to use a GA release of the Table API SDKs.

  3. データ移行ツールを使用して、プレビュー テーブルのクライアント データを GA テーブルに移行します。Migrate the client data from preview tables to GA tables by using the Data Migration tool. この目的でデータ移行ツールを使用する手順については、「データ移行ツール」を参照してください。Instructions on using the data migration tool for this purpose are described in Data Migration tool.

次の手順Next steps

このチュートリアルで学習した内容は次のとおりです。In this tutorial you learned how to:

  • データ移行ツールを使用したデータのインポートImport data with the Data Migration tool
  • AzCopy を使用したデータのインポートImport data with AzCopy
  • Table API (プレビュー) から Table API への移行Migrate from Table API (preview) to Table API

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