事例
Ricardo

「Beamと、この全てのデータとリアルタイム情報がなければ、我々が提供しているサービスを提供したり、処理しているデータ量を処理することはできませんでした。」

Tobias Kaymak
Ricardo シニアデータエンジニア

Apache Beam が Ricardo のeコマースプラットフォームにおけるリアルタイムおよびMLデータ処理を強化。

背景

Ricardo はスイスを代表する中古品マーケットプレイスです。このサイトは400万人以上の登録バイヤーとセラーをサポートし、年間650万件以上の商品の取引をプラットフォームを通じて処理しています。Ricardo は、大量のストリーミングイベントを処理し、5TB以上の記事、アセット、および分析データを管理する必要があります。

市場で20年間の実績がある規模で、Ricardoはオンプレミスのデータセンターからクラウドに移行し、管理されたクラウドサービスを通じて容易に成長と進化を進め、運用コストを削減することを決定しました。データインテリジェンスチームとエンジニアリングチームは、この変革と新しいAI/ML対応の顧客体験の開発を主導しました。Apache Beamは、Ricardoの変革を加速させるテクノロジーアンプとなりました。

課題

オンプレミスのデータセンターからクラウドへの移行は、Ricardoに、トランザクションSQLへの重いレガシー依存からマーケットプレイスを近代化し、分析にBigQueryに切り替え、イベントベースのストリーミングアーキテクチャを利用する機会をもたらしました。

Ricardoのデータインテリジェンスチームは、2つの重要な成功要因を特定しました。慎重に設計されたデータモデルと、オンプレミスとクラウドの両方で統一されたストリームおよびバッチデータパイプラインの実行を提供するフレームワークです。

Ricardoは、容易に拡張でき、複数のソースからの履歴データでイベントストリームをリッチ化し、データの鮮度をきめ細かく制御し、抽象的なパイプライン運用インフラストラクチャを提供できるデータ処理フレームワークを必要としていました。これにより、チームは顧客とビジネスに新しい価値を生み出すことに集中できます。

Beamへの道のり

Ricardoのデータインテリジェンスチームは、2018年にスタックの近代化を開始しました。彼らはオンプレミスとクラウドの両方で信頼性が高くスケーラブルなデータ処理を提供するフレームワークを選択しました。Apache Beamを使用すると、ユーザーはJava、Python、Go、SQL、Scala(SCIO)のSDKを提供するお気に入りのプログラミング言語でパイプラインを作成できます。Beam Runner は、特定の(多くの場合分散された)データ処理システムでBeamパイプラインを実行します。Ricardoは、オンプレミスでパイプラインを実行するためにApache Beam Flinkランナーを選択し、Apache Beam Java SDKを使用して開発された同じパイプラインのマネージドクラウドサービスとしてDataflowランナーを選択しました。Apache Flinkはその信頼性と費用対効果でよく知られており、初期環境としてRicardoのデータセンターにオンプレミス・クラスターが立ち上げられました。

我々は可能性を倍増させるソリューションを実装したいと考えており、それがまさにBeamが活躍するところです。この決定の主な要因の1つは、運用負荷をあまり増やさずに進化できることでした。

Tobias Kaymak
Ricardo シニアデータエンジニア

Apache KafkaからBigQueryにイベントデータを取り込むためのコアビジネスワークロード向けのBeamパイプラインは、わずか1か月で安定して稼働しました。Ricardoのクラウド移行が進むにつれて、データインテリジェンスチームはオンプレミスのデータセンターのKubernetesからGKEにFlinkクラスターを移行しました。

私はBeamを知っていました。それがうまくいくことを知っていました。KafkaからBigQueryに移行する必要があり、Beamがまさに適切なツールであることがわかっていれば、適切な実行者を選ぶだけで済みます。

Tobias Kaymak
Ricardo シニアデータエンジニア

特定のユースケースとニーズに応じて、1時間ごと、1分ごと、またはリアルタイムでストリームデータをリフレッシュできる柔軟性により、チームはデータの鮮度を向上させることができました。これは、Ricardoのeコマースプラットフォームの分析とレポート作成にとって大きな進歩でした。

Ricardoのチームは、GKEの自己管理型Flinkクラスター上のApache Beam Flinkランナーにストリーミングパイプラインのメリットを見出しました。Flinkプロビジョニングを完全に制御することで、Flinkクラスターから外部のピアリングされたKafkaマネージドサービスへの必要な接続を設定できました。データインテリジェンスチームは、クラスターリソースの使用率を大幅に向上させることで、運用コストを最適化しました。バッチパイプラインの場合、チームはオンデマンドの自動スケーリングと、特にTB単位の履歴データでMLモデルをトレーニングするのに効率的なFlexRSなどのコスト削減機能のためにDataflowマネージドサービスを選択しました。このハイブリッドアプローチは、Ricardoのニーズに対応しており、信頼性の高い本番環境ソリューションであることが証明されています。

ユースケースの進化

動きのあるデータとしてストリームを、静的なデータとしてテーブルを考えることは、20年も前に遡るいくつかのデータモデルの決定を検討する良い機会となりました。マーケットプレイスにある記事には、それらを説明するアセットがあり、パフォーマンスとコストの最適化のために、一緒に属するデータエンティティは別々のデータベースインスタンスに分割されました。Apache Beamを使用すると、Ricardoのデータインテリジェンスチームはアセットと記事のストリームを結合し、BigQueryスキャンを最適化してコストを削減できました。パイプラインを設計する際、チームはアセットと記事のストリームを作成しました。アセットストリームがプライマリであるため、ストリームを5分前にシフトし、BigTableでそれを使用してルックアップスキーマを作成しました。このエレガントなソリューションにより、アセットストリームが常に最初に処理され、BigTableで最新のアセットを記事に照合できるようになり、Apache Beamが両方を結合します。

異なるデータストリームを結合した成功事例は、データサイエンスやMLなどの分野でのRicardoによるApache Beamのさらなる採用を促進しました。

シンプルなユースケースを配置し始めると、常にエッジケースのシナリオを理解できます。このパイプラインは1年間稼働しており、Beamは超シンプルなユースケースからクレイジーなユースケースまで、すべてを処理しています。

Tobias Kaymak
Ricardo シニアデータエンジニア

eコマース小売業者として、Ricardoは詐欺取引の規模と高度化に直面しており、詐欺検出と防止にBeamパイプラインを採用することで戦略的なアプローチを取っています。Beamパイプラインは、デバイスの特性やユーザーアクティビティなど、不正行為の兆候を特定するために外部のインテリジェントAPIで動作します。Apache Beamのステートフル処理機能により、Ricardoはデータストリームに連想演算を適用できます(たとえば、ユーザーを追放するトリガー)。したがって、Apache Beamは、Ricardoのカスタマーケアチームが重複ケースを調査する時間と労力を節約します。また、リンクされたアカウントを見つけたり、MLモデルをカプセル化して製品をカテゴリに関連付けたり、以前は不可能だった規模や精度で何かが売れる可能性を計算したりするためのバッチパイプラインも実行します。

もともとRicardoのデータインテリジェンスチームによって実装されたApache Beamは、高度なシナリオをサポートし、Kafka、BigQuery、プラットフォーム、外部API間の接着剤として機能する強力なフレームワークであることが証明されており、Ricardoの他のチームも採用するようになりました。

[Apache Beam]は非常に優れたフレームワークであるため、他のチームもアイデアを取り入れ、我々がテストした後、それを使用し始めています。

Tobias Kaymak
Ricardo シニアデータエンジニア

結果

Apache Beamは、Ricardoに、Ricardoの基本的なビジネスシナリオをサポートし、リアルタイムでイベントに対応するための新しいユースケースを可能にする、スケーラブルで信頼性の高いデータ処理フレームワークを提供しました。

Ricardoの変革全体を通して、Apache Beamは、バッチパイプラインとストリームパイプラインを実行でき、オンプレミスおよびクラウドマネージドサービスの実行、およびJavaやPythonなどのプログラミング言語オプションを提供できる統一フレームワークであり、データサイエンスおよびリサーチチームが新しいリアルタイムシナリオで顧客体験を迅速に進め、価値を創出することを可能にしました。

この最初のパイプラインの後、我々は他のユースケースに取り組んでおり、それらをBeamに移行することを計画しています。私は常に、これは信頼性の高いフレームワークであり、実際には一貫した方法で物事を成し遂げるのに役立つという考えを広めようとしていました。

Tobias Kaymak
Ricardo シニアデータエンジニア

Apache Beamは可能性を倍増させたテクノロジーであり、Ricardoが近代化とクラウドへの移行のすべての段階でテクノロジーのメリットを最大化することを可能にしました。

詳細はこちら



この情報は役に立ちましたか?