適用対象:✅Microsoft Fabric の倉庫
倉庫スナップショットは、特定の時点における倉庫アイテムの読み取り専用の表現であり、最大 30 日間保持されます。 開始するには、 ウェアハウス スナップショットを作成します。
ウェアハウス スナップショットはオンデマンドでシームレスに "ロールフォワード" でき、コンシューマーは同じスナップショットに接続したり、一貫性のあるウェアハウス接続文字列を使用して過去のバージョンのデータにアクセスしたりできます。 スナップショットタイムスタンプがロールフォワードされると、単一のアトミック トランザクションの場合と同様に、更新が直ちに適用されます。 ウェアハウス スナップショットを使用すると、リアルタイムの更新が発生した場合でも、データ エンジニアは分析ユーザーに一貫性のあるデータセットを提供できます。 アナリストは、ETL 干渉なしでスナップショットに基づいて SELECT クエリを実行できます。
スナップショットは、ETL プロセスによってデータが破損した可能性があるシナリオで役立ちます。 これらの子項目は読み取り専用であり、一部のETLプロセスによって変更される可能性があるデータの安定性と一貫性を確保します。
倉庫スナップショットの意思決定の手引き
次の表では、Lakehouse の SQL 分析エンドポイントとウェアハウス スナップショットを比較します。
| 特徴 | レイクハウスの SQL 分析エンドポイント | ウェアハウス スナップショット |
|---|---|---|
| 作成 | システムによって自動的に生成された | ユーザーが作成した親ウェアハウスの子項目 |
| 主な機能 | Lakehouse での Delta テーブルのクエリ。 Lakehouse Deltaのテーブルと、ショートカットを使用して参照されるDelta Lakeのフォルダーの分析をサポートします。 | 親ウェアハウスの特定の時点のクエリを実行する |
| データの変更 | 読み取り専用 | 読み取り専用 |
| ストレージ形式 | デルタ | 個別のストレージがなく、ソース ウェアハウスに依存し、Parquet ファイルはありません |
| データの読み込み | Spark、パイプライン、データフロー、ショートカット | 親ウェアハウスに読み込まれたデータ |
| T-SQL のサポート | 完全 DQL (データ クエリ言語)、DML なし (データ操作言語)、ビューのサポート、テーブル値関数などの制限付き DDL (データ定義言語) | 完全 DQL、DML なし、DDL なし (管理者、メンバー、または共同作成者によるスナップショット タイムスタンプの更新を除く)、ビューまたはテーブル値関数の作成なし |
| 活用事例 | レイクハウスの差分テーブルを探索し、クエリを実行すること、ステージングデータ、ブロンズ、シルバー、そしてゴールドの分析用ゾーンを備えたメダリオン レイクハウス アーキテクチャの活用 | ウェアハウスの安定したバージョンへのアクセス、ETL の一貫性、履歴分析、レポートの精度、時間単位、毎日、または毎週のウェアハウス スナップショットを作成することで、特定のビジネス ニーズを満たす |
権限
ソース データベースでセキュリティアクセス許可を設定する必要があります。
- 管理者、メンバー、または共同作成者の ワークスペース ロール を持つユーザーは、ウェアハウス スナップショットを作成および管理できます。
- 管理者、メンバー、または共同作成者ロールを持つユーザーは、T-SQL と Fabric ポータルを使用してスナップショットのタイムスタンプを変更できます。
- ワークスペースの管理者、メンバー、共同作成者、ビューアー ロールを持つユーザー、または親ウェアハウス アクセスの共有受信者は、子スナップショットに対してクエリを実行できます。
スナップショットのタイムスタンプを更新する
スナップショット タイムスタンプを更新すると、分析コンシューマーに安定したデータ バージョンを提供できます。 進行中のクエリは、開始されたデータのバージョンに対して常に完了します。 スナップショットのタイムスタンプがロールフォワードされると、データの待機時間や不整合が発生せず、データの更新がすぐに利用できるようになります。
ユーザーは、既存のウェアハウス スナップショットのタイムスタンプをいつでも更新できます。 この操作はすぐに完了します。
ウェアハウス スナップショットのタイムスタンプを更新するには、スナップショットの タイムスタンプの更新に関する記事を参照してください。
T-SQL クエリを実行すると、アクセスされているデータの現在のバージョンに関する情報が含まれます。 たとえば、Fabric ポータル クエリ エディターのメッセージでタイムスタンプを確認できます。
セキュリティとガバナンス
- スナップショットは、ソース ウェアハウスからアクセス許可を継承します。 ウェアハウス スナップショットは、ソース ウェアハウス内のアクセス許可レベルに関係なく、すべてのコンシューマーに対して読み取り専用です。 唯一の例外は、管理者/メンバー/共同作成者が TSQL または Fabric ポータルを使用してスナップショットのタイムスタンプを更新できることです。
- ソース ウェアハウスのアクセス許可の変更は、スナップショットに即座に適用されます。 GRANT、DENY、REVOKE、UNMASK などのユーザー アクセスはすべて、スナップショットのタイムスタンプに関係なく、ソース ウェアハウスの状態を反映します。
- 後でアクセスできなくなった場合、ユーザーはスナップショットのクエリを実行できないように制限されます。
- たとえば、コンシューマーのアクセス許可が午後 12 時にデータへのアクセスを拒否された場合、これはウェアハウスとスナップショットの両方に適用されます。 スナップショットのタイムスタンプが午前 11 時に設定されている場合、拒否された特権はすぐにスナップショットに適用されます。
注
Fabric Data Warehouse の安定したレポート保証は、スキーマではなくデータに適用されます。 たとえば、レポートがスナップショットからテーブル、ビュー、または列を参照し、そのオブジェクトが後で親ウェアハウスから削除、名前変更、または変更された場合、スナップショットはその変更を反映します。 その結果、レポートが破損する可能性があります。 スナップショット メカニズムはスキーマの安定性ではなく、データの整合性を維持するように設計されているため、この動作が期待されます。
スナップショットを管理する
- ウェアハウス スナップショットには、ウェアハウスと SQL 分析エンドポイントから一意の一意の名前が必要です。
- ソース ウェアハウスがない場合、ウェアハウス スナップショットは存在しません。 ウェアハウスが削除されると、すべてのスナップショットが削除されます。 ウェアハウスが復元される場合は、ウェアハウススナップショットを再作成する必要があります。
- ウェアハウス スナップショットは、過去最大 30 日間有効です。 スナップショットの日時は、過去最大 30 日間の任意の日付またはデータベースの作成時刻 (どちらか後) に設定できます。
注釈
- スナップショットのタイムスタンプ後に変更されたテーブル、ビュー、およびストアド プロシージャが、スナップショットで無効になります。
- ウェアハウス スナップショットでは、Power BI で直接クエリまたはインポート モードが必要であり、 Direct Lake モードはサポートされていません。
- ウェアハウス スナップショットは、Lakehouse の SQL 分析エンドポイントではサポートされていません。
- ウェアハウス スナップショットは、OneLake ショートカットのソースとしてサポートされていません。