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 では JSON 形式が使用されます。For example, SQL uses JSON, MongoDB uses BSON, Table uses EDM, Cassandra uses CQL, Gremlin uses JSON format. そのため、特定のアカウントでデータにアクセスするときは、常に同じ 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.

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 を無料で試す」にアクセスし、個人用 Microsoft アカウント (MSA) を使用してください。To sign up for a Try Azure Cosmos DB subscription, go to Try Azure Cosmos DB for free and use any personal Microsoft account (MSA). このサブスクリプションは 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:

  • アカウント アクセスは、個人用 Microsoft アカウント (MSA) に許可することができます。Account access can be granted to personal Microsoft accounts (MSA). Active Directory (AAD) アカウントや会社の AAD テナントに属するアカウントは使用しないでください。これらのアカウントには、アクセスの許可をブロックする制限が設定されている場合があります。Avoid using Active Directory (AAD) accounts or accounts belonging to corporate AAD Tenants, they might have limitations in place that could block access granting.
  • 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.

Azure Cosmos DB にはどのようなサービス クォータとスループット制限がありますか?What are the Azure Cosmos DB service quotas and throughput limits

詳細については、Azure Cosmos DB のサービス クォータコンテナーおよびデータベースごとのスループット制限に関する記事を参照してください。See the Azure Cosmos DB service quotas and throughout limits per container and database articles for more information.

SQL API についてよく寄せられる質問Frequently asked questions about SQL 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.

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.

次のステップNext steps

他の API に関してよく寄せられる質問については、以下を参照してください。To learn about frequently asked questions in other APIs, see: