新しいUniversal Format と Liquid Clusteringを備えたDelta Lake 3.0の発表
翻訳:Saki Kitaoka. - Original Blog Link
Linux Foundation オープンソース Delta Lake Project,の次のメジャーリリースである Delta Lake 3.0 を発表できることを嬉しく思います。(preview中)
このリリースに対する Delta Lake コミュニティの貴重な貢献に心から感謝いたします。
Delta Lake 3.0 では、以下の強力な機能が導入されます:
- Delta Universal Format (UniForm)は、アプリケーションによって必要とされるフォーマットでのデルタの読み込みを可能にし、互換性を向上させ、エコシステムを拡大します。Delta は Apache Iceberg または Apache Hudi に必要なメタデータを自動的に生成するため、ユーザーはフォーマット間で選択したり、手動で変換したりする必要がありません。UniFormにより、デルタはエコシステム全体で機能するユニバーサルフォーマットとなります。
- Delta Kernelは、Deltaプロトコル仕様の複雑な詳細をすべて隠すシンプルで狭いプログラムAPIを提供することで、Deltaコネクタの構築を簡素化します。
- Liquid Clustering (近日公開予定)は、データの増加に伴い、コスト効率の良いクラスタリングで最高のクエリパフォーマンスを得ることを簡素化します。
このブログでは、Delta Lake 3.0が解決するお客様の課題を通して、Delta Lake 3.0の機能の詳細をご紹介します。
課題その1:データレイクハウスのアイデアは良いが、どのストレージ形式を選択すべきか?
企業は、データウェアハウスとデータレイクをオープンなデータレイクハウスに統合することに興味を持っています。この動きは、 データを独自のフォーマットに固定することを回避し、データの単一のコピーに対して適切な仕事に適切なツールを使用することを可能にします。しかし、1つのオープンレイクハウス・フォーマットに標準化するかどうか、そしてどのフォーマットを使用するかという決断に苦慮しています。また、既存のデータウェアハウスやデータレイクをさまざまなチームが使用しており、それぞれが好みのデータコネクタを使用している場合もあります。顧客は、単一のストレージ形式を選択することがロックインにつながることを懸念し、一方通行のドアを通過することを心配しています。移行にはコストと困難が伴うため、前もって適切な決断を下し、移行は一度で済ませたいと考えています。最終的には、ETL、BI、AIを含むすべてのデータワークロードに対して、最も安価で最高のパフォーマンスと、そのデータをどこででも利用できる柔軟性を求めています。
解決策→Delta UniFormは、Delta LakeをIcebergとHudiに自動的かつ瞬時に変換します。
デルタユニバーサルフォーマット(UniForm)は、データの追加コピーやデータサイロを増やすことなく、テーブルフォーマットを自動的に統一します。IcebergやHudiのデータを扱うように設計されたクエリエンジンを使用しているチームは、データをコピーしたり変換したりすることなく、シームレスにデルタのテーブルを読むことができます。Deltaで作成されたテーブルは、IcebergやHudiのリーダーから普遍的にアクセスできるため、顧客は単一のフォーマットを選択する必要はありません。
UniFormは、3つのオープンレイクハウスフォーマットすべてがParquetデータファイルの上に薄いメタデータのレイヤーを持つという事実を利用しています。書き込みが行われると、UniFormはHudi、Iceberg、Deltaの仕様に合わせてこのメタデータのレイヤーをインクリメンタルに生成します。
ベンチマークでは、UniFormによるパフォーマンスやリソースのオーバーヘッドはごくわずかであることが確認されています。また、UniForm対応テーブルでは、Zオーダーなどのデルタのデータレイアウト機能の向上により、ネイティブのIcebergテーブルに比べて読み取りパフォーマンスが向上しています。
UniFormにより、顧客は安心してデルタを選択することができます。デルタを選択することで、レイクハウスフォーマットをサポートするあらゆるツールから幅広いサポートを受けることができます。
「金融サービス業界におけるコラボレーションとイノベーションは、オープンソースコミュニティとLegendのようなプロジェクトによって促進されています」
と、ゴールドマン・サックスのチーフ・データ・オフィサー兼データエンジニアリング責任者であるNeema Raphael氏は述べています。
「我々は、テクノロジーの未来におけるオープンソースの重要性を長い間信じており、DatabricksがDelta Lakeへの投資を続けてい ることに感激しています。組織は、オープンなテーブルフォーマットの選択によって制限されるべきではなく、Delta Lakeにおけるユニバーサルフォーマットのサポートは、コミュニティ全体を前進させ続けるでしょう。」
課題その2:最適なパフォーマンスを得るための適切なパーティショニングキーの把握はゴルディロックス問題
データレイクハウスを構築する際、現在のデータクエリパターンに適合するだけでなく、時間の経過とともに新しいワークロードにも適応するような、画一的なパーティショニング戦略を考え出すのは困難です。データレイアウトが固定されているため、適切なパーティショニング戦略を選択することは、チームがパーティショニング戦略に対して事前に多くの慎重な検討と計画を行う必要があることを意味します。また、最善の努力にもかかわらず、時間の経過とともにクエリ・パターンが変化し、最初のパーティショニング戦略は非効率で高価なものになります。パーティション・エボリューションのような機能は、Hiveスタイルのパーティショニングをより柔軟にするために多少役立ちますが、テーブル所有者が継続的にテーブルを監視し、パーティショニング・カラムを「進化」させる必要があります。このようなステップはすべてエンジニアの手間を増やし、データから洞察を得たいだけの多くのユーザーにとっては容易ではありません。また、最善の努力にもかかわらず、パーティション間のデータ分布が時間の経過とともに不均一になり、読み取り/書き込みパフォーマンスに直接影響を与える可能性があります。
解決策→ Liquidの柔軟な データレイアウト技術は、現在およびデータの成長に合わせて自己調整することができます。
リキッドクラスタリングは、デルタテーブルのためのスマートなデータ管理技術です。柔軟性があり、クラスタリングキーに基づいてデータレイアウトを自動的に調整します。リキッドクラスタリングはデータパターンに基づいて動的にデータをクラスタリングし、Hiveパーティショニングで発生する可能性のあるパーティショニングの過不足問題を回避します。
- Liquidはシンプルです: Liquidのクラスタリングキーは、最も頻繁にクエリされるカラムに設定します。カラムのカーディナリティ、パーティションの順序、完璧なパーティショニングキーとして機能する人工的なカラムの作成など、従来の考慮事項について心配する必要はありません。
- Liquidは効率的です: 新しいデータをインクリメンタルにクラスタリングするため、パフォーマンスの向上とコスト/書き込み増幅の削減をトレードオフする必要がありません。
- Liquidは柔軟です: 既存のデータを書き換えることなく、Liquidによってクラスタ化されるカラムを素早く変更できます。
Liquidのパフォーマンスをテストするために、典型的な1TBのデータウェアハウスワークロードのベンチマークを実行しました。Liquid Clusteringは、Zオーダーと比較して2.5倍高速なクラスタリングを実現しました。同じトライアルで、従来のHiveスタイルのパーティショニングは、多くのパーティションを書き出すために必要な高価なシャッフルのため、1桁遅くなりました。Liquidはまた、新しいデータが取り込まれるたびにインクリメンタルにクラスタリングし、一貫して高速な読み取りパフォーマンスを実現します。
課題その3: インテグレーターにとって、どのコネクタを優先させるかを決定するのは厄介です。
Delta のコネクターエコシステムは大規模で、フォーマットの急速な普及に対応して成長しています。エンジンインテグレーターや開発者は、オープンソースストレージフォーマット用のコネクタを構築する際、どのフォーマットを優先させるかを決定しなければなりません。新しいプロトコルの仕様が変わるたびに新しいコードが必要になるため、メンテナンスにかかる時間とコストとエンジニアリングリソースのバランスを取る必要があります。
解決策→ カーネルはコネクタのエコシステムを統一します。
Delta Kernelは、複雑なデルタ・プロトコルの詳細をすべて隠す、簡素化され、狭く、安定したプログラムAPIを提供する新しいイニシアチブです。カーネルを使用すると、コネクタ開発者は、1行のコードではなく、カーネルのバージョン自体を更新することで、すべてのデルタの新機能にアクセスできます。エンドユーザーにとっては、エコシステム全体で最新のデルタイノベーションに迅速にアクセスできることを意味します。
UniFormとともに、カーネルはコネクタのエコシステムを さらに統合します。なぜなら、デルタはIcebergとHudiのメタデータを自動的に書き出すからです。エンジンインテグレータにとっては、デルタのために一度構築すれば、すべての人のために構築できることを意味します。
Delta Lake 3.0 のpreviewリリース候補は、本日より利用可能です。Databricksのお客様は、DBRバージョン13.2またはDBSQLの次のプレビューチャンネルで、Delta Lakeのこれらの機能をプレビューすることもできます。
オープンソースの Delta Lake コミュニティへの参加に興味がありますか?
詳細はDelta Lakeをご覧ください。 Slack and Google Group経由でDelta Lakeコミュニティに参加することができます。プロジェクトに貢献することに興味がある方は、こちらのオープンイシューのリストをご覧ください(here)。
これらのリリースをコミュニティに提供してくださった以下の貢献者に感謝します:
Ahir Reddy, Ala Luszczak, Alex, Allen Reese, Allison Portis, Antoine Amend, Bart Samwel, Boyang Jerry Peng, CabbageCollector, Carmen Kwan, Christos Stavrakakis, Denny Lee, Desmond Cheong, Eric Ogren, Felipe Pessoto, Fred Liu, Fredrik Klauss, Gerhard Brueckl, Gopi Krishna Madabhushi, Grzegorz Kołakowski, Herivelton Andreassa, Jackie Zhang, Jiaheng Tang, Johan Lasperas, Junyong Lee, K.I. (Dennis) Jung, Kam Cheung Ting, Krzysztof Chmielewski, Lars Kroll, Lin Ma, Luca Menichetti, Lukas Rupprecht, Ming DAI, Mohamed Zait, Ole Sasse, Olivier Nouguier, Pablo Flores, Paddy Xu, Patrick Pichler, Paweł Kubit, Prakhar Jain, Ryan Johnson, Sabir Akhadov, Satya Valluri, Scott Sandre, Shixiong Zhu, Siying Dong, Son, Tathagata Das, Terry Kim, Tom van Bussel, Venki Korukanti, Wenchen Fan, Yann Byron, Yaohua Zhao, Yuhong Chen, Yuming Wang, Yuya Ebihara, aokolnychyi, gurunath, jintao shen, maryannxue, noelo, panbingkun, windpiger, wwang-talend