本記事はこちらのブログを参考にしています。
翻訳にはアリババクラウドのModelStudio(Qwen)を使用しております。
Apache Paimon: 統合データレイクストレージソリューションの洞察
この記事では、Apache Paimonという統合データレイクストレージソリューションについて紹介します。特に、ビッグデータシステムにおける主要な課題への対応、なぜApache Paimonがこれらの問題の解決策になるのか、中国での採用状況、そしてさまざまなデータ処理とAI技術との統合について焦点を当てます。
ビッグデータの実践者たちはしばしばいくつかの重要な課題に直面しています。多くの企業やその従業員とのやり取りを通じて、以下の3つの課題が特に注目されることが分かりました:
- 低遅延とコストのバランス:Flink、Kafka、キーバリュー・システム、OLAPシステムなどのテクノロジーを使用して多くのリアルタイムアプリケーションが展開されています。しかし、これらのシステムのコストがますます重要になっています。低遅延と低コストの両方を達成することは大きな関心事です。
- 複雑なデータアーキテクチャ:ビッグデータシステムには、計算とストレージのための複数のソリューションがあり、それぞれ異なる側面を目標としています。このビッグデータフレームワークの増加により、データはしばしば異なるシステム間で移動する必要があります。例えば、バッチシステムからFlinkやKafkaへストリーミング処理が必要な場合などです。この頻繁なデータ移動は複雑で管理が難しく、煩雑なアーキテクチャを引き起こします。
- AIとの統合:AIはホットトピックであり、ビッグデータシステムとの統合は重要です。ビッグデータとAIの両方をサポートできる汎用的な構造が必要です。これら2つの領域の効果的な組み合わせは不可欠です。
データレイクの概念は世界的に普及しており、ここではPaimonというレイクフォーマットを紹介します。これはFlinkとSparkを使用して、ストリーミングとバッチ操作の両方でリアルタイムレイクハウスアーキテクチャを構築するのに適しています。Paimonがどのように上記の課題に対処するかを見てみましょう。
1. 低遅延とコストの達成
低遅延とコストの両方を達成するには、FlinkとPaimonを使用してストリーミングハウスを構築できます。一方、SSDストレージを持つKafkaや他の高速KVシステムは低遅延を提供しますが、多くのビジネスケースでは分単位の遅延で十分です。他方、Paimonはレイクフォーマットであり、HDFS、OSS、またはS3と組み合わせて使用できるため、コスト効率の高いソリューションです。FlinkとPaimonを組み合わせることで、低コストのオフラインバッチデータ処理を維持しながら低遅延を達成することが可能です。
2. 統一されたストレージと処理
Paimonはバッチ処理、ストリーミング、およびOLAPをサポートしています。多くの企業では、Paimonを使用して統一されたストレージシステムを構築しています。ストリーミングにはFlinkを使用してPaimonから読み書きし、バッチ処理にはSpark、OLAPにはStarRocksを使用します。Paimonは統一されたストレージとして、システムを簡素化し、複数のストレージソリューションの必要性を減らします。
3. AIとの統合
PaimonはPython APIを提供しており、これはAI開発にとって不可欠です。Pythonを使用してPaimonからデータを読み書きでき、Paimonはまた、非構造化データ(例:画像、ビデオ)を構造化テーブルにマッピングするObject Table機能を導入しています。これにより、PySparkやFlink SQLなどのツールを使用した分析が可能になります。
Paimonの一意の利点とユースケースをよりよく理解するためには、他の人気のあるデータストレージソリューション、例えば古典的なApache HiveやレイクフォーマットのApache Icebergと比較することが重要です。
Apache Hiveは、Hadoop用の最も初期かつ広く使用されているデータウェアハウジングソリューションの一つです。分散ストレージシステム(HDFSなど)に保存された大規模なデータセットに対してSQLのようなインターフェースを提供します。ただし、Hiveではレコードの更新が高コストであり、ユーザーは古いパーティション内のすべてのレコードを新しいデータとマージし、マージ結果でパーティション全体を再書き込みする必要があります。
Apache Icebergは主にバッチ処理向けの共有レイクフォーマットであり、ACIDトランザクションやレコードの削除と更新、データスキッピング能力、タイムトラベル能力などの機能を提供します。ただし、ストリーミング処理には最適化されていません。
Apache Paimonはバッチ処理とストリーミング処理の両方を設計されています。LSM(Log-Structured Merge)と組み合わせたレイクフォーマットであり、自動コンパクションと高速な更新を可能にします。PaimonはFlinkとの統合が良好であり、効率的なストリーミングの読み書き能力を解き放ちます。また、z-order、削除ベクトル、インデックスなどのクエリ最適化をサポートし、高速なOLAPスタイルの分析を可能にします。
これらの利点により、Paimonは中国のコミュニティで大きな支持を得ており、ある企業では1万以上のFlinkストリーミングジョブが存在し、多くの企業が採用しています。例えば、アリババではページビューと注文などの大規模なテーブルがPaimonに移行されました。現在、ストレージクラスターには100PB以上のPaimonデータファイルが存在し、その中で最大のPaimonテーブルは秒間に4000万行以上の処理レートをサポートしています。
アリババでは、Flink + メッセージキューのアーキテクチャがFlink + Paimonのアーキテクチャに置き換えられ、ステートフルストリーミングパイプラインがストリーミングレイクハウスにアップグレードされています。以前のFlink + メッセージキュー時代には、メッセージキュー内のレコードを効率的にクエリできないため、エンジニアはバッチとストリーミング処理のために別々のパイプラインを構築する必要がありました。また、メッセージキューは高速なローカルディスクを必要とするため、コストも増加しました。Flink + Paimonを導入することで、バッチパイプラインの遅延が数分に短縮され、処理時間全体が1時間未満になり、バッチとストリーミングのストレージが統一されることで開発と運用の効率が50%以上向上し、ビジネスインテリジェンスのためのリアルタイムOLAP