Trino contributions in 2024
2024年にTrinoにコントリビュートした記録をまとめてみました。バグの修正などは除外して、ユーザーに関わる機能にしぼっています。
Delta Lakeコネクタはdelta-kernelを利用せずにトランザクションログやチェックポイントのパースを始め、読み書きを自前で実装していることもあり、ここ2年は作業量が多かったのですが、Delta側がTable Features を導入してからはreaderとwriterのバージョンがあがらなくなり、落ち着いてきました。プロトコル やRFC も以前ほど頻繁には変更されていない印象を受けます。
そういった背景もあり、Delta LakeのVariant型の対応がまだ進行中ですが、先月からは基本的にIcebergのみに完全に注力していくことになりました。現在はIcebergコネクタをWAP(Write-Audit- Publish)パターンを実現できるようにシンタックスの追加を進めています。あとはV3スペック についても対応中です。
Iceberg
add_files
およびadd_files_from_table
プロシージャの追加 #22751- Sparkのプロシージャと基本的には同じように動作しますが、1つ違いを挙げるとスキーマのバリデーションを追加しています。Sparkでは
NOT NULL
カラムに対してもNULL
が入ったファイルを追加できるのですが、Trino側ではエラーを投げるようにしています。
- Sparkのプロシージャと基本的には同じように動作しますが、1つ違いを挙げるとスキーマのバリデーションを追加しています。Sparkでは
$all_manifests
メタデータテーブルの追加 #24330$all_entries
メタデータテーブルの追加 #24543$entries
メタデータテーブルの追加 #24172ALTER COLUMN ... DROP NOT NULL
ステートメントのサポート #20448
Delta Lake
- Deletion Vectorの書き込みサポート #22102
- タイムトラベルクエリのサポート#21052
- メタデータをメタストアにバックグラウンドで保存 #21463
- Delta LakeやIcebergでよく問題になるのが
information_schema
等からカラム情報をリストするのが遅いというものがあります。これは毎回ストレージに対するアクセスが発生するのが原因なのですが、それを回避するためにメタストアのプロパティにカラム情報と最新のトランザクションのバージョンを追加しています。 - Type Wideningが有効化されているテーブルの読み込みサポート #22142
- Iceberg UniFormが有効になったテーブルの読み込みのサポート #22311
$transactions
メタデータテーブルの追加 #24292- V2チェックポイント が有効化されているテーブルの読み込みのサポート #19345
ALTER COLUMN ... DROP NOT NULL
ステートメントのサポート. #20448