How Delivery Hero rebuilt real-time ad measurement with Apache Flink
Delivery Heroは、広告計測基盤を毎時バッチ中心の構成から、Amazon Managed Service for Apache Flinkによるストリーミング処理へ移行した。同社の事例では、イベント発行から記録までの平均時間が61分から1.2秒に短縮され、月間運用コストが約57%削減された。重複排除、非同期のデータ補完、複数日にわたる広告接触と注文の紐付けを行い、セッションIDなどの欠損も改善した。集計結果は5分ごとにレポート用データベースへ書き込む。
詳しく読む
何が変わったか
同期API呼び出しによるデータ補完と毎時バッチ集計を行う旧構成から、Flink上で展開・復号、重複排除、非同期のデータ補完、アトリビューション、集計を行う構成へ移行した。Kinesis Data Streamsでイベントを取り込み、DynamoDBから参照データを取得し、S3にイベントとチェックポイントを保存する。SQSからKinesisへの転送にはMVPでEventBridge Pipes、本番でFargateを使用した。
なぜ重要か
旧構成では、処理時刻に基づく集計によって遅延到着や順序逆転時に指標のずれが生じ、毎時バッチによって結果の反映も遅れていた。さらに、同期API呼び出しによる拡張性の限界、状態管理に使うデータベースの読み書き負荷、複雑な再処理、イベント情報の欠損が課題だった。正確な広告課金と迅速な広告配信判断を支えるため、これらを改善する必要があった。
実務への影響
秒単位でのリアルタイムな予算ペーシングや広告測定を必要とするアドテクプラットフォームや、大規模なストリーミングデータでステート管理や重複排除、アトリビューション(成果の帰属)処理に課題を持つデータエンジニアやアーキテクトにとって参考になる。