Parquet、Iceberg、そしてデータレイクハウスを理解する
(davidgomes.com)理解する: Parquet、Iceberg、そしてBroadInのデータレイクハウス
-
データの保存方式(ファイルおよびメモリ内)
- データのアクセスと保存のために、さまざまなファイル形式が存在する
- 一部のシステムはクローズドなデータ形式を主に使用するが、ほとんどのシステムはオープンなデータ形式をサポートしている
- 主なオープンソースのファイル形式には、Apache Avro、Parquet、ORC、Arrow、Feather、Protobuf などがある
- これらの形式は、データを実際のバイナリレイアウト上でどのように配置するかについての仕様を提供する
- Parquet は圧縮のサポートに優れ、Avro は特定の行ブロックを読み取るのに適している
- スキーマ進化とファイル分割をサポートし、並列処理に不可欠である
- さまざまなプログラミング言語やツールから、これらの形式を扱うことができる
-
大規模データ管理 - Iceberg と Delta Lake
- さまざまなテーブルを保存し、個別のスキーマを進化させ、効率的にデータをパーティショニングし、外部ツールがスキーマを簡単に読み取れるようにする方法が必要
- Hive、Iceberg、Delta Lake はいずれもスキーマレジストリまたはメタストアをサポートしている
- Iceberg と Delta Lake は、個別ファイル形式として Parquet を使用する
- Iceberg と Delta Lake はクエリエンジンやストレージエンジンではなく、クエリエンジンが処理を実行できるようにするためのオープン仕様である
- パーティショニング進化、スキーマ進化、データ圧縮、ACID トランザクション、効率的なクエリ最適化、タイムトラベルなどの機能を可能にする
-
データレイクとデータレイクハウスとは何か?
- データレイクは、企業が OCR、Parquet、CSV ファイルのような生の形式で大量のデータを保存する場所
- データレイクハウスは、データレイクの上に SQL クエリの実行、バッチジョブの設定、データガバナンスの構成などを可能にする機能を組み合わせたもの
- データレイクハウスは、オープンなデータウェアハウスの一種と見ることができる
- Snowflake や BigQuery のようなデータウェアハウスが Iceberg のようなオープンデータ形式をサポートするようになり、データウェアハウスとデータレイクハウスの境界は曖昧になりつつある
GN⁺の意見
- Iceberg と Delta Lake は、大規模データセットを管理するためのメタデータレイヤーとして重要な役割を果たす。これにより、データの効率的な管理とクエリ最適化が可能になり、データサイエンティストやエンジニアにとって有用である。
- データレイクハウスは、データレイクとデータウェアハウスの利点を組み合わせ、データ管理と分析のための新しいパラダイムを提示する。これは、データにもとづく意思決定をさらに強化できる機会を提供する。
- Iceberg のサポートが増えるにつれ、データ管理および分析システムは徐々に標準化され、相互運用可能になっていくと見込まれる。これにより、データプラットフォームの選択と活用において、より大きな柔軟性と効率性がもたらされる。
2件のコメント
IcebergとDelta Lakeを比較していたのですが、こうしてきれいに整理されているのですね。
私が見ていた見解や意見とほぼ同じです。
オンラインで実行されたベンチマークはSparkを使ったもので、ベンチマークは参考にはなるものの大きな意味はないと、TabularのHead of DevRelが書いていました。
オープンソースとして選ぶなら、Icebergが唯一の選択肢に見えます。
要約は良いですが、参考にしたリンクもあるとよいと思います。
Hacker Newsのコメント
Apache Iceberg と Delta Lake はしばしばオープンテーブルフォーマットとして言及されるが、実際には違いがある。
データベースの世界では、Delta、Iceberg、Hudi が S3 のようなストレージにオープンソースのフォーマットでデータを保存することは大きな変化を意味する。
Parquet ファイルを S3 上で何年も扱ってきたが、Iceberg が何なのか正確には理解していなかった。しかし、その記事は Iceberg をうまく説明している。
Apache Arrow データフレームをディスク上のファイルとして保存する最善の方法は Feather を使うことだが、Apache Parquet フォーマットに変換することも可能である。
データレイクについては聞いたことがあるが、「データレイクハウス」は上流階級のデータが夏にデータボートでデータ釣りに行く場所のように聞こえる。
GCP で約 100TB のデータを扱っており、BigQuery をクエリエンジンとして使い、単純な Hive パーティショニングを利用している。すべてのクエリを実行でき、コストも非常に安いことには満足しているが、レイテンシはかなり高い(会社にとって大きな問題ではない)。
Iceberg にはとても興奮しているが、最後に調べたときは Spark ライブラリしか実装がなく、Trino の Iceberg コネクタは Hive に強く依存していた。
なぜこれらすべてをもっと具体的なアイデアとして説明できる人がいないのか疑問に思う。データの保存方法、接続方法とクエリ方法、そしてクエリ速度(トランザクション速度に対する「分析」速度)を説明すべきである。
オンラインで見たすべてのベンチマークでは、Delta Lake フォーマットが Iceberg よりはるかに優れた性能を示している。
このブログ記事が 100% 包括的でもなく、大半の人にとって最良の出発点でもないだろうという点は認めている。