このチュートリアルでは、Fabric データベース内の既存の Cosmos DB から Fabric ミラー化データベースに対してクエリを実行します。 データベースでミラーリングを有効にし、ミラーリングの状態を確認してから、ソース データとミラー化データの両方を分析に使用する方法について説明します。
[前提条件]
既存のファブリック容量
- Fabric 容量がない場合は、 Fabric 試用版を開始します。
Fabric の既存の Cosmos DB データベース
- まだお持ちでない場合は、 Fabric で新しい Cosmos DB データベースを作成します。
Fabric データベースで Cosmos DB を構成する
まず、Fabric データベース内の Cosmos DB が正しく構成され、ミラーリング用のデータが含まれていることを確認します。
Fabric ポータル (https://app.fabric.microsoft.com) を開きます。
既存の Cosmos DB データベースに移動します。
Important
このチュートリアルでは、既存の Cosmos DB データベースに サンプル データ セット が既に読み込まれている必要があります。 このチュートリアルの残りの手順では、このデータベースに同じデータ セットを使用していることを前提としています。
データベースにデータを含むコンテナーが少なくとも 1 つ含まれていることを確認します。 この検証を行うには、ナビゲーション ウィンドウでコンテナーを展開し、その項目が存在することを確認します。
メニュー バーで、[ 設定] を選択してデータベース構成にアクセスします。
[設定] ダイアログで、[ミラーリング] セクションに移動して、このデータベースに対してミラーリングが有効になっていることを確認します。
注
ミラーリングは、Fabric 内のすべての Cosmos DB データベースに対して自動的に有効になります。 この機能では、追加の構成は必要なく、OneLake でデータが常に分析可能であることを保証します。
ソース データベースに接続する
次に、ソース Cosmos DB データベースに直接接続してクエリを実行できることを確認します。
Fabric ポータルで既存の Cosmos DB データベースに戻ります。
既存のコンテナーを選択して展開し、その内容を表示します。
[ アイテム] を選択して、データベース内のデータを直接参照します。
コンテナー内の項目が表示されることを確認します。 たとえば、サンプル データ セットを使用している場合は、
name、category、countryOfOriginなどのプロパティを持つ項目が表示されます。メニューから [新しいクエリ ] を選択して、NoSQL クエリ エディターを開きます。
テスト クエリを実行して、接続性とデータの可用性を確認します。
SELECT COUNT(1) AS itemCount FROM containerこのクエリは、コンテナー内の項目の合計数を返す必要があります。
ミラー化されたデータベースに接続する
次に、SQL 分析エンドポイントを介してミラー化されたバージョンのデータベースにアクセスし、T-SQL を使用して同じデータにクエリを実行します。
メニュー バーで Cosmos DB の一覧を選択し、 SQL 分析エンドポイント を選択してミラー化されたデータベース ビューに切り替えます。
コンテナーが SQL 分析エンドポイントのテーブルとして表示されることを確認します。 テーブルの名前はコンテナーと同じである必要があります。
メニューから [新しい SQL クエリ ] を選択して、T-SQL クエリ エディターを開きます。
テスト クエリを実行して、ミラーリングが正しく動作していることを確認します。
SELECT COUNT(*) AS itemCount FROM [dbo].[SampleData]注
サンプル データ セットを使用していない場合は、
[SampleData]をコンテナーの名前に置き換えます。このクエリは、ミラーリングによってデータが正常にレプリケートされていることを確認して、NoSQL クエリと同じ数を返す必要があります。
Fabric からソース データベースのクエリを実行する
Fabric ポータルを使用して、Azure Cosmos DB アカウントに既に存在するデータを調べ、ソース Cosmos DB データベースに対してクエリを実行します。
ファブリック ポータルでミラー化されたデータベースに移動します。
[ 表示]、[ ソース データベース] の順に選択します。 この操作により、ソース データベースの読み取り専用ビューで Azure Cosmos DB データ エクスプローラーが開きます。
コンテナーを選択し、コンテキスト メニューを開き、[ 新しい SQL クエリ] を選択します。
任意のクエリを実行します。 たとえば、
SELECT COUNT(1) FROM containerを使用して、コンテナー内の項目の数をカウントします。注
ソース データベースのすべての読み取りは Azure にルーティングされ、アカウントに割り当てられた要求ユニット (RU) が使用されます。
対象のミラー化されたデータベースを分析する
次に、T-SQL を使用して、Fabric OneLake に格納されている NoSQL データに対してクエリを実行します。
ファブリック ポータルでミラー化されたデータベースに移動します。
ミラー化された Azure Cosmos DB から SQL 分析エンドポイントに切り替えます。
ソース データベース内の各コンテナーは、SQL 分析エンドポイントでウェアハウス テーブルとして表す必要があります。
任意のテーブルを選択し、コンテキスト メニューを開き、[ 新しい SQL クエリ] を選択して、最後に [ 上位 100 を選択] を選択します。
クエリが実行され、選択したテーブル内の 100 個のレコードが返されます。
同じテーブルのコンテキスト メニューを開き、[ 新しい SQL クエリ] を選択します。
SUM、COUNT、MIN、MAXなどの集計を使用するクエリの例を記述します。 ウェアハウス内の複数のテーブルを結合して、複数のコンテナー間でクエリを実行します。注
たとえば、このクエリは複数のコンテナーで実行されます。
SELECT d.[product_category_name], t.[order_status], c.[customer_country], s.[seller_state], p.[payment_type], sum(o.[price]) as price, sum(o.[freight_value]) freight_value FROM [dbo].[products] p INNER JOIN [dbo].[OrdersDB_order_payments] p on o.[order_id] = p.[order_id] INNER JOIN [dbo].[OrdersDB_order_status] t ON o.[order_id] = t.[order_id] INNER JOIN [dbo].[OrdersDB_customers] c on t.[customer_id] = c.[customer_id] INNER JOIN [dbo].[OrdersDB_productdirectory] d ON o.product_id = d.product_id INNER JOIN [dbo].[OrdersDB_sellers] s on o.seller_id = s.seller_id GROUP BY d.[product_category_name], t.[order_status], c.[customer_country], s.[seller_state], p.[payment_type]この例では、テーブルと列の名前を前提としています。 SQL クエリを記述するときは、独自のテーブルと列を使用します。
クエリを選択し、[ 名前を付けて保存] ビューを選択します。 ビューに一意の名前を付けます。 このビューには、ファブリック ポータルからいつでもアクセスできます。
ファブリック ポータルでミラー化されたデータベースに戻ります。
[ 新しいビジュアル クエリ] を選択します。 クエリ エディターを使用して、複雑なクエリを作成します。
SQL クエリまたはビューに関する BI レポートを作成する
- クエリまたはビューを選択し、[ このデータの探索 (プレビュー)]を選択します。 このアクションでは、Direct Lake on OneLake のミラー化されたデータを使用して、Power BI のクエリを直接探索します。
- 必要に応じてグラフを編集し、レポートを保存します。
ヒント
必要に応じて、Copilot やその他の拡張機能を使用して、それ以上データを移動せずにダッシュボードやレポートを作成することもできます。