見出し画像

デルタ・レイクのすべてをオープンソース化

下記ブログの翻訳です。6.30.2022
デルタ・レイクはアップル社との共同開発をしたサービスです。それらの開発秘話などが語られています。その後、DatabricksのDelta Lakeではオープンソースに加えて、いくつかの機能が追加されていましたが、今回それらを含めてのすべてをオープンソース化するということを発表しました。

今年のData + AI Summitのテーマは、「レイクハウスでモダンなデータスタックを構築する」というものです。データレイクハウスの基本的な要件は、データに信頼性をもたらすことであり、Delta Lakeのようにオープンで、シンプルで、プロダクションレディ(注;すぐに実運用できるという意味)で、プラットフォームに依存しないものであることが必要です。そして、これとともに、Delta Lake 2.0では、Delta Lakeのすべてをオープンソース化するという発表に興奮しています。

Delta Lakeの特徴

Delta Lakeは、組織がデータレイクハウスを構築することを可能にし、データレイク上で直接データウェアハウスと機械学習を可能にします。しかし、Delta Lakeはそれだけにとどまりません。現在、7,000以上の組織で使用され、1日あたりエクサバイトのデータを処理する最も包括的なレイクハウスフォーマットです。信頼性とパフォーマンスの高い方法でストリーミングデータとバッチデータをシームレスに取り込み、消費できるコア機能だけでなく、Delta Lakeの最も重要な機能の1つはDelta Sharingで、異なる企業がデータセットを安全な方法で共有できるようにするものです。Delta Lakeにはスタンドアロンリーダー/ライターも付属しており、Python、Ruby、またはRustクライアントが、Apache Spark™などのビッグデータエンジンを必要とせずに、Delta Lakeに直接データを書き込むことが可能です。Delta Lakeは、時間をかけて最適化され、他のLakehouseフォーマットを大幅に凌駕しています。Delta Lakeには、Apache Flink、Presto、Trinoなどのオープンソースコネクタの豊富なセットが付属しています。今日、私たちは、これまでDatabricksでしか利用できなかった機能を含むDelta Lakeのすべてをオープンソース化することで、Delta Lakeのオープンソース化に取り組むことを発表できることを嬉しく思っています。これにより、データレイクハウスの利用や導入が民主化されることを期待しています。しかし、それをカバーする前に、Deltaの歴史についてお伝えしたいと思います。

Delta Lakeの創世記

このプロジェクトの発端は、Spark Summit 2018で、Appleの著名なエンジニアであるDominique Brezinskiと、私たちのMichael Armbrust(もともとDelta Lake、Spark SQL、Structured Streamingを作った人)との何気ない会話から始まりました。侵入監視と脅威対応に関する取り組みを率いるドミニクは、同時進行する大量のバッチおよびストリーミングワークロード(1日あたりペタバイトのログおよびテレメトリデータ)によって生じる処理要求にどう対処するかについて、マイケルの頭をひねっていました。その理由は、(1)膨大なイベントデータに対してデータウェアハウスはコストがかかりすぎる(2)侵入検知に不可欠なリアルタイムストリーミングをサポートしていない(3)ゼロデイ攻撃やその他の疑わしいパターンの検知に必要な高度機械学習をサポートしていない、というものでした。そのため、当時はデータレイク上に構築することが唯一実現可能な選択肢でしたが、大量のストリーミングやバッチジョブの同時実行によりパイプラインが破綻し、すべてのデータについてトランザクションの一貫性とデータのアクセス性を確保できていないことに悩んでいたのだそうです。

そこで2人は、データウェアハウスとAIの統合の必要性を議論するために集まり、現在のDelta Lakeへと開花する種を蒔いたのです。マイケルと彼のチームは、その後数ヶ月間、ドミニクのチームと密接に協力して、この大規模なデータの問題を解決するために設計されたこの取り込みアーキテクチャを構築しました。彼らのチームは、低レイテンシーのストリーム処理とインタラクティブクエリを、ジョブ障害や基盤となるクラウドオブジェクトストレージシステムとの信頼性問題なしに簡単かつ確実に処理できる一方で、Appleのデータ科学者が大量のデータを処理して異常なパターンを検出できるようにすることが可能になりました。私たちはすぐに、この問題はアップル社に限ったことではない、多くのお客様が同じ問題を経験していることに気づきました。そして、Databricksのお客様がDelta Lakeを使って信頼性の高いデータレイクを簡単に大規模に構築しているのを目にするようになったのです。データウェアハウスの信頼性とパフォーマンス、そして巨大なデータレイクのオープン性、データサイエンス、リアルタイム性を兼ね備えていることから、私たちはこの信頼できるデータレイクを構築するアプローチをデータレイクハウスパターンと呼ぶようになりました。

Delta LakeがLinux Foundationプロジェクトに

Delta Lakeでレイクハウスを構築する組織が増えるにつれ、データレイク上のデータのフォーマットをオープンソースにすることで、ベンダロックインを完全に回避したいという声が聞かれるようになりました。その結果、Spark+AI Summit 2019において、Linux Foundationとともに、Delta Lakeフォーマットのオープンソースを発表し、より多くのデータ実務家のコミュニティが、データ品質を犠牲にすることなく、既存のデータレイクをより有効に活用できるようにしました。Delta Lakeのオープンソース化(Apache Sparkに使用したのと同じ寛容なApacheライセンスv2を使用)以来、Delta Lake開発者コミュニティの大規模な採用と成長、実務家や企業が機械学習やAIユースケースでデータを統一するために経験するデータジャーニーのパラダイムシフトを目の当たりにしてきました。それが、私たちがこれほどまでに多大な導入と成功を収めている理由です。

Delta Lakeコミュニティの成長

今日、Delta Lakeプロジェクトは、70以上の組織にまたがる190人以上のコントリビューターによって繁栄しています。その3分の2近くは、Apple、IBM、Microsoft、Disney、Amazon、eBayといった大手企業のDatabricksコントリビューターではない、外部組織に属しています。実際、過去3年間でコントリビューターの力(Linux Foundationによる定義)は633%も向上しています。このレベルのサポートが、このオープンソース プロジェクトの中心であり、強みなのです。

プロジェクトの貢献者数が一貫して増加している

出典は Linux Foundation Contributor Strength。過去 3 年間に分析されたユニークな貢献者の集計数の伸びを示します。コントリビューターとは、何らかのコード活動(コミット/PR/チェンジセット)、またはバグの発見と解決に協力することによってプロジェクトに関連するすべての人のことです。

Delta Lake:最も高速で先進的なマルチエンジンストレージフォーマット

Delta Lakeは、ある技術企業の特別なユースケースではなく、金融、医療、製造、オペレーション、公共部門など、我々の顧客とコミュニティの幅を代表する多種多様なユースケースのために構築されています。Delta Lakeは、エクサバイト級の大きなテーブルから何万台ものデプロイメントを行い、実戦テストを重ねてきました。その結果、Delta Lakeは、実際の顧客テストやサードパーティーのベンチマークにおいて、パフォーマンスと使いやすさの面で他のフォーマット(*1)よりはるかに優れていることが何度も証明されています。

Delta Sharingを使えば、誰でも簡単にデータを共有でき、他のDeltaテーブルから共有されたデータを読み込むことも可能です。私たちは2021年にDelta Sharingをリリースし、データコミュニティにベンダーロックインから解放される選択肢を提供しました。データ共有が普及するにつれ、ほとんどの方が、独自のデータ形式とそれを読み取るために必要な独自の計算により、さらに多くのデータサイロ(今では組織の外部にまで)が発生することに不満を表明されました。Delta Sharingは、大規模なデータセットを安全にリアルタイムで交換するためのオープンプロトコルを導入し、製品間で安全なデータ共有を初めて可能にしました。データユーザーは、Databricksを含む独自のシステムを使用することなく、Pandas、Tableau、Presto、Trino、またはオープンプロトコルを実装した数十の他のシステムを通じて、共有データに直接接続できるようになりました。

Delta Lakeは、FlinkPrestoTrinoなどのダイレクトコネクタの最も豊かなエコシステムを誇り、Apache Sparkを使わずに最も人気のあるエンジンから直接Delta Lakeに読み書きができる能力を提供します。ScribdBack MarketのDelta Lakeコントリビューターのおかげで、Python、Rust、Rubyの開発者がビッグデータフレームワークなしでDeltaを読み書きできるRustの基礎Delta Lakeライブラリ、Delta Rustも使用することが可能です。現在、Delta Lakeは世界で最も広く使われているストレージレイヤーで、月間ダウンロード数は700万を超え、わずか1年で月間ダウンロード数は10倍に成長しました。

過去1年間の月間ダウンロード数の膨大な伸びを示す

デルタ2.0を発表。すべてをオープンソースに

Delta Lakeの最新リリースであるDelta Lake 2.0では、Delta LakeのすべてのAPIがオープンソース化され、我々の巨大なコミュニティがDelta Lakeのすべてのイノベーションの恩恵を受けられるようになります。特に、パフォーマンスの最適化、ZOrderデータフィード変更動的パーティション上書き、Dropped ColumnsといったDelta Engineによってもたらされた機能などが挙げられます。これらの新機能の結果、Delta Lakeは、ストリーミングからバッチ処理まで、すべてのレイクハウスワークロードに対して、他のストレージレイヤーと比較して最大4.3倍の高速化を実現し、他の追随を許さないコストパフォーマンスを提供し続けています。過去6ヶ月間、私たちはこれらの性能強化をすべて取り込み、Delta Lakeに貢献するために多大な労力を費やしました。そのため、私たちはDelta Lakeのすべてをオープンソース化し、今後Delta Lakeのすべての機能がオープンソース化されることを確約しています。

Delta 2.0のオープンソース化された機能

私たちは、Delta Lakeがますます強力になることに興奮しています。私たちは、今後何年にもわたってDelta Lakeの革新と採用の急速なペースを継続するために、皆さんとパートナーシップを組むことを楽しみにしています。

オープンソースのDelta Lakeコミュニティへの参加にご興味がありますか?

Delta Lakeの詳細をご覧ください。SlackGoogle GroupからDelta Lakeコミュニティに参加することができます。

(*1) IcebergフォーマットとDeltaフォーマットのパフォーマンスの違いはこちらから。日本語訳はこちらを参考に。
https://databeans-blogs.medium.com/delta-vs-iceberg-performance-as-a-decisive-criteria-add7bcdde03d


この記事が気に入ったらサポートをしてみませんか?