はじめに
DeltaLake の機能として Cloneコマンド がありますが、Fabric Lakehouse で使用できるかを確認しました。
結論としては、ノートブック以外での利用は不可でした。
Cloneコマンドについて
OSS Delta Lake では SHALLOW CLONE がサポートされています。
SHALLOW CLONEは、メタデータのみを複製するだけなので、非常に高速にテーブルの複製ができる DeltaLake のテーブルユーティリティコマンドです。
ソーステーブルと同じデータファイルから開始されますが、更新は別の独立した DeltaLogとデータファイルが追加されていくことになるのでソーステーブルに影響なく処理することが可能です。
Databricks ではデータの実体もコピーして新しいテーブルを作成する DEEP CLONEもサポートされています。
手順
準備
レイクハウスに適当なテーブルを作成しておきます。
pyspark
from pyspark.sql import Row
# サンプルデータの作成
data = [Row(id=1, name="Alice", age=30),
Row(id=2, name="Bob", age=25),
Row(id=3, name="Charlie", age=35),
Row(id=4, name="David", age=40),
Row(id=5, name="Eva", age=22)]
# DataFrameの作成
df = spark.createDataFrame(data)
display(df)
df.write.mode("overwrite").saveAsTable("source_people")
Clone コマンドの実行
-
名前かURLでソーステーブルを指定できます。以下のコマンドを実行します。
sql%%sql create or replace table clone_people_by_name shallow clone source_people;
または、別の場所にあるテーブルなどパスで指定する場合は、abfssパスで参照可能です。
sql%%sql create or replace table clone_people_by_name shallow clone delta.`abfss パス`;