Data for Breakfast Tokyo | 3月17日(火)開催

データとエージェント型 AI を活用してビジネスインパクトを創出するには?

Apache Icebergテーブルとは

ACIDトランザクションをサポートするApache Icebergなどのテーブルフォーマットは、大規模なデータクエリの迅速かつ効果的なソリューションとしてデータレイクやデータメッシュの戦略を選択した場合に、その一部として採用されています。

  • 概要
  • テーブルフォーマットによるデータレイクの合理化のメカニズム
  • Apache Icebergとは
  • Apache Icebergのメリット
  • 関連リソース

概要

ACIDトランザクションをサポートするApache Icebergなどのテーブルフォーマットは、大規模なデータクエリの迅速かつ効果的なソリューションとしてデータレイクやデータメッシュの戦略を選択した場合に、その一部として採用されています。適切なテーブルフォーマットを選択することで、データのパフォーマンス、相互運用性、使いやすさが向上し、組織はデータの可能性を最大限に引き出せるようになります。Icebergのテーブルフォーマットは他のオープンソースのテーブルフォーマットとは異なる独自の性質があり、エンジンやファイル形式に依存しない、非常にコラボレーティブで透明性の高いオープンソースのプロジェクトを実現します。ここでは、大規模データセットの分析にオープンなテーブルフォーマットを使用するメリットと、オープンソースのテーブルフォーマットのなかで特にIcebergの人気が急速に高まっている理由について解説します。

テーブルフォーマットによるデータレイクの合理化のメカニズム

データレイクは、大量の半構造化データと非構造化データをネイティブファイル形式で保存する場合に最適です。組織はデータレイクを使用して、複数のデータソースから絶え間なく入ってくるペタバイト単位の情報を包括的に探索、洗練、分析できます。 

ただし、データレイク内の個々のファイルに含まれている情報は、クエリエンジンやその他のアプリケーションが効果的にプルーニング、タイムトラベル、スキーマ進化などを行うには不充分です。結果的に、こうした管理タスクの実行は困難で時間がかかります。テーブルフォーマットは、従来のリレーショナルデータベースでSQLテーブルと同様の能力や機能を有効にするメタデータを使用して実現することで、この問題を解決します。テーブルフォーマットでは、テーブル、テーブルのスキーマと履歴、テーブルを構成する各ファイルが明示的に定義されます。さらに、IcebergなどのテーブルフォーマットはACIDコンプライアンスに準拠しているため、複数のアプリケーションで同時に同一データを安全に扱えます。

Apache Icebergとは

Icebergはもともと、ApacheのHive Hadoopプロジェクトで直面したさまざまな課題に対処するためにNetflixが開発したオープンソースのテーブルフォーマットです。そして2018年に行われた最初の開発の後に、完全にオープンソース化されたオープンなマネージドプロジェクトとしてNetflixからApacheソフトウェア財団に寄贈されました。その後、初期バージョンの多くの欠点が改善され、すぐに非常に人気の高いオープンソースのテーブルフォーマットとなりました。

Apache Icebergのメリット

Icebergテーブルフォーマットは、データレイクアーキテクチャの強化に役立つさまざまな機能を備えています。 

  • 表現力の高いSQL:Icebergは、柔軟なSQLコマンドを高度なレベルでサポートしています。そのため、既存の行の更新、新しいデータの結合、ターゲットを絞った削除などのタスクを実施できます。また、Icebergを使用してデータファイルを書き換えることで、読み取りパフォーマンスを改善できます。delete deltaによって更新頻度を高めることも可能です。
  • スキーマ進化:Icebergは、スキーマ進化を高度にサポートしています。Icebergテーブルのスキーマ更新では、メタデータのみが変更されます。データファイル自体は影響を受けません。スキーマ進化の変更には、追加、ドロップ、名前変更、並べ替え、型の昇格が含まれます。
  • パーティション進化:パーティショニングは、大規模なテーブル内の類似した行をグループ化して複数の小さなテーブルに分割することにより、データの一部のみにアクセスする必要があるクエリの参照と、取り込みにかかる時間を短縮します。パーティションの仕様は、古い仕様に記述されている古いデータを変更しなくても進化します。パーティションの各バージョンに関連付けられたメタデータは、個別に格納されています。
  • タイムトラベルとロールバック:IcebergのTime Travel機能は、同じテーブルスナップショットの再現性のあるクエリの実行を可能にして、ユーザーが以前の変更を検証できるようにします。ユーザーがこのロールバック機能を使用してテーブルを前の状態にリセットすると、簡単にエラーのない状態に戻せます。 
  • トランザクションの一貫性:データレイクやデータメッシュのアーキテクチャに保存されているデータは、組織内の複数の独立したアプリケーションで同時に利用できます。これは大きなメリットですが、特に複数のユーザーが同一データに対して同時に書き込みを行う場合などには、甚大なリスクが生じる可能性があります。しかし、IcebergではACIDトランザクションを大規模に実現できるため、ライターによる同時実行が可能です。ACIDの特性を満たしているため、リーダーはライターからの部分的な変更やコミットされていない変更の影響を受けません。ライターが変更をコミットすると、Icebergはテーブルのデータファイルとメタデータの変更不可能なバージョンを新たに作成します。
  • クエリの高速化:Icebergは巨大な分析データセットでの使用を目的として設計されており、高速スキャンプランニング、不要なメタデータファイルのプルーニング、マッチデータを含んでいないデータファイルのフィルタリングなど、クエリの高速化と効率化のためのさまざまな機能を備えています。
  • 活発なApache ORCユーザーと貢献者のコミュニティ:Icebergは、Apacheソフトウェア財団の主力プロジェクトの一つです。Apache Parquet、Apache Avro、Apache ORCなどのさまざまな処理エンジンやファイル形式に対応していることから、優れた商用ユーザーを幅広く引きつけており、継続的な成功のための積極的な貢献が行われています。