Azure Cosmos DB のさまざまな API についてよく寄せられる質問Frequently asked questions about different APIs in Azure Cosmos DB

Azure Cosmos DB の一般的なユース ケースを教えてください。What are the typical use cases for Azure Cosmos DB?

Azure Cosmos DB は、新しい Web、モバイル、ゲーム、IoT の各アプリケーションに適しています。これらにおいては、パフォーマンス、ミリ秒レベルの高速応答時間、スキーマフリー データに対してクエリを実行できることが重要になります。Azure Cosmos DB is a good choice for new web, mobile, gaming, and IoT applications where automatic scale, predictable performance, fast order of millisecond response times, and the ability to query over schema-free data is important. Azure Cosmos DB は迅速な開発に役立ち、アプリケーション データ モデルの継続的な反復をサポートします。Azure Cosmos DB lends itself to rapid development and supporting the continuous iteration of application data models. ユーザーが生成したコンテンツとデータを管理するアプリケーションは、Azure Cosmos DB の一般的なユース ケースです。Applications that manage user-generated content and data are common use cases for Azure Cosmos DB.

Azure Cosmos DB では、予測可能なパフォーマンスをどのようにして実現していますか?How does Azure Cosmos DB offer predictable performance?

要求ユニット (RU) とは、Azure Cosmos DB におけるスループットの単位です。A request unit (RU) is the measure of throughput in Azure Cosmos DB. 1 RU のスループットは、1 KB のドキュメントを取得するスループットに相当します。A 1RU throughput corresponds to the throughput of the GET of a 1-KB document. Azure Cosmos DB におけるすべての操作 (読み取り、書き込み、SQL クエリ、ストアド プロシージャの実行など) には、操作を完了するために必要なスループットに基づいて明確な RU 値が設定されています。Every operation in Azure Cosmos DB, including reads, writes, SQL queries, and stored procedure executions, has a deterministic RU value that's based on the throughput required to complete the operation. CPU、IO、メモリや、これらがアプリケーションのスループットに及ぼす影響について考えるのではなく、RU という 1 つの単位を基にして考えることができます。Instead of thinking about CPU, IO, and memory and how they each affect your application throughput, you can think in terms of a single RU measure.

各 Azure Cosmos コンテナーは、1 秒あたりのスループットを表す RU を単位として、プロビジョニング スループットを使用して構成できます。You can configure each Azure Cosmos container with provisioned throughput in terms of RUs of throughput per second. あらゆる規模のアプリケーションで、個々の要求のベンチマークを実行して RU 値を測定し、すべての要求の要求ユニットの合計に対処できるようにコンテナーをプロビジョニングできます。For applications of any scale, you can benchmark individual requests to measure their RU values, and provision a container to handle the total of request units across all requests. アプリケーションのニーズの進化に合わせて、コンテナーのスループットをスケールアップまたはスケールダウンすることもできます。You can also scale up or scale down your container's throughput as the needs of your application evolve. 要求ユニットの詳細とコンテナーのニーズを判断する方法については、スループット計算ツールをお試しください。For more information about request units and for help with determining your container needs, try the throughput calculator.

Azure Cosmos DB は、キー/値、多桁式、ドキュメント、グラフなどのさまざまなデータ モデルをどのようにサポートしていますか?How does Azure Cosmos DB support various data models such as key/value, columnar, document, and graph?

キー/値 (テーブル)、多桁式、ドキュメント、およびグラフ データ モデルは、Azure Cosmos DB のベースが ARS (アトム、レコード、およびシーケンス) 設計であるため、すべてネイティブにサポートされています。Key/value (table), columnar, document, and graph data models are all natively supported because of the ARS (atoms, records, and sequences) design that Azure Cosmos DB is built on. アトム、レコード、およびシーケンスは、さまざまなデータ モデルに容易にマップしたり投影したりできます。Atoms, records, and sequences can be easily mapped and projected to various data models. モデルのサブセット用の API は今すぐ使用でき (SQL、MongoDB、Table、Gremlin)、追加のデータ モデルに固有のその他の API は将来使用可能になります。The APIs for a subset of models are available right now (SQL, MongoDB, Table, and Gremlin) and others specific to additional data models will be available in the future.

Azure Cosmos DB は、開発者にスキーマやセカンダリ インデックスを要求することなく、取り込んだすべてのデータを自動的にインデックス作成できるスキーマ独立型インデックス作成エンジンを備えています。Azure Cosmos DB has a schema agnostic indexing engine capable of automatically indexing all the data it ingests without requiring any schema or secondary indexes from the developer. このエンジンは、インデックスおよびクエリ処理サブシステムから記憶域のレイアウトを分離する一連の論理インデックス レイアウト (転置、多桁式、ツリー) に依存しています。The engine relies on a set of logical index layouts (inverted, columnar, tree) which decouple the storage layout from the index and query processing subsystems. さらに Cosmos DB は、一連のワイヤ プロトコルと API を拡張可能な方法でサポートし、それらをコア データ モデル (1) と論理インデックス レイアウト (2) に効率的に変換することによって複数のデータ モデルをネイティブにサポートできるようにする独自の能力も備えています。Cosmos DB also has the ability to support a set of wire protocols and APIs in an extensible manner and translate them efficiently to the core data model (1) and the logical index layouts (2) making it uniquely capable of supporting more than one data model natively.

複数の API を使用して自分のデータにアクセスできますか?Can I use multiple APIs to access my data?

Azure Cosmos DB は、Microsoft によってグローバルに配布されるマルチモデル データベース サービスです。Azure Cosmos DB is Microsoft's globally distributed, multi-model database service. マルチモデルでは、Azure Cosmos DB で複数の API と複数のデータ モデルがサポートされますが、API が異なると、ストレージやワイヤ プロトコルに使用されるデータ形式が異なります。Where multi-model means Azure Cosmos DB supports multiple APIs and multiple data models, different APIs use different data formats for storage and wire protocol. たとえば、SQL では JSON が使用され、MongoDB では BSON が使用され、Table では EDM が使用され、Cassandra では CQL が使用され、Gremlin では GraphSON が使用されます。For example, SQL uses JSON, MongoDB uses BSON, Table uses EDM, Cassandra uses CQL, Gremlin uses GraphSON. そのため、特定のアカウントでデータにアクセスするときは、常に同じ API を使用することをお勧めします。As a result, we recommend using the same API for all access to the data in a given account.

相互運用が可能な Gremlin と SQL API を除き、各 API は独立して動作します。Each API operates independently, except the Gremlin and SQL API, which are interoperable.

Azure Cosmos DB は HIPAA に準拠していますか?Is Azure Cosmos DB HIPAA compliant?

はい。Azure Cosmos DB は HIPAA に準拠しています。Yes, Azure Cosmos DB is HIPAA-compliant. HIPAA は、個別に識別できる医療情報の使用、開示、および保護するための要件を確立しています。HIPAA establishes requirements for the use, disclosure, and safeguarding of individually identifiable health information. 詳細については、Microsoft セキュリティ センターを参照してください。For more information, see the Microsoft Trust Center.

Azure Cosmos DB のストレージの制限を教えてください。What are the storage limits of Azure Cosmos DB?

Azure Cosmos DB でコンテナーが格納できるデータの合計量に制限はありません。There's no limit to the total amount of data that a container can store in Azure Cosmos DB.

Azure Cosmos DB のスループットの制限を教えてください。What are the throughput limits of Azure Cosmos DB?

Azure Cosmos DB でコンテナーがサポートできるスループットの総量に制限はありません。There's no limit to the total amount of throughput that a container can support in Azure Cosmos DB. 基本的な考え方は、十分な数のパーティション キーにワークロードをほぼ均等に分散させることです。The key idea is to distribute your workload roughly evenly among a sufficiently large number of partition keys.

ダイレクトとゲートウェイの接続モードは暗号化されますか?Are Direct and Gateway connectivity modes encrypted?

はい、どちらのモードも常に完全に暗号化されます。Yes both modes are always fully encrypted.

Azure Cosmos DB の料金はいくらですか?How much does Azure Cosmos DB cost?

詳細については、Azure Cosmos DB の価格の詳細に関するページをご覧ください。For details, refer to the Azure Cosmos DB pricing details page. Azure Cosmos DB の利用料金は、プロビジョニング済みコンテナーの数、コンテナーがオンラインであった時間数、各コンテナーのプロビジョニング スループットによって決まります。Azure Cosmos DB usage charges are determined by the number of provisioned containers, the number of hours the containers were online, and the provisioned throughput for each container.

無料アカウントはありますか?Is a free account available?

はい。契約することなく、期間限定のアカウントに無料でサインアップできます。Yes, you can sign up for a time-limited account at no charge, with no commitment. サインアップするには、「Azure Cosmos DB を無料で試す」にアクセスするか、Try Azure Cosmos DB に関する FAQ セクションで詳細を確認してください。To sign up, visit Try Azure Cosmos DB for free or read more in the Try Azure Cosmos DB FAQ.

Azure を初めてお使いの場合は、Azure の無料アカウントにサインアップできます。このアカウントには、Azure のすべてのサービスを試すための試用期間 (30 日) とクレジットが与えられます。If you're new to Azure, you can sign up for an Azure free account, which gives you 30 days and a credit to try all the Azure services. Visual Studio サブスクリプションを持っている場合は、無料の Azure クレジットを利用して、すべての Azure サービスを使うこともできます。If you have a Visual Studio subscription, you're also eligible for free Azure credits to use on any Azure service.

また、Azure Cosmos DB Emulator を使用すると、Azure サブスクリプションを作成しなくても、ローカルでのアプリケーションの開発とテストを無料で行うことができます。You can also use the Azure Cosmos DB Emulator to develop and test your application locally for free, without creating an Azure subscription. Azure Cosmos DB Emulator でのアプリケーションの動作にご満足いただけたら、クラウドでの Azure Cosmos DB アカウントの使用に切り替えることができます。When you're satisfied with how your application is working in the Azure Cosmos DB Emulator, you can switch to using an Azure Cosmos DB account in the cloud.

Azure Cosmos DB に関するその他の支援を得るにはどうすればよいですか?How can I get additional help with Azure Cosmos DB?

技術的な質問をするには、次の 2 つの質問および回答フォーラムのいずれかに投稿することができます。To ask a technical question, you can post to one of these two question and answer forums:

新機能を要求するには、User voice で新しい要求を作成します。To request new features, create a new request on User voice.

アカウントを使用して問題を修正するには、Azure Portal でサポート要求を提出します。To fix an issue with your account, file a support request in the Azure portal.

その他の質問は、askcosmosdb@microsoft.com でチームに送信できます。ただし、これはテクニカル サポートの別名ではありません。Other questions can be submitted to the team at askcosmosdb@microsoft.com; however this isn't a technical support alias.

Azure Cosmos DB サブスクリプションを試すTry Azure Cosmos DB subscriptions

現在、一定期間に限り、サブスクリプション不要で、課金も契約もなしで Azure Cosmos DB をご利用いただけます。You can now enjoy a time-limited Azure Cosmos DB experience without a subscription, free of charge and commitments. Try Azure Cosmos DB サブスクリプションにサインアップするには、「Azure Cosmos DB を無料で試す」にアクセスしてください。To sign up for a Try Azure Cosmos DB subscription, go to Try Azure Cosmos DB for free. このサブスクリプションは Azure 無料試用版とは別のものであり、Azure 無料試用版または Azure 有料サブスクリプションと併用できます。This subscription is separate from the Azure Free Trial, and can be used along with an Azure Free Trial or an Azure paid subscription.

Try Azure Cosmos DB サブスクリプションは、Azure Portal で、ユーザー ID に関連付けられた他のサブスクリプションの横に表示されます。Try Azure Cosmos DB subscriptions appear in the Azure portal next other subscriptions associated with your user ID.

Try Azure Cosmos DB サブスクリプションには、次の条件が適用されます。The following conditions apply to Try Azure Cosmos DB subscriptions:

  • SQL、Gremlin API、Table アカウントのサブスクリプションあたり 1 つのプロビジョニング スループットのコンテナーOne throughput provisioned container per subscription for SQL, Gremlin API, and Table accounts.
  • MongoDB アカウントのサブスクリプションあたり最大 3 つのプロビジョニング スループットのコレクションUp to three throughput provisioned collections per subscription for MongoDB accounts.
  • サブスクリプションあたり 1 つのプロビジョニング スループットのデータベースOne throughput provisioned database per subscription. プロビジョニング スループットのデータベースには、任意の数のコンテナーを含めることができます。Throughput provisioned databases can contain any number of containers inside.
  • 10 GB のストレージ容量。10-GB storage capacity.
  • グローバルなレプリケーションは、米国中部、北ヨーロッパ、東南アジアの各 Azure リージョンで利用可能ですGlobal replication is available in the following Azure regions: Central US, North Europe, and Southeast Asia
  • コンテナー レベルでプロビジョニングされている場合、最大 5 K RU/s のスループット。Maximum throughput of 5 K RU/s when provisioned at the container level.
  • データベース レベルでプロビジョニングされている場合、最大 20 K RU/s のスループット。Maximum throughput of 20 K RU/s when provisioned at the database level.
  • サブスクリプションの有効期限は 30 日後に切れます。これは合計で最大 31 日まで延長できます。Subscriptions expire after 30 days, and can be extended to a maximum of 31 days total.
  • Try Azure Cosmos DB アカウントでは Azure サポート チケットを作成できません。ただし、既存のサポート プランをご利用のサブスクライバーにはサポートが提供されます。Azure support tickets can't be created for Try Azure Cosmos DB accounts; however, support is provided for subscribers with existing support plans.

Azure Cosmos DB の設定Set up Azure Cosmos DB

Azure Cosmos DB にサインアップするにはどうすればよいですか?How do I sign up for Azure Cosmos DB?

Azure Cosmos DB は Azure Portal で利用できます。Azure Cosmos DB is available in the Azure portal. まず、Azure サブスクリプションにサインアップします。First, sign up for an Azure subscription. サインアップ後、Azure サブスクリプションに Azure Cosmos DB アカウントを追加できます。After you've signed up, you can add an Azure Cosmos DB account to your Azure subscription.

マスター キーとは何ですか?What is a master key?

マスター キーは、アカウントのすべてのリソースにアクセスするためのセキュリティ トークンです。A master key is a security token to access all resources for an account. キーを保持する個人には、データベース アカウント内のすべてのリソースへの読み取り/書き込みアクセスが許可されます。Individuals with the key have read and write access to all resources in the database account. マスター キーを配布するときには十分な注意が必要です。Use caution when you distribute master keys. プライマリ マスター キーとセカンダリ マスター キーは、Azure Portal[キー] ブレードで入手できます。The primary master key and secondary master key are available on the Keys blade of the Azure portal. リソース キーの詳細については、「 アクセス キーを表示、コピー、および再生成する」を参照してください。For more information about keys, see View, copy, and regenerate access keys.

PreferredLocations として設定できるリージョンを教えてください。What are the regions that PreferredLocations can be set to?

PreferredLocations 値は、Cosmos DB を利用できる Azure リージョンのいずれかに設定できます。The PreferredLocations value can be set to any of the Azure regions in which Cosmos DB is available. 利用可能なリージョンの一覧については、「Azure リージョン」をご覧ください。For a list of available regions, see Azure regions.

Azure のデータ センター経由で世界中にデータを配布するときに注意すべきことはありますか?Is there anything I should be aware of when distributing data across the world via the Azure datacenters?

Azure Cosmos DB は、「Azure リージョン」ページに記載されているすべての Azure リージョンにわたって存在します。Azure Cosmos DB is present across all Azure regions, as specified on the Azure regions page. Azure Cosmos DB はコア サービスであるため、すべての新しいデータ センターに Azure Cosmos DB が存在することになります。Because it's the core service, every new datacenter has an Azure Cosmos DB presence.

リージョンを設定するときは、Azure Cosmos DB では主権のあるクラウドと政府機関のクラウドが重視されることに注意してください。When you set a region, remember that Azure Cosmos DB respects sovereign and government clouds. つまり、独立リージョンにアカウントを作成した場合、その独立リージョンの外部にレプリケートすることはできません。That is, if you create an account in a sovereign region, you can't replicate out of that sovereign region. 同様に、外部のアカウントから他の独立した場所へのレプリケーションを有効にすることはできません。Similarly, you can't enable replication into other sovereign locations from an outside account.

コンテナー レベルのスループットのプロビジョニングからデータベース レベルのスループットのプロビジョニングに切り替えられますか?Is it possible to switch from container level throughput provisioning to database level throughput provisioning? またはその逆はどうですかOr vice versa

コンテナー レベルとデータベース レベルのスループットのプロビジョニングは別個のサービスであり、これらのサービス間で切り替えるには移行元から移行先へのデータの移行が必要になります。Container and database level throughput provisioning are separate offerings and switching between either of these require migrating data from source to destination. つまり、新しいデータベースまたは新しいコンテナーを作成した後、Bulk Executor ライブラリまたは Azure Data Factory を使用してデータを移行する必要があります。Which means you need to create a new database or a new container and then migrate data by using bulk executor library or Azure Data Factory.

Azure CosmosDB では、時系列分析がサポートされていますか。Does Azure CosmosDB support time series analysis?

はい。Azure CosmosDB では、時系列分析がサポートされています。時系列パターンのサンプルについては、こちらをご覧ください。Yes Azure CosmosDB supports time series analysis, here is a sample for time series pattern. このサンプルでは、変更フィードを利用し、時系列データを集計したビューを構築する方法をご確認いただけます。This sample shows how to use change feed to build aggregated views over time series data. Spark Streaming やその他のストリーム データ プロセッサを使用することでこの手法を拡張できます。You can extend this approach by using spark streaming or another stream data processor.

SQL APISQL API

SQL API に対する開発を開始するにはどうすればよいですか?How do I start developing against the SQL API?

まず、Azure サブスクリプションにサインアップする必要があります。First you must sign up for an Azure subscription. Azure サブスクリプションにサインアップしたら、SQL API コンテナーを Azure サブスクリプションに追加できます。Once you sign up for an Azure subscription, you can add a SQL API container to your Azure subscription. Azure Cosmos DB アカウントを追加する手順については、「Azure Cosmos アカウントを作成する」を参照してください。For instructions on adding an Azure Cosmos DB account, see Create an Azure Cosmos database account.

.NET、Python、Node.js、JavaScript、Java については、SDK が利用可能です。SDKs are available for .NET, Python, Node.js, JavaScript, and Java. 開発者は、RESTful HTTP API を使用して、さまざまなプラットフォームや言語で Azure Cosmos DB リソースを操作することもできます。Developers can also use the RESTful HTTP APIs to interact with Azure Cosmos DB resources from various platforms and languages.

開発作業を速やかに開始するために、既製のサンプルを利用できますか?Can I access some ready-made samples to get a head start?

SQL API の .NETJavaNode.jsPython の各 SDK のサンプルを GitHub で入手できます。Samples for the SQL API .NET, Java, Node.js, and Python SDKs are available on GitHub.

SQL API データベースはスキーマフリー データをサポートしていますか?Does the SQL API database support schema-free data?

はい。SQL API では、スキーマ定義やヒントを必要とせずに、アプリケーションが任意の JSON ドキュメントを格納できます。Yes, the SQL API allows applications to store arbitrary JSON documents without schema definitions or hints. データは、Azure Cosmos DB SQL クエリ インターフェイスを使用してクエリにすぐに使用できます。Data is immediately available for query through the Azure Cosmos DB SQL query interface.

SQL API は ACID トランザクションをサポートしていますか?Does the SQL API support ACID transactions?

はい。SQL API では、JavaScript のストアド プロシージャとトリガーとして表現されるクロス ドキュメント トランザクションをサポートしています。Yes, the SQL API supports cross-document transactions expressed as JavaScript-stored procedures and triggers. トランザクションは、各コンテナー内の単一のパーティションを対象とし、他の同時実行されるコードおよびユーザー要求から "完全に" 分離された ACID セマンティクスで実行されます。Transactions are scoped to a single partition within each container and executed with ACID semantics as "all or nothing," isolated from other concurrently executing code and user requests. JavaScript アプリケーション コードのサーバー側実行により例外がスローされた場合は、トランザクション全体がロールバックされます。If exceptions are thrown through the server-side execution of JavaScript application code, the entire transaction is rolled back.

コンテナーとは何ですか?What is a container?

コンテナーとは、ドキュメントと、関連する JavaScript アプリケーション ロジックのグループです。A container is a group of documents and their associated JavaScript application logic. コンテナーは課金対象のエンティティであり、そのコストは、スループットと使用しているストレージによって決まります。A container is a billable entity, where the cost is determined by the throughput and used storage. コンテナーは、1 つ以上のパーティションまたはサーバーにまたがって存在することができ、拡張性があるので、対応できるストレージまたはスループットの量には実質的に制限はありません。Containers can span one or more partitions or servers and can scale to handle practically unlimited volumes of storage or throughput.

  • SQL API の場合、コンテナーは Container にマップされます。For SQL API, a container maps to a Container.
  • Cosmos DB の MongoDB 用 API アカウントの場合、コンテナーは Collection にマップされます。For Cosmos DB's API for MongoDB accounts, a container maps to a Collection.
  • Cassandra および Table API アカウントの場合、コンテナーはテーブルにマップされます。For Cassandra and Table API accounts, a container maps to a Table.
  • Gremlin API アカウントの場合、コンテナーはグラフにマップされます。For Gremlin API accounts, a container maps to a Graph.

コンテナーは、Azure Cosmos DB の課金エンティティでもあります。Containers are also the billing entities for Azure Cosmos DB. 各コンテナーは、プロビジョニング済みスループットと使用されたストレージ領域に基づいて時間単位で課金されます。Each container is billed hourly, based on the provisioned throughput and used storage space. 詳細については、「Azure Cosmos DB の価格」を参照してください。For more information, see Azure Cosmos DB Pricing.

どのようにしてデータベースを作成しますか?How do I create a database?

データベースは、Azure portal (「コンテナーの追加」を参照)、Azure Cosmos DB SDK のいずれか、または REST API を使用して作成できます。You can create databases by using the Azure portal, as described in Add a container, one of the Azure Cosmos DB SDKs, or the REST APIs.

どのようにしてユーザーおよびアクセス許可を設定しますか?How do I set up users and permissions?

ユーザーとアクセス許可は、Cosmos DB API SDK または REST API のいずれかを使用して作成できます。You can create users and permissions by using one of the Cosmos DB API SDKs or the REST APIs.

SQL API は SQL をサポートしていますか?Does the SQL API support SQL?

SQL API アカウントでサポートされる SQL クエリ言語は、SQL Server でサポートされるクエリ機能の強化版サブセットです。The SQL query language supported by SQL API accounts is an enhanced subset of the query functionality that's supported by SQL Server. Azure Cosmos DB の SQL クエリ言語は、高度な階層型の関係演算子と、JavaScript ベースのユーザー定義関数 (UDF) による機能拡張を提供します。The Azure Cosmos DB SQL query language provides rich hierarchical and relational operators and extensibility via JavaScript-based, user-defined functions (UDFs). JSON 文法では、ラベル付きノードが配置されたツリーとして JSON ドキュメントをモデル化できます。これは、Azure Cosmos DB の自動インデックス作成手法と Azure Cosmos DB の SQL クエリ言語の両方で使用されます。JSON grammar allows for modeling JSON documents as trees with labeled nodes, which are used by both the Azure Cosmos DB automatic indexing techniques and the SQL query dialect of Azure Cosmos DB. SQL 文法の使用方法については、SQL クエリ に関する記事をご覧ください。For information about using SQL grammar, see the SQL Query article.

SQL API は SQL 集計関数をサポートしていますか?Does the SQL API support SQL aggregation functions?

SQL API は、SQL 文法の COUNTMINMAXAVGSUM の各集計関数を使用した、あらゆるスケールでの低待機時間の集計をサポートしています。The SQL API supports low-latency aggregation at any scale via aggregate functions COUNT, MIN, MAX, AVG, and SUM via the SQL grammar. 詳細については、「集計関数」をご覧ください。For more information, see Aggregate functions.

SQL API はどのようにして同時実行を提供しますか?How does the SQL API provide concurrency?

SQL API は、HTTP エンティティ タグ (ETag) によるオプティミスティック コンカレンシー (OCC) をサポートしています。The SQL API supports optimistic concurrency control (OCC) through HTTP entity tags, or ETags. すべての SQL API リソースに ETag があり、ドキュメントが更新されるたびにサーバーで ETag が設定されます。Every SQL API resource has an ETag, and the ETag is set on the server every time a document is updated. すべての応答メッセージに ETag ヘッダーと現在の値が含まれます。The ETag header and the current value are included in all response messages. ETag を If-Match ヘッダーと共に使用することで、サーバーはリソースを更新する必要があるかどうかを判断できるようになります。ETags can be used with the If-Match header to allow the server to decide whether a resource should be updated. If-Match 値は、チェック対象の ETag 値です。The If-Match value is the ETag value to be checked against. 対象の ETag 値がサーバーの ETag 値と一致する場合に、リソースが更新されます。If the ETag value matches the server ETag value, the resource is updated. ETag が最新ではない場合、サーバーは操作を拒否して "HTTP 412 Precondition failure" 応答コードを返します。If the ETag is no longer current, the server rejects the operation with an "HTTP 412 Precondition failure" response code. この場合、クライアントは、リソースを再フェッチしてリソースの最新の ETag 値を取得します。The client then refetches the resource to acquire the current ETag value for the resource. また、ETag を If-None-Match ヘッダーと共に使用すると、リソースの再フェッチが必要かどうかを判断できます。In addition, ETags can be used with the If-None-Match header to determine whether a refetch of a resource is needed.

.NET でオプティミスティック コンカレンシーを使用するには、 AccessCondition クラスを使用します。To use optimistic concurrency in .NET, use the AccessCondition class. .NET サンプルについては、GitHub にある DocumentManagement サンプルの Program.cs を参照してください。For a .NET sample, see Program.cs in the DocumentManagement sample on GitHub.

どのようにして SQL API のトランザクションを実行しますか?How do I perform transactions in the SQL API?

SQL API は、JavaScript のストアド プロシージャとトリガーによる、統合された言語のトランザクションをサポートしています。The SQL API supports language-integrated transactions via JavaScript-stored procedures and triggers. スクリプト内のすべてのデータベース操作は、スナップショット分離下で実行されます。All database operations inside scripts are executed under snapshot isolation. 単一パーティション コンテナーの場合は、コンテナーが実行対象となります。If it's a single-partition container, the execution is scoped to the container. コンテナーがパーティション分割されている場合は、コンテナー内の同じパーティション キー値を持つドキュメントが実行対象となります。If the container is partitioned, the execution is scoped to documents with the same partition-key value within the container. ドキュメント バージョン (ETag) のスナップショットは、トランザクションの開始時に取得され、スクリプトが成功した場合のみコミットされます。A snapshot of the document versions (ETags) is taken at the start of the transaction and committed only if the script succeeds. JavaScript がエラーをスローした場合、トランザクションはロールバックされます。If the JavaScript throws an error, the transaction is rolled back. 詳細については、「Azure Cosmos DB のサーバー側プログラミング」を参照してください。For more information, see Server-side JavaScript programming for Azure Cosmos DB.

ドキュメントを Cosmos DB に一括挿入するにはどうすればよいですか?How can I bulk-insert documents into Cosmos DB?

Azure Cosmos DB へのドキュメントの一括挿入は、次のいずれかの方法で実行できます。You can bulk-insert documents into Azure Cosmos DB in one of the following ways:

はい。Azure Cosmos DB は RESTful サービスであるため、リソース リンクは不変であり、キャッシュできます。Yes, because Azure Cosmos DB is a RESTful service, resource links are immutable and can be cached. SQL API クライアントでは、リソースのようなドキュメントやコンテナーに対する読み取りに "If-None-Match" ヘッダーを指定し、サーバー バージョンが変更されたらローカル コピーを更新できます。SQL API clients can specify an "If-None-Match" header for reads against any resource-like document or container and then update their local copies after the server version has changed.

SQL API のローカル インスタンスは使用できますか?Is a local instance of SQL API available?

はい。Yes. Azure Cosmos DB Emulator には、Cosmos DB サービスの高忠実度エミュレーションが用意されています。The Azure Cosmos DB Emulator provides a high-fidelity emulation of the Cosmos DB service. JSON ドキュメントの作成とクエリ、コレクションのプロビジョニングとスケーリング、ストアド プロシージャとトリガーの実行のサポートなど、Azure Cosmos DB と同じ機能がサポートされています。It supports functionality that's identical to Azure Cosmos DB, including support for creating and querying JSON documents, provisioning and scaling collections, and executing stored procedures and triggers. Azure Cosmos DB Emulator を使用してアプリケーションの開発とテストを行い、Azure Cosmos DB の接続エンドポイントの構成を 1 つ変更するだけで、世界規模で Azure にデプロイできます。You can develop and test applications by using the Azure Cosmos DB Emulator, and deploy them to Azure at a global scale by making a single configuration change to the connection endpoint for Azure Cosmos DB.

ポータルのデータ エクスプローラーから表示したとき、ドキュメント内の長い浮動小数点値が丸められるのはなぜですか?Why are long floating-point values in a document rounded when viewed from data explorer in the portal.

これは、JavaScript の制限です。This is limitation of JavaScript. JavaScript では IEEE 754 で指定されている倍精度浮動小数点形式の値が使用されるため、安全に保持できるのは -(253 - 1) から 253 - 1 (つまり 9007199254740991) の範囲の値だけです。JavaScript uses double-precision floating-point format numbers as specified in IEEE 754 and it can safely hold numbers between -(253 - 1) and 253-1 (i.e., 9007199254740991) only.

アクセス許可はオブジェクト階層のどこで許可されますか?Where are permissions allowed in the object hierarchy?

ResourceTokens の使用によるアクセス許可の作成は、コンテナー レベルとその子孫 (ドキュメントや添付ファイルなど) で許可されます。Creating permissions by using ResourceTokens is allowed at the container level and its descendants (such as documents, attachments). これは、データベースまたはアカウント レベルでのアクセス許可の作成は、現時点では許可されないことを示唆しています。This implies that trying to create a permission at the database or an account level isn't currently allowed.

Azure Cosmos DB の MongoDB 用 APIAzure Cosmos DB's API for MongoDB

Azure Cosmos DB の MongoDB 用 API とは何ですか?What is the Azure Cosmos DB's API for MongoDB?

Azure Cosmos DB の MongoDB 用 API は、コミュニティでサポートされる MongoDB 用の既存の SDK とドライバーを使用して、アプリケーションがネイティブの Azure Cosmos データベース エンジンと簡単かつ透過的に通信できるようにするワイヤプロトコル互換レイヤーです。The Azure Cosmos DB's API for MongoDB is a wire-protocol compatibility layer that allows applications to easily and transparently communicate with the native Azure Cosmos database engine by using existing, community-supported SDKs and drivers for MongoDB. 開発者は、既存の MongoDB ツールチェーンとスキルを使って、Azure Cosmos DB を活用するアプリケーションを構築できるようになりました。Developers can now use existing MongoDB toolchains and skills to build applications that take advantage of Azure Cosmos DB. これにより、マルチマスター レプリケーションによるグローバル配信、自動インデックス作成、バックアップ メンテナンス、利用料金に基づくサービス レベル アグリーメント (SLA) など、Azure Cosmos DB の独自の機能によるメリットが得られます。Developers benefit from the unique capabilities of Azure Cosmos DB, which include global distribution with multi-master replication, auto-indexing, backup maintenance, financially backed service level agreements (SLAs) etc.

データベースに接続する方法は?How do I connect to my database?

Azure Cosmos DB の MongoDB 用 API で Cosmo データベースに接続する最も簡単な方法は、Azure Portal を使用することです。The quickest way to connect to a Cosmos database with Azure Cosmos DB's API for MongoDB is to head over to the Azure portal. アカウントに移動し、左側のナビゲーション メニューで [クイック スタート] をクリックします。Go to your account and then, on the left navigation menu, click Quick Start. クイック スタートは、コード スニペットを取得してデータベースに接続するための最善の方法です。Quickstart is the best way to get code snippets to connect to your database.

Azure Cosmos DB では、厳密なセキュリティ要件と基準が適用されます。Azure Cosmos DB enforces strict security requirements and standards. Azure Cosmos DB アカウントでは、SSL による認証とセキュリティで保護された通信が要求されるので、必ず TLSv1.2 を使用してください。Azure Cosmos DB accounts require authentication and secure communication via SSL, so be sure to use TLSv1.2.

詳細については、Azure Cosmos DB の MongoDB 用 API で Cosmo データベースに接続する方法に関するページを参照してください。For more information, see Connect to your Cosmos database with Azure Cosmos DB's API for MongoDB.

Azure Cosmos DB の MongoDB 用 API を使用するとき、対処しなければならないエラー コードは他にもありますか。Are there additional error codes that I need to deal with while using Azure Cosmos DB's API for MongoDB?

Azure Cosmos DB の MongoDB 用 API には、一般的な MongoDB エラー コードのほかに、次のような独自のエラー コードがあります。Along with the common MongoDB error codes, the Azure Cosmos DB's API for MongoDB has its own specific error codes:

エラーError コードCode 説明Description 解決策Solution
TooManyRequestsTooManyRequests 1650016500 使用された要求ユニットの合計数が、コンテナーのプロビジョニング済みの要求ユニット レートを超えたために調整されました。The total number of request units consumed is more than the provisioned request-unit rate for the container and has been throttled. Azure Portal からコンテナーまたはコンテナーのセットに割り当てられているスループットをスケーリングするか、再試行することを検討してください。Consider scaling the throughput assigned to a container or a set of containers from the Azure portal or retrying again.
ExceededMemoryLimitExceededMemoryLimit 1650116501 マルチテナント サービスとしての操作が、クライアントのメモリ配分を超えました。As a multi-tenant service, the operation has gone over the client's memory allotment. より制限の厳しいクエリ条件によって操作のスコープを減らすか、Azure Portal からサポートに連絡してください。Reduce the scope of the operation through more restrictive query criteria or contact support from the Azure portal.

例:     db.getCollection('users').aggregate([Example:     db.getCollection('users').aggregate([
        {$match: {name:"Andy"}},        {$match: {name: "Andy"}},
        {$sort: {age: -1}}        {$sort: {age: -1}}
    ]))    ]))

MongoDB 向けの Simba ドライバーは Azure Cosmos DB の MongoDB 用 API で使用できますか。Is the Simba driver for MongoDB supported for use with Azure Cosmos DB's API for MongoDB?

はい。Simba の Mongo ODBC ドライバーは Azure Cosmos DB の MongoDB 用 API で使用できます。Yes, you can use Simba’s Mongo ODBC driver with Azure Cosmos DB's API for MongoDB

Table APITable API

Table API を使うにはどうすればよいですか?How can I use the Table API offering?

Azure Cosmos DB Table API は Azure Portal で利用できます。The Azure Cosmos DB Table API is available in the Azure portal. まず、Azure サブスクリプションにサインアップする必要があります。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.

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 と 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 は 1000 に制限されません。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/?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>/<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/?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/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 はサポートしません。In addition 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 " "" "

これらの相違点のいずれかがプロジェクトで問題になる場合は、askcosmosdb@microsoft.com でお知らせください。If any of these differences are a problem for your project, contact askcosmosdb@microsoft.com and let us know.

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

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

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=<AccountNamefromCosmos DB;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. パーティション キーごとのエンティティ数または項目数に 10 GB の制限を設けているのは、検索やクエリの優れたパフォーマンスを確実に提供するためです。The 10-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.

Gremlin APIGremlin API

C#/.NET 開発の場合、Microsoft.Azure.Graphs パッケージまたは Gremlin.NET を使用するべきですか。For C#/.NET development, should I use the Microsoft.Azure.Graphs package or Gremlin.NET?

Azure Cosmos DB Gremlin API では、サービスのメイン コネクタとしてオープンソースのドライバーが活用されます。Azure Cosmos DB Gremlin API leverages the open-source drivers as the main connectors for the service. そのため、Apache Tinkerpop でサポートされているドライバーの使用をお勧めします。So the recommended option is to use drivers that are supported by Apache Tinkerpop.

グラフ データベースでクエリを実行するとき、RU/秒はどのように課金されますか。How are RU/s charged when running queries on a graph database?

グラフのオブジェクト、頂点、端はすべて、バックエンドで JSON ドキュメントとして表示されます。All graph objects, vertices, and edges, are shown as JSON documents in the backend. 1 つの Gremlin クエリで 1 つまたは複数のグラフ オブジェクトを一度に変更できるため、それに関連付けられるコストは、クエリで処理されるオブジェクトや端に直接関連します。Since one Gremlin query can modify one or many graph objects at a time, the cost associated with it is directly related to the objects, edges that are processed by the query. このプロセスは、その他すべての API に対して Azure Cosmos DB で使用されるプロセスと同じです。This is the same process that Azure Cosmos DB uses for all other APIs. 詳細については、「Azure Cosmos DB の要求ユニット」をご覧ください。For more information, see Request Units in Azure Cosmos DB.

RU 課金は、結果セットではなく、トラバーサルの作業データ セットに基づきます。The RU charge is based on the working data set of the traversal, and not the result set. たとえば、結果として頂点を 1 つ得ることがクエリの目的であるが、その過程で他の複数のオブジェクトを走査する必要がある場合、結果として頂点を 1 つ計算するために必要なすべてのグラフ オブジェクトに基づいてコストが算出されます。For example, if a query aims to obtain a single vertex as a result but needs to traverse more than one other object on the way, then the cost will be based on all the graph objects that it will take to compute the one result vertex.

Azure Cosmos DB Gremlin API でグラフ データベースに与えられる最大スケールは何ですか。What’s the maximum scale that a graph database can have in Azure Cosmos DB Gremlin API?

Azure Cosmos DB では、水平方向のパーティション分割を利用し、ストレージ要件とスループット要件の増加に自動的に対処します。Azure Cosmos DB makes use of horizontal partitioning to automatically address increase in storage and throughput requirements. ワークロードの最大スループットと最大ストレージ容量は、指定されたコンテナーに関連付けられているパーティションの数により決定されます。The maximum throughput and storage capacity of a workload is determined by the number of partitions that are associated with a given container. ただし、Gremlin API コンテナーには、大規模でも適切なパフォーマンスが得られるように、特定のガイドラインのセットがあります。However, a Gremlin API container has a specific set of guidelines to ensure a proper performance experience at scale. パーティション分割の詳細とベスト プラクティスについては、Azure Cosmos DB でのパーティション分割に関する記事をご覧ください。For more information about partitioning, and best practices, see partitioning in Azure Cosmos DB article.

Gremlin ドライバーを利用したインジェクション攻撃はどのように防ぎますか。How can I protect against injection attacks using Gremlin drivers?

ネイティブ Apache Tinkerpop Gremlin ドライバーのほとんどでは、クエリ実行にパラメーター ディクショナリを提供できます。Most native Apache Tinkerpop Gremlin drivers allow the option to provide a dictionary of parameters for query execution. この方法のサンプルは、Gremlin.NetGremlin-Javascript にあります。This is an example of how to do it in Gremlin.Net and in Gremlin-Javascript.

"Gremlin Query Compilation Error: Unable to find any method" (Gremlin クエリ コンパイル エラー:メソッドが見つかりません) エラーが表示されるのはなぜですか。Why am I getting the “Gremlin Query Compilation Error: Unable to find any method” error?

Azure Cosmos DB Gremlin API では、Gremlin セキュリティに定義されている機能サブセットが実装されます。Azure Cosmos DB Gremlin API implements a subset of the functionality defined in the Gremlin surface area. サポートされている手順と詳細については、「Gremlin サポート」という記事を参照してください。For supported steps and more information, see Gremlin support article.

最良の回避策は、Gremlin の必須手順をサポートされている機能で書き直すことです。Gremlin の必須手順はすべて、Azure Cosmos DB でサポートされているためです。The best workaround is to rewrite the required Gremlin steps with the supported functionality, since all essential Gremlin steps are supported by Azure Cosmos DB.

"WebSocketException: The server returned status code '200' when status code '101' was expected" (WebSocketException: 状態コード '101' が予想されるとき、サーバーから '200' が返されました) エラーが表示されるのはなぜですか。Why am I getting the “WebSocketException: The server returned status code '200' when status code '101' was expected” error?

このエラーはおそらく、間違ったエンドポイントが使用されているときにスローされます。This error is likely thrown when the wrong endpoint is being used. このエラーを生成するエンドポイントには次のパターンがあります。The endpoint that generates this error has the following pattern:

https:// YOUR_DATABASE_ACCOUNT.documents.azure.com:443/

これは、ご利用のグラフ データベースのドキュメント エンドポイントです。This is the documents endpoint for your graph database. 使用すべき正しいエンドポイントは Gremlin エンドポイントです。この形式は次のようになっています。The correct endpoint to use is the Gremlin Endpoint, which has the following format:

https://YOUR_DATABASE_ACCOUNT.gremlin.cosmosdb.azure.com:443/

"RequestRateIsTooLarge" エラーが表示されるのはなぜですか。Why am I getting the “RequestRateIsTooLarge” error?

このエラーは、秒あたりで割り当てられている要求ユニットではクエリに十分なサービスを提供できないことを意味します。This error means that the allocated Request Units per second aren't enough to serve the query. このエラーは通常、すべての頂点を取得するクエリを実行すると表示されます。This error is usually seen when you run a query that obtains all vertices:

// Query example:
g.V()

このクエリでは、グラフからすべての頂点を取得するように試行されます。This query will attempt to retrieve all vertices from the graph. そのため、このクエリのコストは、RU の観点からは、少なくとも頂点の数と等しくなります。So, the cost of this query will be equal to at least the number of vertices in terms of RUs. RU/秒の設定を調整してこのクエリに対処してください。The RU/s setting should be adjusted to address this query.

Gremlin ドライバーの接続が最後には切断されます。なぜですか。Why do my Gremlin driver connections get dropped eventually?

Gremlin 接続は WebSocket 接続経由で行われます。A Gremlin connection is made through a WebSocket connection. WebSocket 接続には有効時間が指定されませんが、Azure Cosmos DB Gremlin API では、アイドル時間が 30 分間続くと接続が終了します。Although WebSocket connections don't have a specific time to live, Azure Cosmos DB Gremlin API will terminate idle connections after 30 minutes of inactivity.

ネイティブ Gremlin ドライバーで Fluent API 呼び出しを使用できません。なぜですか。Why can’t I use fluent API calls in the native Gremlin drivers?

Fluent API 呼び出しは、Azure Cosmos DB Gremlin API ではまだサポートされていません。Fluent API calls aren't yet supported by the Azure Cosmos DB Gremlin API. Fluent API 呼び出しにはバイトコード サポートと呼ばれている内部書式設定機能が必要ですが、これは現在のところ、Azure Cosmos DB Gremlin API ではサポートされていません。Fluent API calls require an internal formatting feature known as bytecode support that currently isn't supported by Azure Cosmos DB Gremlin API. 同じ理由から、最新の Gremlin-JavaScript ドライバーも現在のところサポートされていません。Due to the same reason, the latest Gremlin-JavaScript driver is also currently not supported.

自分の Gremlin クエリの効率性を評価する方法は?How can I evaluate the efficiency of my Gremlin queries?

executionProfile() というプレビュー手順を利用し、クエリ実行プランを分析できます。The executionProfile() preview step can be used to provide an analysis of the query execution plan. 次の例のように、この手順は Gremlin クエリの最後に追加する必要があります。This step needs to be added to the end of any Gremlin query as illustrated by the following example:

クエリの例Query example

g.V('mary').out('knows').executionProfile()

出力例Example output

[
  {
    "gremlin": "g.V('mary').out('knows').executionProfile()",
    "totalTime": 8,
    "metrics": [
      {
        "name": "GetVertices",
        "time": 3,
        "annotations": {
          "percentTime": 37.5
        },
        "counts": {
          "resultCount": 1
        }
      },
      {
        "name": "GetEdges",
        "time": 5,
        "annotations": {
          "percentTime": 62.5
        },
        "counts": {
          "resultCount": 0
        },
        "storeOps": [
          {
            "count": 0,
            "size": 0,
            "time": 0.6
          }
        ]
      },
      {
        "name": "GetNeighborVertices",
        "time": 0,
        "annotations": {
          "percentTime": 0
        },
        "counts": {
          "resultCount": 0
        }
      },
      {
        "name": "ProjectOperator",
        "time": 0,
        "annotations": {
          "percentTime": 0
        },
        "counts": {
          "resultCount": 0
        }
      }
    ]
  }
]

上記プロファイルの出力には、頂点オブジェクト、端オブジェクト、および作業データ セットのサイズの取得にかかった時間が表示されます。The output of the above profile shows how much time is spent obtaining the vertex objects, the edge objects, and the size of the working data set. これは Azure Cosmos DB クエリの標準コスト測定に関連します。This is related to the standard cost measurements for Azure Cosmos DB queries.

Cassandra APICassandra API

Azure Cosmso DB の Cassandra API でサポートされているプロトコル バージョンは何ですか?What is the protocol version supported by Azure Cosmso DB Cassandra API? 他のプロトコルをサポートする予定はありますか?Is there a plan to support other protocols?

現在、Azure Cosmos DB 用の Apache Cassandra API は CQL バージョン 4 をサポートしています。Apache Cassandra API for Azure Cosmos DB supports today CQL version 4. 他のプロトコルのサポートについてフィードバックがある場合は、UserVoice のフィードバックを投稿するか、メールを askcosmosdbcassandra@microsoft.com に送信してください。If you have feedback about supporting other protocols, let us know via user voice feedback or send an email to askcosmosdbcassandra@microsoft.com.

テーブルのスループットの選択が必須なのはなぜですか?Why is choosing a throughput for a table a requirement?

Azure Cosmos DB は、テーブルの作成元 (ポータルまたは CQL) に基づいてコンテナーの既定のスループットを設定します。Azure Cosmos DB sets default throughput for your container based on where you create the table from - portal or CQL. 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. スループットを設定すると、プラットフォームでこの容量が予約され、操作が正常に完了することが保証されるので、保証されたスループットと待機時間が確保されます。Setting throughput ensures that you get the guaranteed throughput and latency, because the platform reserves this capacity and guarantees operation success. アプリケーションの季節性を利用し、コストを削減するためにスループットを柔軟に変更することができます。You can elastically change throughput to benefit from the seasonality of your application and save costs.

スループットの概念については、「Azure Cosmos DB の要求ユニット」の記事を参照してください。The throughput concept is explained in the Request Units in Azure Cosmos DB article. テーブルのスループットは、基になる物理パーティション全体で均等に分散されます。The throughput for a table is distributed across the underlying physical partitions equally.

CQL で作成したときのテーブルの既定の RU/秒を教えてください。What is the default RU/s of table when created through CQL? 変更する必要がある場合はどうなりますか?What If I need to change it?

Azure Cosmos DB では、スループットの単位として 1 秒あたりの要求単位数 (RU/秒) が使われています。Azure Cosmos DB uses request units per second (RU/s) as a currency for providing throughput. CQL で作成したテーブルは 400 RU です。Tables created through CQL have 400 RU. RU はポータルから変更できます。You can change the RU from the portal.

CQLCQL

CREATE TABLE keyspaceName.tablename (user_id int PRIMARY KEY, lastname text) WITH cosmosdb_provisioned_throughput=1200

.NET.NET

int provisionedThroughput = 400;
var simpleStatement = new SimpleStatement($"CREATE TABLE {keyspaceName}.{tableName} (user_id int PRIMARY KEY, lastname text)");
var outgoingPayload = new Dictionary<string, byte[]>();
outgoingPayload["cosmosdb_provisioned_throughput"] = Encoding.UTF8.GetBytes(provisionedThroughput.ToString());
simpleStatement.SetOutgoingPayload(outgoingPayload);

スループットを使い切った場合はどうなりますか?What happens when throughput is used up?

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. これはスループットの設定に基づいて可能になります。スループットを設定すると、プラットフォームでこの容量が予約され、操作が正常に完了することが保証されるので、保証されたスループットと待機時間が確保されます。This is possible based on setting the throughput, which ensures that you get the guaranteed throughput and latency, because platform reserves this capacity and guarantees operation success. この容量を超えると、容量を使い切ったことを示すオーバーロードのエラー メッセージWhen you go over this capacity, you get overloaded error message indicating your capacity was used up. "0x1001 Overloaded: the request cannot be processed because "Request Rate is large" "(0x1001 オーバーロード: "要求レートが大きい" ため要求を処理できませんでした) を受け取ります。0x1001 Overloaded: the request can't be processed because "Request Rate is large". この段階で、この問題の原因となる操作とそのボリュームを確認することが重要です。At this juncture, it's essential to see what operations and their volume causes this issue. ポータルのメトリックを使用すると、プロビジョニングした容量を超えた容量の使用について理解できることがあります。You can get an idea about consumed capacity going over the provisioned capacity with metrics on the portal. 次に、基になるすべてのパーティションでほぼ均等に容量が使用されていることを確認する必要があります。Then you need to ensure capacity is consumed nearly equally across all underlying partitions. ほとんどのスループットが 1 つのパーティションに使用されている場合、ワークロードは均等ではありません。If you see most of the throughput is consumed by one partition, you have skew of workload.

複数のパーティション全体、または集計して、時間単位、日単位、7 日間単位で使用されたスループットを示すメトリックを使用できます。Metrics are available that show you how throughput is used over hours, days, and per seven days, across partitions or in aggregate. 詳細については、「Azure Cosmos DB のメトリックを使用した監視とデバッグ」を参照してください。For more information, see Monitoring and debugging with metrics in Azure Cosmos DB.

診断ログについては、「Azure Cosmos DB 診断ログ」の記事を参照してください。Diagnostic logs are explained in the Azure Cosmos DB diagnostic logging article.

プライマリ キーは、Azure Cosmos DB のパーティション キーの概念と対応していますか?Does the primary key map to the partition key concept of Azure Cosmos DB?

はい。パーティション キーは、適切な場所にエンティティを配置するために使用されます。Yes, the partition key is used to place the entity in right location. Azure Cosmos DB では、物理パーティションに格納されている適切な論理パーティションを見つけるために使用されます。In Azure Cosmos DB, it's used to find right logical partition that's stored on a physical partition. パーティション分割の概念については、「Azure Cosmos DB でのパーティション分割とスケーリング」の記事でわかりやすく説明されています。The partitioning concept is well explained in the Partition and scale in Azure Cosmos DB article. ここで重要な点は、論理パーティションは現在の 10 GB の制限を超えないようにすることです。The essential take away here is that a logical partition shouldn't go over the 10-GB limit today.

パーティションが満杯であることを示す "クォータが上限に達した" 通知が表示された場合はどうなりますか?What happens when I get a quota full" notification indicating that a partition is full?

Azure Cosmos DB は、待機時間、スループット、可用性、整合性を保証し、無制限のスケールを提供する SLA ベースのシステムです。Azure Cosmos DB is a SLA-based system that provides unlimited scale, with guarantees for latency, throughput, availability, and consistency. この無制限のストレージは、主要概念としてパーティション分割を使用する、データの水平スケールアウトに基づいています。This unlimited storage is based on horizontal scale out of data using partitioning as the key concept. パーティション分割の概念については、「Azure Cosmos DB でのパーティション分割とスケーリング」の記事でわかりやすく説明されています。The partitioning concept is well explained in the Partition and scale in Azure Cosmos DB article.

論理パーティションあたりのエンティティ数または項目数に対する 10 GB の制限に従うことをお勧めします。The 10-GB limit on the number of entities or items per logical partition you should adhere to. すべての情報を 1 つのパーティションに格納し、そのパーティションに対してクエリを実行すると、ホット パーティションになります。アプリケーションが適切にスケールできるように、ホット パーティションが発生しないようにすることをお勧めします。To ensure that your application scales well, we recommend that you not create a hot partition by storing all information in one partition and querying it. このエラーは、データが均等ではない場合、つまり、1 つのパーティション キーに大量の (10 GB を超える) データ が割り当てられている場合にのみ発生する可能性があります。This error can only come if your data is skewed: that is, you have lot of data for one partition key (more than 10 GB). ストレージ ポータルを使用して、データの分散を確認できます。You can find the distribution of data using the storage portal. このエラーを解決するには、テーブルを作成し直し、より細分化されたプライマリ (パーティション キー) を選択し、データの分散を改善することをお勧めします。Way to fix this error is to recreate the table and choose a granular primary (partition key), which allows better distribution of data.

パーティション キーが数百万個または数十億個あるキー値ストアとして Cassandra API を使用することはできますか?Is it possible to use Cassandra API as key value store with millions or billions of individual partition keys?

Azure Cosmos DB はストレージをスケールアウトすることで無制限のデータを格納できます。Azure Cosmos DB can store unlimited data by scaling out the storage. これはスループットと関係がありません。This is independent of the throughput. そのため、常に Cassandra API のみを使用し、適切なプライマリ/パーティション キーを指定してキー/値を格納および取得できます。Yes you can always just use Cassandra API to store and retrieve key/values by specifying right primary/partition key. これらの個々のキーには独自の論理パーティションが割り当てられ、物理パーティションに問題なく配置されます。These individual keys get their own logical partition and sit atop physical partition without issues.

Azure Cosmos DB の Apache Cassandra API を使用して複数のテーブルを作成できますか?Is it possible to create more than one table with Apache Cassandra API of Azure Cosmos DB?

はい、Apache Cassandra API を使用して複数のテーブルを作成できます。Yes, it's possible to create more than one table with Apache Cassandra API. これらの各テーブルは、スループットとストレージのユニットとして扱われます。Each of those tables is treated as unit for throughput and storage.

連続して複数のテーブルを作成することはできますか?Is it possible to create more than one table in succession?

Azure Cosmos DB は、データ アクティビティとコントロール プレーン アクティビティ両方のリソース管理システムです。Azure Cosmos DB is resource governed system for both data and control plane activities. コレクションやテーブルなどのコンテナーは、特定のスループット容量に対してプロビジョニングされるランタイム エンティティです。Containers like collections, tables are runtime entities that are provisioned for given throughput capacity. これらのコンテナーの連続的な作成は、予期されるアクティビティではなく、調整されます。The creation of these containers in quick succession isn't expected activity and throttled. テーブルを即時に削除/作成するテストを行う場合は、間隔を空けるようにしてください。If you have tests that drop/create tables immediately, try to space them out.

最大何個のテーブルを作成できますか?What is maximum number of tables that can be created?

テーブル数には物理的な制限がありません。数十または数百単位の大量のテーブル (データの定常的な合計サイズが 10 TB を超える) を作成する必要がある場合は、askcosmosdbcassandra@microsoft.com まで電子メールでお問い合わせください。There's no physical limit on number of tables, send an email at askcosmosdbcassandra@microsoft.com if you have large number of tables (where the total steady size goes over 10 TB of data) that need to be created from usual 10s or 100s.

最大何個のキースペースを作成できますか?What is the maximum # of keyspace that we can create?

キースペースはメタデータ コンテナーなので、キースペース数に物理的な制限はありません。何らかの理由で大量のキースペースがある場合は、askcosmosdbcassandra@microsoft.com まで電子メールでお問い合わせください。There's no physical limit on number of keyspaces as they're metadata containers, send an email at askcosmosdbcassandra@microsoft.com if you have large number of keyspaces for some reason.

通常のテーブルから開始した後で、大量のデータを取り込むことはできますか?Is it possible to bring in lot of data after starting from normal table?

ストレージ容量は自動的に管理され、取り込むデータが増えると拡大されます。The storage capacity is automatically managed and increases as you push in more data. そのため、必要に応じて任意の量のデータを安心してインポートできます。ノードの管理やプロビジョニングなどは必要ありません。So you can confidently import as much data as you need without managing and provisioning nodes, and more.

Azure Cosmos DB 動作の Apache Casssandra API を構成するために、yaml ファイルの設定を提供することはできますか?Is it possible to supply yaml file settings to configure Apache Casssandra API of Azure Cosmos DB behavior?

Azure Cosmos DB の Apache Cassandra API はプラットフォーム サービスです。Apache Cassandra API of Azure Cosmos DB is a platform service. 操作を実行するためのプロトコル レベルの互換性を提供します。It provides protocol level compatibility for executing operations. 管理、監視、および構成の複雑な部分は隠されています。It hides away the complexity of management, monitoring, and configuration. 開発者やユーザーは、可用性、廃棄標識、キー キャッシュ、行キャッシュ、ブルーム フィルター、他のさまざまな設定について心配する必要はありません。As a developer/user, you don't need to worry about availability, tombstones, key cache, row cache, bloom filter, and multitude of other settings. Azure Cosmos DB の Apache Cassandra API では、構成と管理のオーバーヘッドなしで必要な読み取りと書き込みのパフォーマンスを提供することに焦点が当てられています。Azure Cosmos DB's Apache Cassandra API focuses on providing read and write performance that you require without the overhead of configuration and management.

Azure Cosmos DB の Apache Cassandra API は、ノード追加/クラスター状態/ノード状態コマンドをサポートしますか?Will Apache Cassandra API for Azure Cosmos DB support node addition/cluster status/node status commands?

Apache Cassandra API は、容量計画およびスループットとストレージに対する柔軟性の要求への対応を容易にするプラットフォーム サービスです。Apache Cassandra API is a platform service that makes capacity planning, responding to the elasticity demands for throughput & storage a breeze. Azure Cosmos DB を使って必要なスループットをプロビジョニングします。With Azure Cosmos DB you provision throughput, you need. その後は、ノードの追加/削除や管理を心配せずに、1 日に何度でもスケールアップおよびスケールダウンできます。Then you can scale it up and down any number of times through the day without worrying about adding/deleting nodes or managing them. つまり、ノードもクラスター管理ツールも使用する必要がありません。This implies you don't need to use the node, cluster management tool too.

simple/network など、キースペースの作成のさまざまな構成設定についてはどうなりますか?What happens with respect to various config settings for keyspace creation like simple/network?

Azure Cosmos DB では、可用性と低待機時間のために、最初からグローバルな分散が提供されています。Azure Cosmos DB provides global distribution out of the box for availability and low latency reasons. レプリカやなどを設定する必要はありません。You don't need to setup replicas or other things. すべての書き込みは、書き込み対象のすべてのリージョンで常に永続的にクォーラム コミットされ、パフォーマンスが保証されます。All writes are always durably quorum committed in any region where you write while providing performance guarantees.

ブルーム フィルター、キャッシュ、読み取り修復の変更、gc_grace、圧縮 memtable_flush_period などのテーブル メタデータのさまざまな設定はどうなりますか?What happens with respect to various settings for table metadata like bloom filter, caching, read repair change, gc_grace, compression memtable_flush_period, and more?

Azure Cosmos DB が提供する読み取り/書き込みのパフォーマンスとスループットでは、構成設定を変更する必要はなく、誤って構成設定を操作することもありません。Azure Cosmos DB provides performance for reads/writes and throughput without need for touching any of the configuration settings and accidentally manipulating them.

Cassandra のテーブルでは Time to Live (TTL) がサポートされていますか?Is time-to-live (TTL) supported for Cassandra tables?

はい。TTL がサポートされています。Yes, TTL is supported.

以前のさまざまなツールを使用して、ノード状態、レプリカ状態、gc、OS のパラメーターを監視することはできますか?Is it possible to monitor node status, replica status, gc, and OS parameters earlier with various tools? 現在は何を監視する必要がありますか?What needs to be monitored now?

Azure Cosmos DB はプラットフォーム サービスであり、生産性を向上させ、インフラストラクチャの管理と監視の心配を取り除きます。Azure Cosmos DB is a platform service that helps you increase productivity and not worry about managing and monitoring infrastructure. ポータルのメトリックで使用できるスループットのみに注意し、そのスループットの調整と増減が発生しているかどうかを確認する必要があります。You just need to take care of throughput that's available on portal metrics to find if you're getting throttled and increase or decrease that throughput. SLA を監視します。Monitor SLAs. メトリック診断ログを使用します。Use Metrics Use Diagnostic logs.

Azure Cosmos DB の Apache Cassandra API で動作するクライアント SDK はどれですか?Which client SDKs can work with Apache Cassandra API of Azure Cosmos DB?

CQLv3 を使用する Apache Cassandra SDK のクライアント ドライバーがクライアント プログラムに使用されていました。Apache Cassandra SDK's client drivers that use CQLv3 were used for client programs. 他のドライバーを使用している場合、または問題が発生している場合は、askcosmosdbcassandra@microsoft.com まで電子メールでお問い合わせください。If you have other drivers that you use or if you're facing issues, send mail to askcosmosdbcassandra@microsoft.com.

複合パーティション キーはサポートされていますか?Is composite partition key supported?

はい。通常の構文を使って、複合パーティション キーを作成できます。Yes, you can use regular syntax to create composite partition key.

データの読み込みに sstableloader を使用できますか?Can I use sstableloader for data loading?

いいえ。sstableloader はサポートされていません。No, sstableloader isn't supported.

オンプレミスの Apache Cassandra クラスターを Azure Cosmos DB の Cassandra API とペアにできますか?Can an on-premises Apache Cassandra cluster be paired with Azure Cosmos DB's Cassandra API?

現在、Azure Cosmos DB では、操作のオーバーヘッドがないクラウド環境に合わせてエクスペリエンスが最適化されています。At present Azure Cosmos DB has an optimized experience for cloud environment without overhead of operations. ペアリングが必要な場合は、シナリオの説明を添えて askcosmosdbcassandra@microsoft.com まで電子メールでお問い合わせください。If you require pairing, send mail to askcosmosdbcassandra@microsoft.com with a description of your scenario. 現在、オンプレミスや別のクラウドの Cassandra クラスターと Cosomos DB の Cassandra API をペアリングする機能の提供に向けた作業を進めています。We are working on offering to help pair the on-premise/different cloud Cassandra cluster to Cosomos DB's Cassandra API.

Cassandra API に完全バックアップ機能はありますか?Does Cassandra API provide full backups?

現在、Azure Cosmos DB では、すべての API について 4 時間間隔で 2 つの無料の完全バックアップが提供されています。Azure Cosmos DB provides two free full backups taken at four hours interval today across all APIs. そのため、バックアップ スケジュールなどを設定する必要はありません。This ensures you don't need to set up a backup schedule and other things. リテンション期間と頻度を変更したい場合は、askcosmosdbcassandra@microsoft.com まで電子メールでお問い合わせいただくか、サポート ケースを作成してください。If you want to modify retention and frequency, send an email to askcosmosdbcassandra@microsoft.com or raise a support case. バックアップ機能については、「Azure Cosmos DB での自動オンライン バックアップと復元」の記事を参照してください。Information about backup capability is provided in the Automatic online backup and restore with Azure Cosmos DB article.

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

Azure Cosmos DB の Cassandra API は、Azure Cosmos DB のグローバルに分散されたプラットフォームを利用します。The Azure Cosmos DB Cassandra API borrows from 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.

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

Cassandra API では、特定の属性に対する選択的インデックスを作成できるように、セカンダリ インデックスをサポートする計画を進めています。Cassandra API is planning to support Secondary indexing to help create selective index on certain attributes.

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

はい、これはサポートされています。Yes this is supported.

プラットフォームとしての Azure Cosmos DB は、変更フィードなどの多数の機能を備えているようですが、Azure Cosmos DB as a platform seems to have lot of capabilities, such as change feed and other functionality. これらの機能が Cassandra API に追加される予定はありますか?Will these capabilities be added to the Cassandra API?

Apache Cassandra API には、Apache Cassandra と同じ CQL 機能が提供されています。The Apache Cassandra API provides the same CQL functionality as Apache Cassandra. 今後、多様な機能をサポートする実現可能性を調査する予定です。We do plan to look into feasibility of supporting various capabilities in future.

通常の Cassandra API の機能 x が現在動作していませんが、どこでフィードバックを報告できますか?Feature x of regular Cassandra API isn't working as today, where can the feedback be provided?

フィードバックは UserVoice のフィードバックでお寄せください。Provide feedback via user voice feedback.