1.Data Cloud Summit 2024 にて Iceberg Table が GA された
結構大々的にData Cloud Summit2024にてGAの発表がありました。
私自身、Icebergを使ったことがないので、なんのこっちゃと思っていたので
実際に調べてみました。
Icebergを理解するためにはまず、データレイクハウスと言うものを理解しておく必要があります。
前段で先にまとめておくと
Icebergはデータレイクハウスを利用するために用いるもの。
データレイクハウスを使用するには、csvなどのファイルフォーマットだけでは使用できない。(スキーマ情報などが不足)
そこで、Icebergテーブルを用いて
データのスキーマ情報やパーティショニング情報を格納するもの。
そのデータレイクハウスの分析エンジンとして、
snowflakeと言うものがあります。
簡単に、説明しましたがここから細かく探っていきたいと思います。
2.データレイクハウスとは
これは聞いたことがある人いるかもしれません。
S3などに格納されている実物のデータをそのまま分析したい時に
使用します。
その際に、テーブルフォーマットを扱うことで、データ型だったり、パーティショニングを解析してくれます。
3.テーブルフォーマットとは
テーブルフォーマットというのは、あるデータセットが1つのテーブルとして表現できるように、ファイルの管理方式を定めます。
テーブルフォーマットはクエリ実行において、主に2つの大きな役割を果たしています。
1つ目は、どのファイルがテーブルのデータを構成しているかに答えることです。2つ目は、そのファイルがどのように読み書きできるかに答えることです。そのためには、パーティショニングやスキーマ定義など、メタデータの管理も必要になります。
データ自体はAvroやParquetなどの列思考データフォーマットで格納します。
IceBergが登場する前は
Delta Table / Hive format などが存在していました。
IceBurgは、テーブルフォーマットに仲間入りしたと言うことです。
3.1 なぜIcebergが優れているのか?
今前までデファクトスタンダードとなっていた
Hive Formatを例にしてみると、
テーブルの管理に使われるパーティションやスキーマなどのメタデータの変更、照会はHive Metastoreというサーバーを介して行われます。
Hive Metastoreのバックエンドでは、メタデータがRDBMS(Relational DataBase Management System)に保存されます。
そのため、クエリなどが多い場合
そのRDBMSにアクセスが集中してしまい、結果としてボトルネックになるという問題点がありました。
IceBergでは、テーブル情報がファイルによって管理されているため、Hive Metastoreと違いRDBMSがなく
個々別々のファイルで管理されているので、そのような問題が解消されたと言う例がありました。
4.IceaBergのアーキテクチャ
詳しく書くよりもこちらを参考にするとよさそうです。笑
自分もまだ全て見切れていないので、個人的に解釈完了したらまた記事にしたいと思います。