Azure Synapse Link for Azure Cosmos DB についてよく寄せられる質問

適用対象: NoSQL MongoDB Gremlin

Azure Synapse Link for Azure Cosmos DB により、Azure Cosmos DB と Azure Synapse Analytics の間が緊密に統合されます。 これにより、お客様は、トランザクション ワークロードからパフォーマンスを完全に分離し、ETL パイプラインを使用せずに、運用データに対してほぼリアルタイムの分析を実行できます。 この記事では、Synapse Link for Azure Cosmos DB についてよく寄せられる質問に回答します。

一般的な FAQ

Azure Synapse Link は、NoSQL 用の Azure Cosmos DB API と MongoDB 用の Azure Cosmos DB API で利用できます。 Gremlin 用の Azure Cosmos DB API のサポートは現在プレビュー中です。

はい、マルチリージョンの Azure Cosmos DB アカウントの場合、分析ストアに格納されているデータもグローバルに分散されます。 分析ストアは、トランザクション ストアもあるすべてのリージョンに存在します。 単一の書き込みリージョンか複数の書き込みリージョンかに関係なく、Azure Synapse Analytics から実行される分析クエリは、最も近いローカル リージョンから提供できます。

複数リージョン アカウントに対して Azure Synapse Link が有効になっている場合、トランザクション geo レプリケーションのために顧客が選択したすべてのリージョンに分析ストアが作成されます。 基になるデータは、トランザクション ストアでのスループットとトランザクションの一貫性を確保するために最適化されます。

分析ストアはすべての Azure Cosmos DB リージョンでサポートされていますか?

はい。

現時点では、Synapse Link 機能がアカウント レベルで有効になっている場合は、無効にすることはできません。 アカウント レベルで Synapse Link 機能が有効になっていて、分析ストアが有効になっているコンテナーが存在しない場合は、課金への影響はありません。

機能をオフにする必要がある場合は、削除して、新しい Azure Cosmos DB アカウントをもう一度作成し、必要に応じてデータを移行します。

はい。Azure CLI または PowerShell を使って分析 TTL を 0 に設定でき、それによりコンテナーから Synapse Link がオフになって、分析ストアが完全に削除されます。 現在、この操作を元に戻すことはできず、データベース アカウントの継続的バックアップへの移行がブロックされることに注意してください。

分析ストアは、Azure Cosmos DB トランザクションの SLA に影響がありますか?

いいえ、影響はありません。

はい、MongoDB 用 API と NoSQLs 用 API の両方のデータベース アカウントで影響があります。 MongoDB アカウントには CLI または PowerShell を使用します。

アカウント レベルで Synapse Link を有効にするには、共同作成者ロールが必要です。

Azure Cosmos DB 分析ストア

既存のコンテナーで分析ストアを有効にすることはできますか?

はい。 現在、Azure portal、Azure CLI、PowerShell、または Azure Cosmos DB SDK を使用して、既存の NoSQL 用 API コンテナーの分析ストアを有効にすることができます。 また、既存の MongoDB 用 API コレクションには、Azure CLI または PowerShell を使用できます。

Azure Data Explorer を使用して分析ストア ファイルを表示できますか?

いいえ。 分析ストアは、Cosmos DB 内部サブスクリプションにあるストレージ アカウントに保持されます。 お客様はこのストレージ アカウントにアクセスできないため、Azure Synapse ランタイムを使用してデータを読み取る必要があります。

分析ストアを自分の Azure Cosmos DB コンテナーで有効にできますか?

はい。分析ストアは、PowerShell または CLI を使用して、NoSQL 用 API コンテナーと MongoDB 用 API コレクションで無効にすることができます。 現在、この操作は元に戻すことができません。

自動スケーリングによってプロビジョニングされたスループットを使用する Azure Cosmos DB コンテナーによって分析ストアはサポートされますか?

はい。自動スケーリングによってプロビジョニングされたスループットを使用するコンテナーで、分析ストアを有効にすることができます。

Azure Cosmos DB トランザクション ストアにプロビジョニングされた RU に影響はありますか?

Azure Cosmos DB では、トランザクション ワークロードと分析ワークロード間のパフォーマンスの分離が保証されています。 アカウントで分析ストアを有効にしても、Azure Cosmos DB の RU/秒には影響しません。 分析ストアのトランザクション (読み取りと書き込み) とストレージのコストは個別に課金されます。 詳細については、Azure Cosmos DB 分析ストアの価格に関するセクションを参照してください。

Azure Cosmos DB 分析ストアへのネットワーク アクセスを制限することはできますか?

はい。マネージド プライベート エンドポイントを構成して、分析ストアのネットワーク アクセスを Azure Synapse のマネージド仮想ネットワークに制限することができます。 マネージド プライベート エンドポイントによって、分析ストアへのプライベート リンクが確立されます。

Azure Synapse Analytics ワークスペース内で、トランザクション ストアと分析ストアの両方のプライベート エンドポイントを同じ Azure Cosmos DB アカウントに追加できます。 実行するのが分析クエリのみであれば、有効にする必要があるのは、Synapse Analytics ワークスペース内の分析プライベート エンドポイントのみです。

Azure Cosmos DB の分析ストアでカスタマー マネージド キーを使用することはできますか?

同じカスタマー マネージド キーを自動かつ透過的な方法で使用して、トランザクション ストアおよび分析ストア全体のデータをシームレスに暗号化できます。 カスタマー マネージド キーを分析ストアで使用するには、Azure Key Vault アクセス ポリシーで Azure Cosmos DB アカウントのシステム割り当てマネージド ID を 使用する必要があります。 その後、ご使用のアカウントで分析ストアを有効にできます。 詳細については、こちらをクリックしてください。

トランザクション ストアに対する削除と更新の操作は分析ストアに反映されますか?

はい。トランザクション ストア内のデータの削除と更新は、分析ストアに反映されます。 履歴データを含めるようにコンテナーで Time to live (TTL) を構成して、分析 TTL の条件を満たすすべてのバージョンの項目が分析ストアに保持されるようにすることができます。 詳細については、分析 TTL の概要に関するセクションを参照してください。

Azure Synapse Analytics 以外の分析エンジンから分析ストアに接続できますか?

分析ストアに対するアクセスとクエリを実行できるのは、Azure Synapse Analytics によって提供されるさまざまなランタイムを使用する場合のみです。 分析ストアに対してクエリと分析を実行するには、以下を使用します。

  • Scala、Python、SparkSQL、C# が完全にサポートされている Synapse Spark。 Synapse Spark は Data Engineering とデータ サイエンスのシナリオにおける中心的存在です。
  • T-SQL 言語を使用するサーバーレス SQL プールと、使い慣れた BI ツール (Power BI Premium など) に対するサポート

プロビジョニングされた Synapse SQL から分析ストアに接続できますか?

現時点では、プロビジョニングされた Synapse SQL から分析ストアにはアクセスできません。

クエリの集計結果を Synapse から分析ストアに書き戻すことはできますか?

いいえ。分析ストアは読み取り専用です。

トランザクション ストアから分析ストアへの自動同期レプリケーションは非同期、同期のどちらで、待機時間はどの程度ですか?

自動同期の待機時間は通常 2 分以内です。 コンテナーを多数備えた共有スループット データベースの場合は、個々のコンテナーの自動同期の待機時間が長くなり、最大で 5 分かかる可能性があります。

トランザクション ストアの項目が分析ストアに自動的に反映されないシナリオはありますか?

コンテナー内の特定の項目が分析用に明確に定義されたスキーマに違反している場合、それらは分析ストアに含められません。

トランザクション ストアとは異なる方法で分析ストアのデータをパーティション分割できますか?

既定では、分析ストアはパーティション分割されません。 分析クエリでフィルターを頻繁に使用する場合は、パフォーマンスを向上させるためにカスタム パーティション分割を使用します。 詳細については、こちらをクリックしてください。

分析ストアでトランザクション データを列形式に変換する方法をカスタマイズまたはオーバーライドできますか?

現時点では、データ項目がトランザクション ストアから分析ストアに自動的に反映される場合、それらのデータ項目を変換できません。 この制限によってシナリオが妨げられる場合は、Azure Cosmos DB チームに電子メールを送信してください。

Azure Cosmos DB SDK を使用して分析ストアにアクセスできますか?

いいえ。Azure Cosmos DB SDK を使用して分析ストアにアクセスできません。 Azure Synapse Analytics、Spark または SQL サーバーレス プールを使用する必要があります。

Azure Cosmos DB REST API を使用して分析ストアにアクセスできますか?

いいえ。Azure Cosmos DB REST API を使用して分析ストアにアクセスできません。 Azure Synapse Analytics、Spark または SQL サーバーレス プールを使用する必要があります。

Terraform で分析ストアはサポートされていますか?

現在、Terraform では分析ストア コンテナーはサポートされていません。 詳細については、Terraform GitHub のイシューを確認してください。

コンテナーまたはコレクションのレベルで分析ストアを有効にするために、Synapse Link を有効にするには少なくともオペレーター ロールが必要です。

分析の Time to live (TTL)

分析データの TTL はコンテナーと項目の両方のレベルでサポートされますか?

現時点では、分析データの TTL はコンテナー レベルでのみ構成でき、項目レベルでの分析 TTL の設定はサポートされていません。

Azure Cosmos DB コンテナーでコンテナー レベルの分析の TTL を設定した後に、別の値に変更できますか?

はい。分析の TTL は任意の有効な値に更新できます。 分析の TTL の詳細については、分析の TTL に関する記事を参照してください。

項目がトランザクション ストアから TTL で除外された後に、分析ストアからその項目を更新または削除できますか?

トランザクションのすべての更新と削除は分析ストアにコピーされますが、トランザクション ストアから削除された項目は、分析ストアでは更新できません。 詳細については、分析 TTL に関する記事を参照してください。

課金

Azure Synapse Link の課金モデルには、Azure Cosmos DB 分析ストアと Synapse ランタイムを使用して発生するコストが含まれます。 詳細については、Azure Cosmos DB 分析ストアの価格に関するページおよび「Azure Synapse Analytics の価格」をご覧ください。

[なし] : 分析ストア対応のコンテナーを作成し、データの読み込みを開始したときに初めて課金が発生します。

セキュリティ

分析ストアでの認証にはどのような方法がありますか?

分析ストアでの認証は、トランザクション ストアと同じです。 特定のデータベースに対して、主キーまたは読み取り専用キーを使用して認証できます。 Azure Synapse Studio 内のリンクされたサービスを使用すれば、Azure Cosmos DB のキーが Spark ノートブックに貼り付けられないようにすることができます。 このリンクされたサービスへのアクセスは、ワークスペースにアクセスできるすべてのユーザーが利用できます。 Synapse サーバーレス SQL プールを使用するときは、SQL 資格情報を事前に作成し、OPENROWSET 関数でそれらを参照すれば、Azure Cosmos DB 分析ストアに対してクエリを実行できます。 詳細については、Azure Synapse Link でのサーバーレス SQL プールを使用したクエリに関する記事を参照してください。

はい、Azure Synapse Link では、Azure Cosmos DB アカウントのマネージド ID を使用したカスタマー マネージド キーの構成がサポートされています。 同じカスタマー マネージド キーを自動かつ透過的な方法で使用して、トランザクション ストアおよび分析ストア全体のデータをシームレスに暗号化できます。 詳細については、Azure Cosmos DB アカウントのマネージド ID を使ったカスタマー マネージド キーの構成に関する記事を参照してください。

はい、トランザクションおよび分析ストア内のデータへのネットワーク アクセスを個別に制御できます。 ネットワークの分離は、Azure Synapse ワークスペースのマネージド仮想ネットワーク内で、ストアごとに別個のマネージド プライベート エンドポイントを使用して行われます。 詳細については、分析ストアのプライベート エンドポイントを構成する方法に関する記事を参照してください。

通常、403 は、ポータルからであってもユーザーが特定のデータにアクセスできないようにするネットワーク/ファイアウォール設定が原因です。 この問題の最も一般的な原因は、プライベート エンドポイントを使用したネットワーク分離プロセスを有効にする手順 1 が、Azure CLI または PowerShell を使用して実行されていないことです。 詳細については、こちらをご覧ください。

Synapse ランタイム

Azure Cosmos DB 分析ストアにアクセスするために現在サポートされている Synapse ランタイムは何ですか?

Azure Synapse ランタイム 現在のサポート
Azure Synapse Spark プール 読み取り、書き込み (トランザクション ストア経由)、テーブル、一時ビュー
Azure Synapse サーバーレス SQL プール 読み取り、表示
プロビジョニングされた Azure Synapse SQL 使用不可

Spark テーブルは、Azure Data Lake の場合と同じように SQL サーバーレス テーブルと同期されますか?

現時点では、この機能は使用できません。

分析ストアから Spark 構造化ストリーミングを実行できますか?

現在、Azure Cosmos DB に対する Spark 構造化ストリーミングのサポートは、トランザクション ストアの変更フィード機能を使用して実装されていて、分析ストアからはまだサポートされません。

ストリーミングはサポートされていますか?

分析ストアからのデータのストリーミングはサポートされていません。

Azure Synapse Studio

Azure Synapse Studio で、分析ストアが有効な Azure Cosmos DB コンテナーに接続されていることを確認するにはどうすればよいですか?

分析ストアが有効な Azure Cosmos DB コンテナーのアイコンは、次のようになっています。

分析ストアが有効な Azure Cosmos DB コンテナーのアイコン

トランザクション ストア コンテナーは、次のアイコンで表されます。

トランザクション ストアが有効な Azure Cosmos DB コンテナーのアイコン

Azure Synapse Studio から Azure Cosmos DB 資格情報を渡すにはどうすればよいですか?

現時点では、Azure Cosmos DB 資格情報は、Azure Cosmos DB データベースにアクセスできるユーザーが、リンクされたサービスを作成するときに渡されます。 そのストアへのアクセスは、ワークスペースにアクセスできる他のユーザーが利用できます。

SQL Server Management Studio を使用して、Synapse サーバーレス SQL プールを使用して分析ストアにクエリを実行できますか?

はい。

次のステップ