適用対象: NoSQL
全般
Azure Cosmos DB for NoSQL で開発を開始するにはどうすればいいですか?
まず、Azure サブスクリプションにサインアップする必要があります。 Azure サブスクリプションにサインアップすると、NoSQL 用 API コンテナーを Azure サブスクリプションに追加できます。
.NET、Python、Node.js、JavaScript、Go、Java では ソフトウェア開発キット (SDK) が利用できます。 また、開発者は REST API を使用することで、より多くのプラットフォームや言語で Azure Cosmos DB リソースを操作することもできます。
使用を開始するための Azure Cosmos DB for NoSQL のサンプルはありますか?
NoSQL 用 API のクイックスタートのコード サンプルとテンプレートを確認してください。
Azure Cosmos DB for NoSQL はスキーマのないデータをサポートしますか?
はい。NoSQL 用 API では、スキーマ定義やヒントがなくても、アプリケーションが任意の JSON ドキュメントを項目として格納できます。 データは、Azure Cosmos DB for NoSQL クエリ言語を使用したクエリにすぐに使用できます。
Azure Cosmos DB for NoSQL は、ACID (原子性、整合性、分離性、持続性) トランザクションをサポートしますか?
はい。NoSQL 用 API は、SDK 内のバッチまたは JavaScript のストアド プロシージャとトリガーを使用して表現されるクロス ドキュメント トランザクションをサポートします。 トランザクションは、各コンテナー内の単一のパーティションを対象とし、他の同時実行されるコードおよびユーザー要求から "完全に" 分離された ACID セマンティクスで実行されます。 例外が発生した場合は、トランザクション全体がロールバックされます。
Azure Cosmos DB for NoSQL データベースを作成するにはどうすればいいですか?
次のツールのいずれかを使用してデータベースを作成できます。
- Azure Portal
- NoSQL クライアント (データ プレーン) SDK 用の API
- NoSQL 管理 (コントロール プレーン) SDK 用の API
- Azure Resource Manager
- REST API
既存の Microsoft Entra ID アカウントを使用して、Azure Cosmos DB for NoSQL に対して認証を行うことはできますか?
はい。 Azure Cosmos DB は、サービスとそのリソース (コントロール プレーン) を管理し、データ、操作、クエリ (データ プレーン) を実行するための Microsoft Entra 認証をサポートしています。 コントロール プレーンの認証は、Azure のロールベースのアクセス制御機能を使用して実行されます。 事前構成済みの組み込みロール (../../role-based-access-control/built-in-roles.md) を使用することもできれば、カスタム ロールを作成することもできます。 Azure のロールベースのアクセス制御を使用すると、アカウント、データベース、コンテナー、メタデータを管理できます。 コントロール プレーンにはこれらの例を含む操作が含まれます (ただし、これらに限定されません)。
- データベースの作成、置換、または削除 - コンテナーの作成、置換、または削除 - データベース スループットの読み取りまたは置換 - コンテナー スループットの読み取りまたは置換 データ プレーンの認証では、NoSQL ネイティブのロールベースのアクセス制御実装用のカスタム API が使用されます。 このネイティブ実装では、事前構成済みロールまたはカスタム ロールを使用することもできます。 ネイティブのロールベースのアクセス制御を使用すると、クエリを実行し、項目を管理し、その他の一般的な操作を実行できます。 データ プレーンにはこれらの例を含む操作が含まれます (ただし、これらに限定されません)。
- 項目の作成、置換、更新、または削除 - 項目の修正プログラムの適用 - クエリの実行
Azure Cosmos DB for NoSQL は SQL クエリ言語をサポートしますか?
構造化照会言語 (SQL) は、リレーショナル データのクエリに通常使用される言語です。 NoSQL 用 API には、SQL から派生したカスタム NoSQL クエリ言語があります。 NoSQL クエリ言語には、さまざまな NoSQL 固有の機能強化に加え、SQL Server に通常関連付けられた SQL クエリ言語のサブセットが含まれています。 NoSQL クエリ言語は、JavaScript ベースのユーザー定義関数 (UDF) により高度な階層演算子とリレーショナル演算子の機能拡張を提供します。 JSON 文法では、ラベル付きノードが配置されたツリーとして JSON ドキュメントをモデル化できます。これは、Azure Cosmos DB の自動インデックス作成手法と Azure Cosmos DB の SQL クエリ言語の両方で使用されます。 このクエリ言語の使用については、「NoSQL クエリ」を参照してください。
Azure Cosmos DB for NoSQL は SQL 集計関数をサポートしますか?
NoSQL 用 API は、NoSQL クエリ言語経由で COUNT
、MAX
、AVG
、SUM
などの集計関数を使用した集計をサポートします。
Azure Cosmos DB for NoSQL はどのように同時実行を提供しますか?
NoSQL 用 API は、HTTP エンティティ タグ (ETag) によるオプティミスティック同時実行制御 (OCC) をサポートしています。 すべての NoSQL 用 API リソースに ETag があり、ドキュメントが更新されるたびにサーバーで ETag が設定されます。 すべての応答メッセージに ETag ヘッダーと現在の値が含まれます。 ETag を If-Match
ヘッダーと共に使用すると、サーバーはリソースを更新する必要があるかどうかを判断できるようになります。 If-Match 値は、チェック対象の ETag 値です。 対象の ETag 値がサーバーの ETag 値と一致する場合に、リソースが更新されます。 ETag が最新ではない場合、サーバーは操作を拒否して "HTTP 412 Precondition failure" 応答コードを返します。 この場合、クライアントは、リソースを再フェッチしてリソースの最新の ETag 値を取得します。 また、Etag を If-None-Match
ヘッダーと共に使用すると、リソースの再フェッチが必要かどうかを判断できます。
NoSQL 用 API SDK のほとんどには、オプティミスティック同時実行制御を管理するためのクラスが含まれています。
Azure Cosmos DB for NoSQL にドキュメントを一括挿入するにはどうすればいいですか?
.NET SDK の一括インポート機能または NoSQL 用 API の Java SDK を使用して、大量のデータ セットをインポートします。 この機能によりプロビジョニングされたスループットが最適化されるため、大量のデータ セットをインポートできます。
または、Apache Spark を使用して、Python または Scala を通じて大量のデータをインポートします。
Azure Cosmos DB for NoSQL はリソース リンクのキャッシュをサポートしますか?
はい。Azure Cosmos DB for NoSQL は RESTful サービスであるため、リソース リンクは変更できず、キャッシュできます。 NoSQL 用 API クライアントでは、リソースのようなドキュメントやコンテナーに対する読み取りに "If-None-Match" ヘッダーを指定し、サーバー バージョンが変更されると、ローカル コピーを更新できます。
Azure Cosmos DB for NoSQL のローカル インスタンスは使用できますか?
はい。 Azure Cosmos DB エミュレーターは、Azure Cosmos DB サービスの高精度なエミュレーションを提供します。 さまざまな API で Azure Cosmos DB と同じ機能をサポートします。 この機能には、項目の作成、項目のクエリ、コンテナーのプロビジョニング、コンテナーのスケーリングのサポートが含まれます。 エミュレーターのエンドポイントを使用して、アプリケーションを開発し、テストできます。 その後、接続文字列をエミュレーターからライブ サービスに変更することで、グローバル規模で Azure にアプリケーションをデプロイできます。
ポータルでデータ エクスプローラーを使用すると、Azure Cosmos DB for NoSQL 項目の長い浮動小数点値が四捨五入されるのはどうしてですか?
このデータ エクスプローラーの制限は、JavaScript の制限です。 JavaScript は、電気電子学会 (IEEE) 754 で指定されている倍精度浮動小数点形式を使用します。 このデータ型は、-(253 - 1) から 253 - 1 (つまり、9007199254740991) までの数値のみを安全に保持できます。
セキュリティ
ロールベースのアクセス制御 (RBAC) とは何か
ロールベースのアクセス制御 (RBAC) は、企業内の個々のユーザーのロールに基づいて、コンピューター リソースまたはネットワーク リソースへのアクセスを規制する方法です。 Azure Cosmos DB では、RBAC を使用して、ユーザーとアプリケーションにデータ プレーン アクセスを許可します。 ロールベースのアクセス制御のさまざまな用語の詳細については、セキュリティ用語集を参照してください。
Azure Cosmos DB for NoSQL でデータ プレーンのロールベースのアクセス制御を有効にするにはどうすればよいですか?
Azure Cosmos DB のネイティブのロールベースのアクセス制御 (RBAC) 機能を使用して、ユーザーとアプリケーションにデータ プレーン アクセスを許可します。 詳細については、データプレーン ロールベースのアクセスの付与に関するページを参照してください。
データ プレーンのロールベースのアクセス制御をサポートしている Azure Cosmos DB API はどれですか?
現時点では、NoSQL API のみがサポートされています。
Azure portal からロールの定義とロールの割り当てを管理することはできますか。
ロール管理の Azure portal サポートはまだ利用できません。
Azure Cosmos DB API for NoSQL のどの SDK がロールベースのアクセス制御をサポートしていますか。
.NET V3、Java V4、JavaScript V3、Python V4.3+ SDKs が現在のところ、サポートされています。
Microsoft Entra トークンは、有効期限が切れると Azure Cosmos DB SDK によって自動的に更新されますか。
はい。
ロールベースのアクセス制御を使用する場合、アカウントの主/セカンダリ キーの使用を無効にすることはできますか。
はい。 詳細については、キー ベース認証の無効化に関するページを参照してください。