Główne pojęcia
Sparkのような従来のデータ処理基盤と比較して、DuckDB、Polars、Delta-rsを用いたサーバーレスレイクハウスは、小規模・中規模データ(最大10GB)の処理において、費用対効果、速度、管理の容易さの面で優れた代替手段となる。
Streszczenie
サーバーレスレイクハウス:Sparkに代わる費用対効果の高い高速なデータ処理基盤
本稿では、従来のSparkベースのデータ処理基盤に代わる、DuckDB、Polars、Delta-rsを活用したサーバーレスレイクハウスアーキテクチャを紹介する。著者は、従来型のデータプロジェクトにおいて、Sparkのようなツールが複雑でコストがかかり、運用が大変な場合が多いことを指摘している。特に、小規模から中規模のデータ(最大10GB)を扱う場合、Sparkの複雑なインフラストラクチャや運用コストは過剰であることが多い。
効率的なアプローチ:費用対効果が高く、高速で、管理の容易なレイクハウスの実装
著者は、俊敏性、運用負荷の軽減、データの制御性の向上を求めるユーザー向けに、DuckDB、Polars、Delta-rsを用いたサーバーレスレイクハウスアーキテクチャを提案している。このアーキテクチャは、以下の利点を提供する。
- インフラストラクチャではなくデータに集中: クラスターを管理する必要がないため、データから価値を生み出すことに集中できる。
- 迅速な結果へのアクセス: DuckDBやPolarsなどの最新技術を活用することで、Sparkと同等の効率性と速度を実現し、複雑な分析をより良い費用対効果で実施できる。
- コスト削減とスケーラビリティの向上: Sparkクラスターのウォームアップが不要なため、使用した分だけのコストで済む。
アーキテクチャと実装
このアーキテクチャでは、確立されたメダリオンアーキテクチャを採用し、レイヤーをブロンズ、シルバー、ゴールドに分離している。実装は容易で、まず、artifacts/tables.yaml
ファイルにテーブルとそのプライマリキーを定義する。プライマリキーが指定されていない場合は、変換ステップは追加専用モードで行われる。
この構成が設定されると、アーキテクチャをクラウドにデプロイする準備が整う。インフラストラクチャのコードライブラリとしてCDKを使用する。CDKのインストール、構成、デプロイの手順については、プロジェクトのREADMEを参照。
これらのアーティファクトをすべてクラウドにデプロイすると、データ投入用とクエリ用の2つのエンドポイントが生成される。
- データ投入: エンドポイントはIAMで保護されており、YAMLに定義されたテーブルにデータを挿入できる。最初に、テーブルがYAMLで定義されているかどうか、宣言されたプライマリキーが本文に存在するかどうかを確認する。すべて問題なければ、データが送信され、テーブルごとにFirehoseが作成され、複数のレコードを一度に処理するためのバッファとして機能する。128MBまたは15分が経過すると、データはレイクハウスのブロンズレイヤーに送信される。
- データ変換: オブジェクトがレイクハウスに到着すると、Deltaテーブルの作成、スキーマ進化、PolarsとDelta-rsを使用したデータの追加/更新を担当するLambdaのイベントがトリガーされる。
- ゴールドレイヤー: ゴールドレイヤーでは、サーバーを管理する必要がないため、中小企業でも導入しやすい。Airflowなどのオーケストレーターは使用せず、AWS EventBridgeを使用する。ただし、必要であれば、オーケストレーターを使用してアーキテクチャを適応させることもできる。
- データの消費: 生成されたもう一方のエンドポイントを使用して、DuckDBを使用してすべてのレイヤーのデータをクエリできる。
- 可視化: 可視化には、DuckDBとの統合がすでに可能なBrieferを使用する。
次のステップと欠点
今後の改善点として、著者は以下の点を挙げている。
- ゴールドレイヤーでdbt-duckdbを使用する。
- 本番環境向けにECSにBrieferをデプロイする。
- 作成されたエンドポイントはパブリックでランダムであり、IAMロールによって保護されている。将来的には、API GatewayまたはCloudFrontとRoute 53を使用して、カスタムのプライベートエンドポイントを作成する。
- 近年のAIの重要性を踏まえ、AIレイヤーを統合する。
このプロジェクトの欠点と課題として、DeltaをAthenaおよびGlue Catalogと統合できなかったことが挙げられる。Glueでは、一般的なエラーが発生し、処理を進めることができなかった。Athenaでは、メタデータに記述されているバージョンがドキュメントによるとAthenaと互換性があるにもかかわらず、Deltaバージョンに互換性がないというエラーが発生した。
結論:アーキテクチャの変革
このサーバーレスレイクハウスアーキテクチャには、効率性、高速性、費用対効果の高さなど、多くの利点がある。開発中、著者はFree Tierの制限に達することさえできなかった(開発コストの合計は0.23ドル)。
このアーキテクチャは、単なる最新のソリューションではなく、時間、予算、あるいは健全性を損なうことなく、結果を達成できるようにする、考え方を変えるものである。
Statystyki
処理対象のデータ量は最大10GB。
データ投入後、128MBまたは15分が経過すると、データはレイクハウスのブロンズレイヤーに送信される。
1.5GBのニューヨーク市のタクシーのJSON形式のデータセットを処理するのにかかった平均時間は18〜21秒。
開発コストの合計は0.23ドル。
Cytaty
「私は、高速で詳細なインサイトを提供することを約束して開始されたものの、最終的には重く、コストがかかり、複雑になってしまうデータプロジェクトを数多く見てきました。」
「もはや、木の実を割るためにスレッジハンマーを使う必要はありません。」
「このアーキテクチャは、単なる最新のソリューションではなく、考え方を変えるものであり、時間、予算、あるいは健全性を損なうことなく、結果を達成できるようにするものです。」