Microsoft Fabric でテーブルを複製する
適用対象:✅Microsoft Fabric のウェアハウス
Microsoft Fabric は、最小限のストレージ コストでほぼ瞬時にゼロコピー クローンを作成する機能を提供します。
- テーブル クローンは、下位環境にテーブルのコピーを作成することで、開発とテストのプロセスを容易にします。
- テーブル クローンは、分析ワークロードと機会分析のモデリングおよびテストで、データに関する一貫性のあるレポート作成とゼロコピー複製を行います。
- テーブル クローンは、データの以前の状態を保持することで、リリースの失敗またはデータ破損が発生した場合にデータを回復する機能を提供します。
- テーブルの複製は、過去の特定の時点に存在していたデータの状態を反映する履歴レポートを作成するのに役立ちます。
- 特定の時点でのテーブルの複製により、特定のビジネス ポイントでのデータの状態を保持できます。
CREATE TABLE AS CLONE OF T-SQL コマンドを使用して、テーブル クローンを作成できます。 チュートリアルについては、「チュートリアル: T-SQL を使用してテーブルを複製する」または「チュートリアル: Fabric ポータルでテーブルを複製する」を参照してください。
また、T-SQL OPTION
構文を使用して、過去に表示されたとおりにウェアハウス内のデータにクエリを実行することもできます。 詳細については、「過去に存在していたデータに対してクエリを実行する」を参照してください。
ゼロコピー クローンとは?
ゼロコピー クローンは、OneLake 内の同じデータ ファイルを参照しながら、メタデータをコピーすることによってテーブルのレプリカを作成します。 メタデータはコピーされますが、Parquet ファイルとして保存されているテーブルの基礎となるデータはコピーされません。 クローンの作成は、Microsoft Fabric のウェアハウス内にテーブルを作成するのと似ています。
Synapse Data Warehouse のテーブル クローン
テーブル クローンの作成
ウェアハウス内では、簡単な T-SQL を使って、テーブルの複製をほぼ瞬時に作成できます。 テーブルのクローンは、ウェアハウス内のスキーマ内またはスキーマ間で作成できます。
テーブルの複製は、次のいずれかに基づいて作成できます。
現在の時点: 複製は、テーブルの現在の状態に基づきます。
過去の時点: 複製は、最大過去 30 日前までの時点に基づきます。 テーブルの複製には、目的の過去の時点に存在していたデータが含まれます。 業界では、この機能は「タイム トラベル」と呼ばれます。 新しいテーブルは、UTC に基づくタイムスタンプで作成されます。 例については、「過去の時点のテーブルを複製する」または「CREATE TABLE AS CLONE OF」をご覧ください。
一度に一連のテーブルを複製することもできます。 これは同じ過去の時点で関連する一連のテーブルを複製する場合に役立ちます。 例については、「一度に複数のテーブルを複製する」を参照してください。
また、Warehouse の タイム トラベル 機能を使用して、過去に存在していたテーブルのデータに対してクエリを実行することもできます。
データの保持
ウェアハウスでは、データの履歴が 30 日間自動的に保持されるため、ある時点での複製を作成できます。 データ ウェアハウスに対するすべての挿入、更新、削除は、30 日間保持されます。
スキーマ内およびスキーマ間で作成されるクローンの数に制限はありません。
個別および独立
テーブル クローンを作成すると、テーブル クローンはソースからのデータの独立した別個のコピーになります。
- 複製テーブルのソースに対して DML または DDL によって行われた変更は、複製テーブルに反映されません。
- 同様に、テーブルの複製に対して DDL または DML によって行われた変更は、複製テーブルのソースに反映されません。
テーブル クローンを作成するアクセス許可
テーブル クローンを作成するには、次のアクセス許可が必要です。
- 管理者、メンバー、または共同作成者ワークスペース ロールを持つユーザーは、ワークスペース内でテーブル クローンを作成できます。 閲覧者ワークスペース ロールはクローンを作成できません。
- テーブル クローンのソースのすべての行と列に対する SELECT アクセス許可が必要です。
- ユーザーは、テーブル クローンが作成されるスキーマでの CREATE TABLE アクセス許可を持っている必要があります。
テーブル クローンの削除
自律的に存在するため、元のソースと複製の両方を制約なしで削除できます。 クローンが作成されると、ユーザーが削除するまで存在し続けます。
- 管理者、メンバー、または共同作成者ワークスペース ロールを持つユーザーは、ワークスペース内でテーブル クローンを削除できます。
- テーブルの複製が存在するスキーマに対する ALTER SCHEMA アクセス許可を持っているユーザーは、テーブルの複製を削除できます。
テーブル クローンの継承
ここで説明するオブジェクトはテーブル クローンに含まれています。
複製テーブルは、複製のソース テーブルからオブジェクト レベルの SQL セキュリティを継承します。 ワークスペース ロールは既定で読み取りアクセスを提供するため、必要に応じてテーブル クローンに DENY アクセス許可を設定できます。
複製テーブルは、複製テーブルのソースから行レベル セキュリティ (RLS) と動的データ マスクを継承します。
複製が同じスキーマ内で作成されたか、ウェアハウス内の異なるスキーマ間で作成されたかに関係なく、複製テーブルはソース テーブルに存在するすべての属性を継承します。
複製テーブルは、ソース テーブルで定義されている主キー制約と一意キー制約を継承します。
読み取り専用差分ログは、ウェアハウス内で作成されるテーブル クローンごとに作成されます。 差分 Parquet ファイルとして保存されたデータ ファイルは読み取り専用です。 これにより、データは常に破損から保護されます。
テーブル クローンのシナリオ
次の有益なシナリオでは、最小限のストレージ コストでほぼ瞬時にテーブル クローンを作成できる機能を検討してください。
開発とテスト
テーブルの複製を使用すると、開発者やテスト担当者は運用環境のテーブルに影響を与えることなく、テーブルを実験、検証、調整できます。 クローンは、新機能の開発およびテスト活動を実施するための安全で隔離されたスペースを提供し、運用環境の整合性と安定性を確保します。 テーブル クローンを使用すると、トラブルシューティング、実験、開発、テストの目的で、運用環境のような環境のコピーを迅速にスピンアップできます。
一貫姓のあるレポート、データ探索、機械学習モデリング
絶えず変化するデータ ランドスケープに対応するには、ETL ジョブを頻繁に実行することが不可欠です。 テーブル クローンは、バックグラウンド処理の進行中にクローン テーブルに基づいてレポートを生成する柔軟性を提供しながら、データの整合性を確保することでこの目標をサポートします。 さらに、テーブル クローンにより、機械学習モデルの以前の結果を再現できるようになります。 また、履歴データの調査と分析を可能にすることで、貴重な分析情報を容易にします。
低コストでほぼ瞬時の回復
偶発的なデータの損失または破損が発生した場合、既存のテーブルの複製を使ってテーブルを以前の状態に回復できます。
データのアーカイブ
監査またはコンプライアンスのため、ゼロ コピー クローンを使って、過去の特定の時点に存在していたデータのコピーを簡単に作成できます。 一部のデータは、長期的な保持または法的コンプライアンスのためにアーカイブすることが必要な場合があります。 さまざまな履歴ポイントでテーブルを複製すると、データが元の形式で確実に保持されます。
制限事項
- ワークスペース内のウェアハウス間のテーブル クローンは現在サポートされていません。
- ワークスペース間のテーブル クローンは現在サポートされていません。
- クローン テーブルは、レイクハウスの SQL 分析エンドポイントではサポートされていません。
- ウェアハウスまたはスキーマのクローンは現在サポートされていません。
- 30 日の保持期間より前に送信されたテーブルの複製は作成できません。
- テーブル スキーマを変更すると、テーブル スキーマ変更前に複製を作成することができなくなります。