イベントハウスで KQL データベース データの論理コピーを作成するには、OneLake 可用性を有効にします。 OneLake availability を有効にすると、Power BI の Direct Lake モード、Warehouse、Lakehouse、Notebook など、Fabric の他のエンジンを通じて、KQL データベース内のデータを Delta Lake 形式でクエリできるようになります。 Delta Lake は、Fabricのすべてのコンピューティング エンジンでシームレスなデータ アクセスを可能にする統合データ レイク テーブル形式です。
この記事では、OneLake で KQL データベース データの可用性を有効にする方法について説明します。
OneLake の可用性とスキーマ同期が有効になっている場合は、データベース レベルで Analyze data with>SQL エンドポイントを使用して、SQL ベースのエンジンを介して Delta Lake 表現をほぼリアルタイムで照会することもできます。
OneLake の可用性とスキーマ同期が有効になっている場合は、データベース レベルで Analyze data with>SQL エンドポイントを使用して、SQL ベースのエンジンを介して Delta Lake 表現をほぼリアルタイムで照会することもできます。
KQL データベースでの OneLake 可用性のしくみ
データベースレベルまたはテーブル レベル OneLake 可用性 を有効にすることができます。 データベース レベルで有効にすると、すべての新しいテーブルとそのデータが OneLake で使用できるようになります。 この機能を有効にする場合は、[既存のテーブルに適用] オプションを選択して、履歴バックフィルを含めることで、このオプションを 既存のテーブルに適用 することもできます。 テーブル レベルで有効にすると、そのテーブルとそのデータのみが OneLake で使用できるようになります。 KQL データベースの データ保持ポリシー は、OneLake のデータにも適用されます。 保存期間の終了時に KQL データベースから削除されるデータは、OneLake からも削除されます。 OneLake 可用性をオフにすると、データは OneLake から論理削除されます。
バックエンド スキーマ同期では、Delta Lake の表現が KQL データベースに合わせて維持され、SQL エンドポイントとノートブックを介したほぼリアルタイムのクエリが可能になります。 予想される待機時間とバッチ処理の動作については、「 アダプティブ動作」を参照してください。
OneLake の可用性 が有効になっている間は、次のタスクを実行することはできません。
- テーブルの名前を変更します。
- 列の種類を変更します。 列の追加または削除がサポートされています。
- テーブルに行レベルのセキュリティを適用します。
- データの削除、切り捨て、または消去。
これらのタスクのいずれかを実行する必要がある場合は、次の手順を使用します。
- OneLake 可用性をオフにします。
- タスクを実行します。
- OneLake 可用性をオンにします。
重要
OneLake 可用性をオフにすると、データは OneLake から論理削除されます。 可用性を有効に戻すと、履歴バックフィルを含むすべてのデータが OneLake で使用できるようになります。
注
OneLake にデータが表示されるまでの時間については、「 アダプティブ動作」を参照してください。 OneLake の可用性を有効にするための追加のストレージ コストはありません。 詳細については、「リソースの使用」を参照してください。
前提条件
- Fabric 対応の容量を持つワークスペース。
- 編集権限とデータを含む KQL データベース。
KQL データベースまたはテーブルの OneLake 可用性を有効にする
KQL データベースまたはテーブルの OneLake 可用性 を有効にすることができます。
データベースまたはテーブルを選択します。
詳細ウィンドウの OneLake セクションで、[ 可用性 ] を [有効] に設定します。
[ Enable OneLake availability]\(OneLake 可用性を有効にする \) ウィンドウで、[ 有効にする] を選択します。
データベースまたはテーブルの詳細が自動的に更新されます。
KQL データベースまたはテーブルで OneLake 可用性 を有効にすると、指定された OneLake パスのすべてのデータに Delta Lake 形式でアクセスできます。 また、レイクハウスまたはウェアハウスから OneLake ショートカットを作成したり、Direct Lake モードを使用して直接データPower BIクエリを実行したりすることもできます。 KQL データベースまたはテーブルで OneLake の可用性 が有効になっていると、指定された OneLake パスのすべてのデータに Delta Lake 形式でアクセスできるようになりました。 また、Lakehouse、Data Warehouse から OneLake ショートカットを作成したり、Power BI Direct Lake モードで直接データに対してクエリを実行したりすることもできます。
オプションを使用してデータを分析する
OneLake の可用性が有効になっている場合、Eventhouse および KQL データベース項目は、データベース レベルのオプションを使用してデータの分析を公開します。
- SQL エンドポイント: OneLake 可用性 とスキーマ同期の両方が有効になっている場合に使用できます。
- ノートブック: 選択したデータベースのノートブックベースの分析を開きます。
OneLake の可用性をオフにすると、もう一度有効になるまで、このメニューから SQL エンドポイント オプションが削除されます。
Parquet ファイルのバッチ処理のアダプティブ動作
eventhouse は、受信データ ストリームを分析用に構造化された 1 つ以上の Parquet ファイルにインテリジェントにバッチ処理します。 データ ストリームのバッチ処理は、データのトリクリングを処理する場合に重要です。これは、多数の小さな Parquet ファイルをレイクに書き込むと非効率的になる可能性があるためです。 この非効率性により、コストが高く、クエリのパフォーマンスが低下します。
Eventhouse アダプティブ メカニズムは、最適な Parquet ファイルを作成するのに十分なデータがない場合、OneLake への書き込み操作を遅らせることができます。 この動作により、Parquet ファイルのサイズが最適になり、Delta Lake のベスト プラクティスに準拠します。 データを迅速に利用できるようにする必要性と、コストおよびパフォーマンスの考慮事項とのバランスを取ります。
OneLake 可用性の既定の書き込み待機時間と構成可能な書き込み待機時間:
| Setting | 既定値 | 使用できる範囲 |
|---|---|---|
書き込み操作の遅延 (TargetLatencyInMinutes) |
最大 3 時間、または十分なサイズ (通常は 200 ~ 256 MB) のファイルが作成されるまで | 5 分から 3 時間 |
たとえば、次の Kusto コマンドを使用して、1 つのテーブルの書き込み遅延を 5 分に設定します。
.alter-merge table <TableName> policy mirroring dataformat=parquet with (IsEnabled=true, TargetLatencyInMinutes=5);
注意
遅延を短い期間に調整すると、多数の小さなファイルを含む最適でないデルタ テーブルが発生する可能性があり、クエリのパフォーマンスが非効率的になる可能性があります。 OneLake の結果テーブルは読み取り専用であり、作成後に最適化することはできません。
.show table mirroring operations コマンドを使用してデータ待機時間を確認することで、新しいデータがレイクに追加された時間を監視できます。
結果は、前回データが追加された時点から測定されます。
待機時間が00:00:00を返すと、KQL データベース内のすべてのデータを OneLake で使用できます。
OneLake で Delta Lake ファイルを表示する
テーブル で OneLake の可用性を有効にすると 、プロセスによって、対応する JSON ファイルと Parquet ファイルと共にデルタ ログ フォルダーが作成されます。 OneLake で使用できるファイルとそのプロパティは、Real-Time インテリジェンス内に留まっている間に表示できます。
ファイルを表示するには、[エクスプローラー] ペインのテーブルにカーソルを合わせ、[その他] メニュー [...]>[ファイルの表示] を選択します。
デルタ ログ フォルダーまたは個々のファイルのプロパティを表示するには、フォルダーまたはファイルをポイントし、[その他] メニュー [...]>[プロパティ] を選択します。
デルタ ログ フォルダー内のファイルを表示するには:
- [_delta_log] フォルダーを選択します。
- テーブルのメタデータとスキーマを表示するファイルを選択します。 開いたエディターは読み取り専用の形式です。
OneLake ミラーリング ポリシーにアクセスする
既定では、KQL データベースまたはテーブルに対して OneLake 可用性 を有効にすると、システムによって ミラーリング ポリシーが有効になります。 ミラーリング ポリシーを使用して 、データ待ち時間 を監視したり、 差分テーブルをパーティション分割するように変更したりできます。
注
OneLake の可用性をオフにすると、ミラーリング ポリシーの IsEnabled プロパティは false (IsEnabled=false) に設定されます。
OneLake の Delta テーブルをパーティション分割する
デルタ テーブルをパーティション分割して、クエリ速度を向上させることができます。 OneLake ファイルをパーティション分割するタイミングについての詳細は、「テーブルをパーティション分割するタイミング」を参照してください。 各パーティションは、PartitionNameリストにリストされているPartitionsを使用して個別の列として表されます。 この表現は、OneLake コピーにソース テーブルよりも多くの列があることを意味します。
デルタ テーブルをパーティション分割するには、 .alter-merge table policy mirroring コマンドを使用します。
Fabric ノートブックからデルタ テーブルに対してクエリを実行する
Fabric Notebook を使用して、次のコード スニペットを使用して OneLake データを読み取ることができます。
Tip
Eventhouse または KQL データベースの データの分析に使用する>Notebook から、新規または既存の Fabric ノートブックを直接起動できます。 ノートブックは、選択したデータベース コンテキストに自動的にアタッチされます。 パスベースの手動アクセスが必要な場合は、次のコード サンプルを使用します。
コード スニペットで、
<workspaceGuid>、<workspaceGuid>、および<tableName>を独自の値に置き換えます。
delta_table_path = 'abfss://<workspaceGuid>@onelake.dfs.fabric.microsoft.com/<eventhouseGuid>/Tables/<tableName>'
df = spark.read.format("delta").load(delta_table_path)
df.show()
注
Azure Data Explorer データベースの場合は、次のコードを使用します。
delta_table_path = 'abfss://<workspaceName>@onelake.dfs.fabric.microsoft.com/<itemName>.KustoDatabase/Tables/<tableName>'