Azure Cosmos DB の Table API についてよく寄せられる質問Frequently asked questions about the Table API in Azure Cosmos DB

Azure Cosmos DB Table API は Azure portal で利用できます。まず、Azure サブスクリプションにサインアップする必要があります。The Azure Cosmos DB Table API is available in the Azure portal First you must sign up for an Azure subscription. サインアップしたら、Azure サブスクリプションに Azure Cosmos DB Table API アカウントを追加し、アカウントにテーブルを追加できます。After you've signed up, you can add an Azure Cosmos DB Table API account to your Azure subscription, and then add tables to your account. サポートされている言語および関連するクイックスタートは、「Azure Cosmos DB の概要: Table API」で確認できます。You can find the supported languages and associated quick-starts in the Introduction to Azure Cosmos DB Table API.

Azure Cosmos DB の Table API と Azure Table StorageTable API in Azure Cosmos DB Vs Azure Table storage

Table API と Azure Table Storage の動作はどのような点が異なりますか?Where is Table API not identical with Azure Table storage behavior?

これまで Azure Table Storage を使っていたユーザーが Azure Cosmos DB Table API でテーブルを作成する場合、知っておく必要のある動作の違いがいくつかあります。There are some behavior differences that users coming from Azure Table storage who want to create tables with the Azure Cosmos DB Table API should be aware of:

  • Azure Cosmos DB Table API ではパフォーマンスを保証するために予約容量モデルが使われていますが、これは、テーブルが作成されると直ちに、たとえ容量が使われていない場合でも、容量に対して課金されることを意味します。Azure Cosmos DB Table API uses a reserved capacity model in order to ensure guaranteed performance but this means that one pays for the capacity as soon as the table is created, even if the capacity isn't being used. Azure Table Storage では、使用された容量に対してのみ課金されます。With Azure Table storage one only pays for capacity that's used. Table API では 99 パーセンタイルで 10 ミリ秒の読み取り SLA と 15 ミリ秒の書き込み SLA が提供されるのに対し、Azure Table Storage で提供される SLA が 10 秒であるのは、このためです。This helps to explain why Table API can offer a 10 ms read and 15 ms write SLA at the 99th percentile while Azure Table storage offers a 10-second SLA. ただし、その結果として、Table API のテーブルでは、要求が含まれない空のテーブルであっても、Azure Cosmos DB が提供する SLA でテーブルへの要求を処理できる容量を確保するためにコストがかかります。But as a consequence, with Table API tables, even empty tables without any requests, cost money in order to ensure the capacity is available to handle any requests to them at the SLA offered by Azure Cosmos DB.

  • Table API によって返されるクエリ結果は、Azure Table Storage のようなパーティション キー/行キーの順序にはなりません。Query results returned by the Table API aren't sorted in partition key/row key order as they are in Azure Table storage.

  • 行キーに許される最大長は 255 バイトです。Row keys can only be up to 255 bytes.

  • バッチに含めることができるのは最大 2 MB です。Batches can only have up to 2 MBs.

  • CORS は現在サポートされていません。CORS isn't currently supported.

  • Azure Table Storage ではテーブル名の大文字と小文字は区別されませんが、Azure Cosmos DB Table API では区別されます。Table names in Azure Table storage aren't case-sensitive, but they are in Azure Cosmos DB Table API.

  • 現在、バイナリ フィールドなどのエンコード情報に対する Azure Cosmos DB の内部形式の一部は、それほど効率的ではありません。Some of Azure Cosmos DB's internal formats for encoding information, such as binary fields, are currently not as efficient as one might like. そのため、データ サイズの予期しない制限が発生する可能性があります。Therefore this can cause unexpected limitations on data size. たとえば、現在、エンコードによってデータ サイズが増加するため、フル 1 メガのテーブル エンティティを使用してバイナリ データを格納することはできません。For example, currently one couldn't use the full one Meg of a table entity to store binary data because the encoding increases the data's size.

  • エンティティ プロパティ名 "ID" は現在サポートされていません。Entity property name 'ID' currently not supported.

  • TableQuery TakeCount は 1,000 に制限されません。TableQuery TakeCount isn't limited to 1000.

  • REST API に関しては、Azure Cosmos DB Table API によってサポートされないエンドポイント/クエリ オプションがいくつかあります。In terms of the REST API there are a number of endpoints/query options that aren't supported by Azure Cosmos DB Table API:

    REST メソッドRest Method(s) REST エンドポイント/クエリ オプションRest Endpoint/Query Option ドキュメントの URLDoc URLs 説明Explanation
    GET、PUTGET, PUT /?restype=service@comp=properties Set Table Service Properties」(Table Service のプロパティを設定する) および「Get Table Service Properties」(Table Service のプロパティを取得する)Set Table Service Properties and Get Table Service Properties このエンドポイントは、CORS ルールの設定、ストレージ分析の構成、ログ記録の設定に使われます。This endpoint is used to set CORS rules, storage analytics configuration, and logging settings. CORS は現在サポートされておらず、Azure Cosmos DB での分析とログ記録の処理は Azure Storage Table とは異なります。CORS is currently not supported and analytics and logging are handled differently in Azure Cosmos DB than Azure Storage Tables
    OPTIONSOPTIONS /<table-resource-name> Pre-flight CORS table request」(プレフライト CORS テーブル要求)Pre-flight CORS table request これは、Azure Cosmos DB が現在サポートしていない CORS の一部です。This is part of CORS which Azure Cosmos DB doesn't currently support.
    GETGET /?restype=service@comp=stats Get Table Service Stats」(Table Service の統計情報を取得する)Get Table Service Stats プライマリとセカンダリの間でデータがレプリケートされる速度の情報を提供します。Provides information how quickly data is replicating between primary and secondaries. Cosmos DB ではレプリケーションは書き込みの一部なので、これは必要ありません。This isn't needed in Cosmos DB as the replication is part of writes.
    GET、PUTGET, PUT /mytable?comp=acl Get Table ACL」(テーブルの ACL を取得する) およびSet Table ACL」(テーブルの ACL を設定する)Get Table ACL and Set Table ACL Shared Access Signature (SAS) の管理に使われる保存されたアクセス ポリシーを取得および設定します。This gets and sets the stored access policies used to manage Shared Access Signatures (SAS). SAS はサポートされていますが、設定と管理の方法は異なります。Although SAS is supported, they are set and managed differently.
  • Azure Cosmos DB Table API は JSON 形式のみをサポートし、ATOM はサポートしません。Azure Cosmos DB Table API only supports the JSON format, not ATOM.

  • Azure Cosmos DB は Shared Access Signature (SAS) をサポートしていますが、一部のポリシーはサポートされていません。具体的には、新しいテーブルを作成する権限などの管理操作に関連するものです。While Azure Cosmos DB supports Shared Access Signatures (SAS) there are certain policies it doesn't support, specifically those related to management operations such as the right to create new tables.

  • 特に .NET SDK には、Azure Cosmos DB が現在サポートしていないクラスとメソッドがいくつかあります。For the .NET SDK in particular, there are some classes and methods that Azure Cosmos DB doesn't currently support.

    クラスClass サポートされていないメソッドUnsupported Method
    CloudTableClientCloudTableClient *ServiceProperties**ServiceProperties*
    *ServiceStats**ServiceStats*
    CloudTableCloudTable SetPermissions*SetPermissions*
    GetPermissions*GetPermissions*
    TableServiceContextTableServiceContext * (このクラスは非推奨です)* (this class is deprecated)
    TableServiceEntityTableServiceEntity " "" "
    TableServiceExtensionsTableServiceExtensions " "" "
    TableServiceQueryTableServiceQuery " "" "

その他のよく寄せられる質問Other frequently asked questions

Table API を使うには新しい SDK が必要ですか?Do I need a new SDK to use the Table API?

いいえ、既存のストレージ SDK でまだ動作するはずです。No, existing storage SDKs should still work. ただし、最善のサポートと、多くの場合に優れたパフォーマンスを得るために、常に最新の SDK を使うことをお勧めします。However, it's recommended that one always gets the latest SDKs for the best support and in many cases superior performance. 使うことができる言語の一覧については、「Azure Cosmos DB の概要: Table API」をご覧ください。See the list of available languages in the Introduction to Azure Cosmos DB Table API.

Table API に接続するときに使う必要がある接続文字列を教えてください。What is the connection string that I need to use to connect to the Table API?

接続文字列は次のとおりです。The connection string is:

DefaultEndpointsProtocol=https;AccountName=<AccountNamefromCosmosDB;AccountKey=<FromKeysPaneofCosmosDB>;TableEndpoint=https://<AccountName>.table.cosmosdb.azure.com

接続文字列は、Azure Portal の [接続文字列] ページから取得できます。You can get the connection string from the Connection String page in the Azure portal.

Table API の .NET SDK で、要求オプションの構成設定をオーバーライドするにはどうすればよいですか?How do I override the config settings for the request options in the .NET SDK for the Table API?

一部の設定は CreateCloudTableClient メソッドで処理され、他の設定はクライアント アプリケーションの appSettings セクションの app.config で処理されます。Some settings are handled on the CreateCloudTableClient method and other via the app.config in the appSettings section in the client application. 構成設定については、「Azure Cosmos DB の機能」をご覧ください。For information about config settings, see Azure Cosmos DB capabilities.

既存の Azure Table Storage SDK を使っている顧客に関する変更はありますか?Are there any changes for customers who are using the existing Azure Table storage SDKs?

[なし] :None. 既存の Azure Table Storage SDK を使用する既存または新規のお客様を対象とする変更はありません。There are no changes for existing or new customers who are using the existing Azure Table storage SDKs.

Table API で使うために、Azure Cosmos DB に格納されているテーブル データを表示するにはどうすればよいですか?How do I view table data that's stored in Azure Cosmos DB for use with the Table API?

Azure Portal を使用してデータを参照できます。You can use the Azure portal to browse the data. また、Table API コードまたは次の回答で説明するツールを使うこともできます。You can also use the Table API code or the tools mentioned in the next answer.

Table API で動作するのはどのツールですか?Which tools work with the Table API?

Azure Storage Explorer を使うことができます。You can use the Azure Storage Explorer.

以前に指定した形式の接続文字列を取得する柔軟性を備えたツールは、新しい Table API に対応できます。Tools with the flexibility to take a connection string in the format specified previously can support the new Table API. テーブル ツールの一覧については、「Azure Storage クライアント ツール」をご覧ください。A list of table tools is provided on the Azure Storage Client Tools page.

操作のコンカレンシーは制御されますか?Is the concurrency on operations controlled?

はい。オプティミスティック コンカレンシーは、ETag メカニズムを使用して提供されます。Yes, optimistic concurrency is provided via the use of the ETag mechanism.

エンティティの OData クエリ モデルはサポートされていますか?Is the OData query model supported for entities?

はい。Table API は、OData クエリと LINQ クエリをサポートしています。Yes, the Table API supports OData query and LINQ query.

同じアプリケーションで Azure Table Storage と Azure Cosmos DB Table API に同時に接続できますか?Can I connect to Azure Table Storage and Azure Cosmos DB Table API side by side in the same application?

はい。同時に接続するには、CloudTableClient の 2 つのインスタンスを作成し、各インスタンスで接続文字列を使用して独自の URI を参照します。Yes, you can connect by creating two separate instances of the CloudTableClient, each pointing to its own URI via the connection string.

既存の Azure Table Storage アプリケーションをこのサービスに移行するにはどうすればよいですか?How do I migrate an existing Azure Table storage application to this offering?

AzCopyAzure Cosmos DB データ移行ツールの両方がサポートされています。AzCopy and the Azure Cosmos DB Data Migration Tool are both supported.

たとえば、最初は n GB のデータが時間の経過と共に 1 TB に増加した場合、このサービスではストレージ サイズはどのように拡張されるのですか?How is expansion of the storage size done for this service if, for example, I start with n GB of data and my data will grow to 1 TB over time?

Azure Cosmos DB は、水平スケーリングを使用して無制限のストレージを提供するように設計されています。Azure Cosmos DB is designed to provide unlimited storage via the use of horizontal scaling. このサービスは、ストレージを監視し、ストレージを効率的に増やすことができます。The service can monitor and effectively increase your storage.

Table API を監視するにはどうすればよいですか?How do I monitor the Table API offering?

Table API の [メトリック] ウィンドウを使って、要求とストレージ使用量を監視できます。You can use the Table API Metrics pane to monitor requests and storage usage.

必要なスループットを計算するにはどうすればよいですか?How do I calculate the throughput I require?

容量見積もりツールを使用して、操作に必要な TableThroughput を計算できます。You can use the capacity estimator to calculate the TableThroughput that's required for the operations. 詳細については、「Estimate Request Units and Data Storage (要求ユニットとデータ ストレージの見積もり)」をご覧ください。For more information, see Estimate Request Units and Data Storage. 一般に、エンティティを JSON として示し、操作数を指定します。In general, you can show your entity as JSON and provide the numbers for your operations.

エミュレーターで Table API SDK をローカルに使うことができますか?Can I use the Table API SDK locally with the emulator?

現時点ではありません。Not at this time.

既存のアプリケーションを Table API で動作させることはできますか?Can my existing application work with the Table API?

はい。同じ API がサポートされています。Yes, the same API is supported.

Table API の機能を使わない場合、既存の Azure Table Storage アプリケーションを SDK に移行する必要はありますか?Do I need to migrate my existing Azure Table storage applications to the SDK if I don't want to use the Table API features?

いいえ。中断することなく、Azure Table Storage 資産を作成したり、既存の Azure Table Storage 資産を使用したりできます。No, you can create and use existing Azure Table storage assets without interruption of any kind. ただし、Table API を使わない場合、自動インデックス、追加の整合性オプション、またはグローバル分散によるメリットは得られません。However, if you don't use the Table API, you can't benefit from the automatic index, the additional consistency option, or global distribution.

Table API で、Azure の複数のリージョン間でのデータのレプリケーションを追加するにはどうすればよいですか?How do I add replication of the data in the Table API across more than one region of Azure?

Azure Cosmos DB ポータルのグローバル レプリケーション設定を使用して、アプリケーションに適したリージョンを追加できます。You can use the Azure Cosmos DB portal's global replication settings to add regions that are suitable for your application. グローバル分散型のアプリケーションを開発するには、低待機時間の読み取りを実現するために、PreferredLocation 情報をローカル リージョンに設定したアプリケーションを追加する必要があります。To develop a globally distributed application, you should also add your application with the PreferredLocation information set to the local region for providing low read latency.

Table API でアカウントのプライマリ書き込みリージョンを変更するにはどうすればよいですか?How do I change the primary write region for the account in the Table API?

Azure Cosmos DB のグローバル レプリケーション ポータル ウィンドウを使用してリージョンを追加し、必要なリージョンにフェールオーバーできます。You can use the Azure Cosmos DB global replication portal pane to add a region and then fail over to the required region. 手順については、複数リージョンの Azure Cosmos DB アカウントを使用した開発に関する記事をご覧ください。For instructions, see Developing with multi-region Azure Cosmos DB accounts.

データを分散するときに低待機時間を実現するために、優先読み取りリージョンを構成するにはどうすればよいですか?How do I configure my preferred read regions for low latency when I distribute my data?

ローカルの場所から読み取りを実行できるようにするには、app.config ファイルの PreferredLocation キーを使用します。To help read from the local location, use the PreferredLocation key in the app.config file. 既存のアプリケーションの場合、LocationMode が設定されていると、Table API はエラーをスローします。For existing applications, the Table API throws an error if LocationMode is set. Table API は app.config ファイルからこの情報を取得するので、該当のコードを削除してください。Remove that code, because the Table API picks up this information from the app.config file.

Table API の整合レベルについてどのように考えればよいですか?How should I think about consistency levels in the Table API?

Azure Cosmos DB では、整合性、可用性、待機時間の最適なトレードオフを提供します。Azure Cosmos DB provides well-reasoned trade-offs between consistency, availability, and latency. Azure Cosmos DB には 5 つの整合性レベルが用意されているので、Table API 開発者は、データを照会するときにテーブル レベルで最適な整合性モデルを選び、個々の要求を行うことができます。Azure Cosmos DB offers five consistency levels to Table API developers, so you can choose the right consistency model at the table level and make individual requests while querying the data. クライアントは、接続時に整合性レベルを指定できます。When a client connects, it can specify a consistency level. レベルは、CreateCloudTableClient の consistencyLevel 引数を使って変更できます。You can change the level via the consistencyLevel argument of CreateCloudTableClient.

Table API では、既定で有界整合性制約の整合性が適用され、"自身の書き込みの読み取り" によって低待機時間の読み取りを実現します。The Table API provides low-latency reads with "Read your own writes," with Bounded-staleness consistency as the default. 詳細については、整合性レベルに関する記事をご覧ください。For more information, see Consistency levels.

既定では、Azure Standard Table はリージョン内では厳密な整合性を提供し、セカンダリの場所では最終的な整合性を提供します。By default, Azure Table storage provides Strong consistency within a region and Eventual consistency in the secondary locations.

Azure Cosmos DB Table API では、Azure Table Storage より多くの整合性レベルが提供されますか?Does Azure Cosmos DB Table API offer more consistency levels than Azure Table storage?

はい。Azure Cosmos DB の分散特性のメリットを得る方法については、「一貫性レベル」をご覧ください。Yes, for information about how to benefit from the distributed nature of Azure Cosmos DB, see Consistency levels. 整合性レベルは保証の対象となるため、安心して使用できます。Because guarantees are provided for the consistency levels, you can use them with confidence.

グローバル分散を有効にした場合、データのレプリケーションにどのくらいの時間がかかりますか?When global distribution is enabled, how long does it take to replicate the data?

Azure Cosmos DB では、データはローカル リージョンで永続的にコミットされ、わずか数ミリ秒ですぐに他のリージョンにプッシュされます。Azure Cosmos DB commits the data durably in the local region and pushes the data to other regions immediately in a matter of milliseconds. このレプリケーションは、データ センターのラウンドトリップ時間 (RTT) にのみ依存します。This replication is dependent only on the round-trip time (RTT) of the datacenter. Azure Cosmos DB のグローバル分散機能の詳細については、Azure Cosmos DB:Azure のグローバル分散データベース サービスに関する記事をご覧ください。To learn more about the global-distribution capability of Azure Cosmos DB, see Azure Cosmos DB: A globally distributed database service on Azure.

読み取り要求の整合性レベルを変更することはできますか?Can the read request consistency level be changed?

Azure Cosmos DB では、コンテナー レベル (テーブル) で整合性レベルを設定できます。With Azure Cosmos DB, you can set the consistency level at the container level (on the table). レベルを変更するには、.NET SDK を使って、app.config ファイルで TableConsistencyLevel キーの値を指定します。By using the .NET SDK, you can change the level by providing the value for TableConsistencyLevel key in the app.config file. 指定できる値は、Strong、Bounded Staleness、Session、Consistent Prefix、Eventual です。The possible values are: Strong, Bounded Staleness, Session, Consistent Prefix, and Eventual. 詳細については、「Azure Cosmos DB の調整可能なデータの一貫性レベル」をご覧ください。For more information, see Tunable data consistency levels in Azure Cosmos DB. 基本的な考え方として、要求の整合性レベルは、テーブルの設定よりも高いレベルに設定することはできません。The key idea is that you can't set the request consistency level at more than the setting for the table. たとえば、テーブルの整合性レベルを Eventual (最終的) に設定し、要求の整合性レベルを Strong (厳密) に設定することはできません。For example, you can't set the consistency level for the table at Eventual and the request consistency level at Strong.

リージョンがダウンした場合、Table API はフェールオーバーをどのように処理しますか?How does the Table API handle failover if a region goes down?

Table API は、Azure Cosmos DB のグローバルに分散されたプラットフォームを利用します。The Table API leverages the globally distributed platform of Azure Cosmos DB. アプリケーションがデータ センターのダウンタイムを許容できるようにするには、Azure Cosmos DB ポータルでアカウントのリージョンを少なくとももう 1 つ有効にします (複数リージョンの Azure Cosmos DB アカウントを使用した開発に関する記事を参照)。To ensure that your application can tolerate datacenter downtime, enable at least one more region for the account in the Azure Cosmos DB portal Developing with multi-region Azure Cosmos DB accounts. ポータルを使用してリージョンの優先順位を設定できます (複数リージョンの Azure Cosmos DB アカウントを使用した開発に関する記事を参照)。You can set the priority of the region by using the portal Developing with multi-region Azure Cosmos DB accounts.

アカウントのリージョンを必要な数だけ追加し、フェールオーバーの優先順位を指定してフェールオーバー先を制御できます。You can add as many regions as you want for the account and control where it can fail over to by providing a failover priority. データベースを使用するには、そのリージョンでもアプリケーションを提供する必要があります。To use the database, you need to provide an application there too. そうすれば、ダウンタイムが発生しなくなります。When you do so, your customers won't experience downtime. 最新の .NET クライアント SDK は自動回帰しますが、他の SDK はしません。The latest .NET client SDK is auto homing but the other SDKs aren't. つまり、ダウンしているリージョンを検出すると、新しいリージョンに自動的にフェールオーバーできます。That is, it can detect the region that's down and automatically fail over to the new region.

Table API ではバックアップは有効になっていますか?Is the Table API enabled for backups?

はい。Table API は、バックアップに Azure Cosmos DB のプラットフォームを利用します。Yes, the Table API leverages the platform of Azure Cosmos DB for backups. バックアップは自動的に作成されます。Backups are made automatically. 詳細については、Azure Cosmos DB でのオンライン バックアップと復元に関する記事をご覧ください。For more information, see Online backup and restore with Azure Cosmos DB.

Table API では、既定でエンティティのすべての属性のインデックスが作成されますか?Does the Table API index all attributes of an entity by default?

はい。エンティティのすべての属性のインデックスが既定で作成されます。Yes, all attributes of an entity are indexed by default. 詳細については、「Azure Cosmos DB でのインデックス作成ポリシー」をご覧ください。For more information, see Azure Cosmos DB: Indexing policies.

つまり、クエリを満たすために複数のインデックスを作成する必要はないということですか?Does this mean I don't have to create more than one index to satisfy the queries?

はい。Azure Cosmos DB Table API はすべての属性の自動インデックス作成機能を備えています。スキーマ定義は不要です。Yes, Azure Cosmos DB Table API provides automatic indexing of all attributes without any schema definition. この自動化により、開発者はインデックスの作成と管理ではなく、アプリケーションに注力できるようになります。This automation frees developers to focus on the application rather than on index creation and management. 詳細については、「Azure Cosmos DB でのインデックス作成ポリシー」をご覧ください。For more information, see Azure Cosmos DB: Indexing policies.

インデックス作成ポリシーは変更できますか?Can I change the indexing policy?

はい。インデックス定義を提供することでインデックス作成ポリシーを変更できます。Yes, you can change the indexing policy by providing the index definition. 設定を適切にエンコードし、エスケープする必要があります。You need to properly encode and escape the settings.

.NET SDK がない場合、インデックス作成ポリシーを設定できる唯一の方法は次のとおりです。ポータルの データ エクスプローラー で、変更する特定のテーブルに移動し、 [Scale & Settings](スケールと設定) > [インデックス作成ポリシー] で必要な変更を行って、 [保存] を選びます。For the non-.NET SDKs, the indexing policy can only be set in the portal at Data Explorer , navigate to the specific table you want to change and then go to the Scale & Settings ->Indexing Policy, make the desired change and then Save .

.NET SDK からは、app.config ファイルで送信できます。From the .NET SDK it can be submitted in the app.config file:

{
  "indexingMode": "consistent",
  "automatic": true,
  "includedPaths": [
    {
      "path": "/somepath",
      "indexes": [
        {
          "kind": "Range",
          "dataType": "Number",
          "precision": -1
        },
        {
          "kind": "Range",
          "dataType": "String",
          "precision": -1
        }
      ]
    }
  ],
  "excludedPaths":
[
 {
      "path": "/anotherpath"
 }
]
}

プラットフォームとしての Azure Cosmos DB は、並べ替え、集計、階層などの多数の機能を備えているようですが、Azure Cosmos DB as a platform seems to have lot of capabilities, such as sorting, aggregates, hierarchy, and other functionality. これらの機能は Table API に追加される予定ですか?Will you be adding these capabilities to the Table API?

Table API は Azure Table Storage と同じクエリ機能を提供します。The Table API provides the same query functionality as Azure Table storage. また、並べ替え、集計、地理空間クエリ、階層、さまざまな組み込み関数もサポートしています。Azure Cosmos DB also supports sorting, aggregates, geospatial query, hierarchy, and a wide range of built-in functions. 詳細については、SQL クエリに関する記事を参照してください。For more information, see SQL queries.

Table API の TableThroughput は、どのようなときに変更する必要がありますか?When should I change TableThroughput for the Table API?

次のいずれかの条件に該当する場合は、TableThroughput を変更してください。You should change TableThroughput when either of the following conditions applies:

  • データの抽出、変換、読み込み (ETL) を実行している。または、短時間に大量のデータをアップロードする必要がある。You're performing an extract, transform, and load (ETL) of data, or you want to upload a lot of data in short amount of time.
  • バックエンドでコンテナーまたはコンテナーのセットのスループットを増やす必要があるYou need more throughput from the container or from a set of containers at the back end. (たとえば、使用されたスループットがプロビジョニング スループットを超えており、調整が行われている)。For example, you see that the used throughput is more than the provisioned throughput, and you're getting throttled. 詳細については、「コンテナーとデータベースのスループットのプロビジョニング」を参照してください。For more information, see Set throughput for Azure Cosmos containers.

Table API のテーブルのスループットはスケールアップまたはスケールダウンできますか?Can I scale up or scale down the throughput of my Table API table?

はい。スループットのスケーリングは、Azure Cosmos DB ポータルのスケール ウィンドウを使用して実行できます。Yes, you can use the Azure Cosmos DB portal's scale pane to scale the throughput. 詳細については、スループットの設定に関する記事をご覧ください。For more information, see Set throughput.

新しくプロビジョニングされたテーブルには、既定の TableThroughput が設定されるのですか?Is a default TableThroughput set for newly provisioned tables?

はい。app.config で TableThroughput をオーバーライドしておらず、Azure Cosmos DB であらかじめ作成されているコンテナーを使用していない場合、スループットが 400 に設定されたテーブルが作成されます。Yes, if you don't override the TableThroughput via app.config and don't use a pre-created container in Azure Cosmos DB, the service creates a table with throughput of 400.

Azure Table Storage サービスの既存の顧客を対象とする価格の変更はありますか?Is there any change of pricing for existing customers of the Azure Table storage service?

[なし] :None. Azure Table Storage の既存のお客様を対象とする価格の変更はありません。There's no change in price for existing Azure Table storage customers.

Table API の料金はどのように計算されますか?How is the price calculated for the Table API?

料金は、割り当てられた TableThroughput によって異なります。The price depends on the allocated TableThroughput.

Table API では、テーブルのレート制限にどのように対処すればよいですか?How do I handle any rate limiting on the tables in Table API offering?

要求レートが基になるコンテナーまたはコンテナーのセットのプロビジョニング スループットの容量を超えると、エラーが発生し、SDK では再試行ポリシーの適用によって呼び出しが再試行されます。If the request rate is more than the capacity of the provisioned throughput for the underlying container or a set of containers, you get an error, and the SDK retries the call by applying the retry policy.

Azure Cosmos DB の Table API サービスを利用するために、PartitionKey および RowKey とは別にスループットを選ぶ必要があるのはなぜですか?Why do I need to choose a throughput apart from PartitionKey and RowKey to take advantage of the Table API offering of Azure Cosmos DB?

Azure Cosmos DB では、app.config ファイルまたはポータルでコンテナーのスループットが指定されていない場合、既定のスループットが設定されます。Azure Cosmos DB sets a default throughput for your container if you don't provide one in the app.config file or via the portal.

Azure Cosmos DB では、操作に上限を設定してパフォーマンスと待機時間を保証します。Azure Cosmos DB provides guarantees for performance and latency, with upper bounds on operation. この保証は、エンジンがテナントの操作にガバナンスを適用できる場合に可能になります。This guarantee is possible when the engine can enforce governance on the tenant's operations. TableThroughput を設定すると、プラットフォームでこの容量が予約され、操作が正常に完了することが保証されるので、保証されたスループットと待機時間が確保されます。Setting TableThroughput ensures that you get the guaranteed throughput and latency, because the platform reserves this capacity and guarantees operational success.

また、スループットの仕様により、スループットを弾力的に変更して、アプリケーションの季節性によるメリットを享受し、スループットのニーズを満たして、コストを削減できます。By using the throughput specification, you can elastically change it to benefit from the seasonality of your application, meet the throughput needs, and save costs.

データの保存にしか料金を支払っておらず、クエリを実行することはほとんどないため、Azure Table Storage は安価でした。Azure Table storage has been inexpensive for me, because I pay only to store the data, and I rarely query. Azure Cosmos DB Table API では、トランザクションを 1 つも実行していない場合や何も保存していない場合でも課金されているようです。The Azure Cosmos DB Table API offering seems to be charging me even though I haven't performed a single transaction or stored anything. 説明できますか。Can you explain?

Azure Cosmos DB は、可用性、待機時間、スループットが保証された、グローバル分散型の SLA ベースのシステムとして設計されています。Azure Cosmos DB is designed to be a globally distributed, SLA-based system with guarantees for availability, latency, and throughput. 他のシステムのスループットとは異なり、Azure Cosmos DB でスループットを予約すると、そのスループットが保証されます。When you reserve throughput in Azure Cosmos DB, it's guaranteed, unlike the throughput of other systems. Azure Cosmos DB には、セカンダリ インデックスやグローバル分散など、お客様から要望があった追加機能が用意されています。Azure Cosmos DB provides additional capabilities that customers have requested, such as secondary indexes and global distribution.

Azure Table Storage にデータを取り込んだときに、(パーティションがいっぱいであることを示す) "クォータが上限に達した" ことを通知するメッセージが表示されたことは一度もありませんでした。I never get a quota full" notification (indicating that a partition is full) when I ingest data into Azure Table storage. Table API では、このメッセージが表示されました。With the Table API, I do get this message. このサービスには制限があり、既存のアプリケーションを変更しなければならないのでしょうか?Is this offering limiting me and forcing me to change my existing application?

Azure Cosmos DB は、待機時間、スループット、可用性、整合性を保証し、無制限のスケールを提供する SLA ベースのシステムです。Azure Cosmos DB is an SLA-based system that provides unlimited scale, with guarantees for latency, throughput, availability, and consistency. 保証された Premium パフォーマンスを確保するために、データ サイズとインデックスが管理可能であり、スケーラブルであることを確認してください。To ensure guaranteed premium performance, make sure that your data size and index are manageable and scalable. パーティション キーごとのエンティティ数または項目数に 20 GB の制限を設けているのは、検索やクエリの優れたパフォーマンスを確実に提供するためです。The 20-GB limit on the number of entities or items per partition key is to ensure that we provide great lookup and query performance. すべての情報を 1 つのパーティションに格納し、そのパーティションに対してクエリを実行すると、ホット パーティションになります。Azure Storage でもアプリケーションが適切にスケールできるように、ホット パーティションが発生 しない ようにすることをお勧めします。To ensure that your application scales well, even for Azure Storage, we recommend that you not create a hot partition by storing all information in one partition and querying it.

Table API で PartitionKey と RowKey が必要なのはそのためですか?So PartitionKey and RowKey are still required with the Table API?

はい。Yes. Table API の外部からアクセスできる領域は、Azure Table Storage SDK のその領域とほぼ同じであるため、パーティション キーによってデータを効率的に分散させることができます。Because the surface area of the Table API is similar to that of the Azure Table storage SDK, the partition key provides an efficient way to distribute the data. 行キーはそのパーティション内で一意です。The row key is unique within that partition. 行キーが存在する必要があり、Standard SDK の場合と同様に、行キーを null にすることはできません。The row key needs to be present and can't be null as in the standard SDK. RowKey の長さは 255 バイト、PartitionKey の長さは 1 KB です。The length of RowKey is 255 bytes and the length of PartitionKey is 1 KB.

Table API のエラー メッセージはどのようなものですか?What are the error messages for the Table API?

Azure Table Storage と Azure Cosmos DB Table API は同じ SDK を使っているので、ほとんどのエラーは同じです。Azure Table storage and Azure Cosmos DB Table API use the same SDKs so most of the errors will be the same.

Table API で多数のテーブルを次々に作成しようとすると調整が行われるのはなぜですか?Why do I get throttled when I try to create lot of tables one after another in the Table API?

Azure Cosmos DB は、待機時間、スループット、可用性、整合性を保証する SLA ベースのシステムです。Azure Cosmos DB is an SLA-based system that provides latency, throughput, availability, and consistency guarantees. Azure Cosmos DB はプロビジョニングされるシステムであるため、これらの要件を保証するためにリソースが予約されています。Because it's a provisioned system, it reserves resources to guarantee these requirements. テーブルを次々に作成すると、その作成ペースが検出され、調整が行われます。The rapid rate of creation of tables is detected and throttled. テーブルの作成ペースを確認し、1 分あたり 5 つ未満に抑えることをお勧めします。We recommend that you look at the rate of creation of tables and lower it to less than 5 per minute. Table API はプロビジョニングされるシステムであることに注意してください。Remember that the Table API is a provisioned system. プロビジョニングした時点から料金が発生します。The moment you provision it, you'll begin to pay for it.

SDK やバグに関するフィードバックを提供するにはどうすればよいですか?How do I provide feedback about the SDK or bugs?

次のいずれかの方法でフィードバックをお寄せください。You can share your feedback in any of the following ways:

次のステップNext steps