LoginSignup
0
0

More than 1 year has passed since last update.

Azure Synapse Apache Spark PoolsにてDelta Lake形式のテーブルにおけるファイル数を最適化するOptimizeについて

Posted at

概要

Azure Synapse Apache Spark Poolsにて、Delta Lake形式のテーブルにおけるファイル数を最適化するOptimizeの実行する方法として、Optimizeを利用できるようです。ドキュメント等では確認できないのですが、ライブラリの中をみていたところ、偶然にもみつけました。

from delta import *

help(DeltaTable.optimize)

image.png

Delta lake形式のテーブルでは、データを追加することによりファイル数が増大することから、ファイルの圧縮の実施が推奨されております。delta lakeのドキュメントでは、すべてのデータを読み取り再パーティション後に書き込む方法が紹介されています。

path = "..."
numFiles = 16

(spark.read
 .format("delta")
 .load(path)
 .repartition(numFiles)
 .write
 .option("dataChange", "false")
 .format("delta")
 .mode("overwrite")
 .save(path))

引用元:Best practices — Delta Lake Documentation

Optimizeを利用することで、下記のようなシンプルなコードの記載のみでよくなります。

DeltaTable.forName(spark, {table_name}).optimize()
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0