HUOXIU

リアルタイムビジネスオペレーションを加速する方法の簡単な分析

出典: Baidu Geek Talk
著者 | TWL

導入
導入
データがビジネス上の意思決定に近ければ近いほど、そのビジネス価値は高まります。これまで、リアルタイムコンピューティングの最大のボトルネックは使いやすさでした。企業は、反復的なメンテナンスの複雑さから、リアルタイムコンピューティングを放棄することが多かったのです。私たちは、商用リアルタイムシナリオにおける長年の経験に基づき、リアルタイムコンピューティングの潜在能力を最大限に引き出す、シナリオベースのエンドツーエンドのフルマネージドソリューションであるRTSを提案します。ビッグデータとリアルタイムコンピューティングにご興味のある方は、ぜひ議論や意見交換を行ってください。

全文は6,411語から成り、読むのに17分かかると推定されます。

オタクトーク

01

事業背景

インターネットの配当が枯渇したため、スリムな運営が主なテーマとなった。
周知の通り、インターネットは初期のブームが終焉を迎え、成熟期に入りました。企業はこの状況に対し、洗練された運用で対応しています。インターネット広告の文脈において、広告運用とは「適切なメッセージを伝え、適切なターゲットを見つけ、適切な価格を提示する」という抽象化が可能です。洗練された広告運用は「適切な価格を提示する」ことに重点を置き、これが最も即効性のある広告効果を生み出しています。
今日の洗練された運用の時代では、リアルタイムのパフォーマンスに対する需要が高まっています。
初期のインターネット広告では、広告主は入札方式を用いて広告表示オークションに参加していました。広告主の入札額が高ければ高いほど、広告が落札され、インターネットユーザーに見られる可能性が高まりました。広告主はクリック単価(CPC)を設定し、広告プラットフォームは入札順位に応じて広告を表示します。このクリック単価に基づく課金モデルは、クリック単価(CPC)と呼ばれます。しかし、CPC課金モデルはキーワード入札に大きく依存しています。入札額が低すぎると広告は落札されず、広告は表示されません。一方、入札額が高すぎると広告主のコストが増加し、利益が減少します。この課金モデルでは、「適正価格の支払い」は経験豊富な広告掲載専門家に委ねられています。しかし、最適な広告効果を得るために手動で頻繁に価格を調整することは事実上不可能です。こうした問題から、シンプルなCPC課金方法は徐々に影を潜め、OCPC(最適クリック単価)に取って代わられました。CPCとは異なり、OCPC課金モデルでは、広告主はクリック単価ではなくコンバージョン単価のみをコントロールします。 「適正価格を支払う」という「実行者」は、広告主からモデルへと移行します。広告プラットフォームは、様々なチャネルからコンバージョン関連データを収集し、それらを用いてコンバージョン率モデルをモデル化し、トレーニングします。これらのモデルはオンライン広告の入札価格を直接調整するため、モデルデータのリアルタイム性が高いほど、予測精度が高まります。コンバージョン率モデルの精度は、広告主がコスト目標を達成する上で非常に重要です。

オタクトーク

02

技術的背景

クラウド コンピューティングは、弾力性によって効率を向上できるため急成長していますが、究極の効率を実現するには、SaaS 製品が絶対に必要です。
現在、多種多様なIaaSおよびPaaS製品が利用可能です。クラウドデータベース、メッセージキュー、クラウドストレージなどのPaaS製品、あるいはコンピューティングコンテナ、ベアメタル、クラウド仮想マシンなどのIaaS製品をクラウド上で簡単に購入できます。これらのクラウド製品は、異機種混在の一般サーバーを基盤として仮想化されているため、ユーザーは基盤となる物理マシンのメンテナンスやクラスタ管理を気にすることなく、ビジネスサービスを構築できます。しかし、お客様がまるでビルディングブロックを組み立てるように簡単にビジネスを構築できるようにするには、既存のスタンドアロンのクラウド製品だけでは、リアルタイムのビジネスデータ処理のニーズを満たすことができません。複数のクラウド製品を使い分けてビジネス関係者が組み合わせたリアルタイムコンピューティングの実践では、究極の効率性を実現することはできません。これは、バッチコンピューティングやオンラインサービスとは異なり、リアルタイムコンピューティングには以下の3つの主要な要件があるためです

△クラウドコンピューティングのサービス階層、出典: https://azure.microsoft.com/en-us/resources/cloud-computing-dictionary/what-is-iaas

  • 安定性はタイムリーさ

リアルタイムコンピューティングは、秒単位または分単位の鮮度を必要とするデータ計算の問題に対処します。極めて高いデータ鮮度要件の下では、リアルタイムコンピューティングエンジンの安定性の問題が必然的にデータの適時性の問題につながります。一方、バッチコンピューティングは、より長い期間にわたって分散されたデータのバッチ処理を行います。典型的なビジネスシナリオには、履歴データマイニングやオフラインレポート計算などがあります。例えば、毎日作成される顧客レポートは、翌日の午前8時までに生成する必要があります。前日のデータが午後2時に利用可能で、レポート処理時間が30分であると仮定すると、5.5時間のエラー冗長期間があります。リアルタイムコンピューティングの別の例を考えてみましょう。リアルタイムデータストリームのSLAは、最大レイテンシが1時間以内であり、20分を超えるレイテンシの継続時間は1時間を超えてはならないとされています。このため、リアルタイムコンピューティングエンジンは、SLA違反が偶発的に発生しても回復できるよう、常に安定し、高いスループットを備えていることが強く求められます。重要なデータストリームには、効率的なプライマリ/バックアップ冗長性スキームが必要です。

  • 非均質な多段階計算は複雑さを増す

複雑なオンライン検索システムでは、複雑なビジネスシナリオの要求を満たすために、通常、多層・多階層のファンアウトメカニズムが採用されています。1つのページビュー(PV)には、数百ものサービスへの呼び出しが含まれる可能性があり、そのほとんどは多数の均質で冗長なインスタンスで構成されています。各呼び出しは任意のインスタンスに発生する可能性があり、SLA制約内の障害は許容されます。リアルタイムコンピューティングでは、通常、ビジネスロジックを処理するために、複数レベルのオペレータが協調的に処理する必要があります。違いは、オペレータサービス内のインスタンスが均質ではないという点にあります。商用シナリオでは、ビジネスロジックはほぼ常に「exactly-once」セマンティクスに従います。これは、上流と下流のデータ依存関係、データの偏り、複数レベルのオペレータ間の処理速度の不一致といった問題につながります。リアルタイムコンピューティングは、階層的なプッシュ・トゥ・コンプリート、バックトラッキングとロールバック、複雑なトポロジにおけるバックプレッシャーの特定と緩和といった処理によって、問題をさらに複雑化させます。コンバージョンデータを例に挙げると、コンバージョンデータは広告主にとって最も重要なビジネスデータであり、広告のROIに直接影響を与えます。したがって、コンバージョンデータはビジネスデータストリームの中で最も価値のあるデータとなります。コンバージョンデータの処理には、リード収集、コンバージョントラッキング、アトリビューションと連結、不正防止処理、ストリーミング重複排除、ビジネスタグ付け、コンバージョン配信など、複数の段階が含まれます。いずれかの段階で異常が発生すると、ダーティデータ配信や処理のブロックなどの問題が発生する可能性があります。各ノードにおけるデータビジネスロジックの反復処理には包括的な考慮が必要です。発生したエラーは、データストリーム全体の安定性に影響を与え、複雑なバックトラッキングやロールバック操作を必要とする場合もあります。このプロセス中は通常、すべての変更が停止されるため、リアルタイムデータ反復処理の効率が大幅に低下します。つまり、リアルタイムコンピューティングの複雑さは、主にマルチレベルコンピューティングに起因しているのです。

  • データ ストリームの「インターフェース」は頻繁に変更されます。

今日のオンラインサービスの多くは、高い凝集性と疎結合を特徴としており、サービス間のインターフェースはほとんど、あるいは全く変更されず、主に内部的な反復的なアップグレードが行われています。オンラインサービスにおけるサービス間インターフェースの変更は、通常、複雑なテストと統合を伴い、その後、小規模な実験を通して慎重に展開されます。リアルタイムコンピューティングの分野では、データスキーマは、リアルタイムデータストリームの様々なレベルにおけるオペレータ間の「インターフェース」と捉えることができます。オンラインサービスのインターフェースは頻繁に変更されませんが、リアルタイムコンピューティングのデータストリームでは、新しいビジネスデータ処理ロジックをサポートするために、データスキーマに新しいフィールドやデータ型を頻繁に追加する必要があります。データスキーマの変更は、上流プロセスと下流プロセスにわたる変更の一貫性と順序を考慮する必要があるため、大きなリスクを伴います。一貫性のない変更や、データスキーマの変更順序が不合理だと、様々なデータフローの問題を引き起こし、数十万ドルにも達する可能性のある収益損失につながる可能性があります。今日のデータフライホイール時代において、絶え間なく流れるデータ需要と複雑なスキーマ変更プロセスは、主要な矛盾となっています。


オタクトーク

03

解決

読者の皆様に当社のソリューションを理解していただくため、まずは商業的な文脈で処理する必要があるデータについて、簡潔かつ抽象的な概要を説明します。これはあらゆる商業シナリオに当てはまります。収益への貢献度に基づき、コアとなるビジネスデータストリームには、 インプレッション、クリック、コンバージョンが含まれます次に、これらのデータストリームそれぞれの特徴について説明します。

1.表示データストリームは広告データの取得ログに相当し、そのデータ量はすべてのデータストリームの中で最も大きい。広告取得ログには、広告の表示スタイル、広告ソース、広告チャネルなどの情報が記録される。このデータフィールドには数千ものフィールドがあり、データフィールドの反復処理が頻繁に必要となる。

2. クリックログは広告課金に使用されます。新製品のリリース時には、収集されたクリックデータに基づいて異なる課金ロジックが適用されます。クリックデータは広告プラットフォームの収益に直接影響を与えるため、重複やデータ損失を確実に防ぐための厳格な要件が設けられています。

3. 前述のように、コンバージョン データは、広告主のフィードバックや管理されたランディング ページからのデータ収集から得られる、最も商業的に価値のあるデータです。

これらのデータは、様々なビジネスシナリオに対応し、それぞれ異なる処理を受けます。ここでは、リアルタイムの意思決定データ変換といったビジネスシナリオを例に、オンラインビジネスにおけるリアルタイムデータストリームの適用例を説明します。これらのデータ開発シナリオでは、一般的にローコード開発、実験、段階的な変更、ロールバック、バックトラッキングといったソリューションが求められますが、それぞれに固有の要件も存在します

  • リアルタイムの意思決定シナリオ

リアルタイムの意思決定は、複数のデータストリームに依存する複雑な戦略に依存します。各データストリームには、独自かつ頻繁に変更される大量のデータ処理ロジックが含まれており、意思決定戦略は通常、複数のデータストリームの出力に依存します。したがって、リアルタイムの意思決定には、エンドツーエンドで迅速かつ安全なスキーマ変更が必要です。

  • ビジネスシナリオの変革

コンバージョンデータの収集には様々なコンバージョンソースが関係し、広告主から返されるコンバージョンデータの品質は大きく異なります。そのため、コンバージョンデータ処理段階では、データのタグ付けと重複排除が必要となり、ロジックも頻繁に変更されます。コンバージョンデータは広告主のキャンペーンのROIに直接影響を与えるため、プライマリ/バックアップソリューションが必要です。

RTS (Real Time Stream) は、ビジネス開発者に完全なSaaSベースのリアルタイムデータ処理開発エクスペリエンスを提供し、データフライホイールを迅速に構築できるように設計された商用リアルタイムデータ処理プラットフォームです。シナリオベースのエンドツーエンドで管理された開発、展開、運用プロセスを通じてのみ、リアルタイムコンピューティングの究極の効率性を実現できます。RTSでは、さまざまな商用データビジネス開発シナリオに対応するシナリオベースの開発モデルを抽象化しています。プラットフォームユーザーが集中する必要があるのは、SQLとUDFを使用してビジネスロジックをどのように表現するかだけです。ユーザーがビジネスロジックの表現を完了すると、プラットフォームはCI / CDパイプラインをトリガーし、最適なトピックでストリーミングジョブを構築し、実験を展開し、ワンクリックですべてをプッシュし、オンライン運用と保守をサポートします。同時に、プラットフォームはメタデータを収集し、データ系統を生成します。これにより、パイプライン開発中にデータスライスを使用して自動的に比較できるため、変更が期待どおりであることが確認され、データ変更に関連するテストコストとリスクが大幅に削減されます。
RTS プラットフォームのアーキテクチャ図を以下に示します。

△RTSアーキテクチャ

3.1 シナリオベースのビジネスデータ開発

3.1.1 リアルタイム意思決定シナリオ
RTS プラットフォームは、データ ストリームの「インターフェース」への頻繁な変更を効率的にサポートします。
次に、上記のリアルタイム意思決定の事例を使用して、シナリオベースのアプローチのベストプラクティスを抽象化する方法を説明します。
ビジネスチームは、クラウドストレージ、クラウドデータウェアハウス、ベアメタル、エラスティックコンテナなどのクラウド製品を購入し、複数のディスクへの書き込みと読み取り、そしてコンピューティングソリューション間の切り替えを伴うデータフローを構築していました。リモートクラウドストレージを繰り返し読み取る必要があるため、時間単位で安定したデータのタイムリー性を実現することは困難でした。同時に、分散したコンピューティングソリューション、エンドツーエンドの統合コストの高さ、反復効率の低さ、オンラインデータの問題のバックトラッキングの難しさなどの問題もありました。

△リアルタイム意思決定のための従来のアーキテクチャの概略図

私たちは、複雑なビジネスの詳細からリアルタイムの意思決定の本質を抽象化します

まず、異なるトラフィック バジェットの組み合わせには、価格保護、コスト管理、頻度管理などのリアルタイムの意思決定戦略が異なりますが、それらはすべて、表示ポイント変換データの同じフィールド前処理ロジックに基づいています。

第二に、リアルタイム意思決定はデータ駆動型のビジネスであり、戦略の反復ごとに新しい分野の導入が伴うと言えます。

3 番目に、多様なリアルタイムの意思決定戦略では、ビジネス フレームワークをカプセル化し、計算とストレージを分離してカスタム ビジネス ロジック (UDF) をサポートする必要があります。

この目的のため、リアルタイムの意思決定を「インポート」および「エクスポート」モデルに抽象化します。「インポート」および「エクスポート」プロセスは、フレームワークベースのUDFのユーザー登録をサポートし、プロセス全体を通して自動スキーマ変更をサポートします。

△リアルタイム意思決定エンジンアーキテクチャの概略図

ユーザーのセットアッププロセスを以下に示します。プラットフォームはユーザーのアクションに基づいて対応するワークフローを自動的にトリガーし、プラットフォームユーザーをエンジンの実装の詳細から保護し、多段階の計算によって生じる複雑さを解消します。

データ ソース情報の作成: ユーザーは、プラットフォーム上のデータ ソースのメタデータ情報を登録し、アカウント権限の検証を完了し、データ ソースのメタデータ バージョンを関連付けます。

データ テーブルの作成: ユーザーは、プラットフォーム上にデータ テーブルの作成を申請し、メタデータを記述し、ビジネス特性に基づいてデータ テーブル GC サイクルを選択します。

カスタムロジックの作成:ユーザーはプラットフォーム上でカスタムロジック(UDF)を編集し、登録を完了できます。バージョンがリリースされると、UDFはプラットフォーム上で使用できるようになります。

インポート タスクの作成: ユーザーは、インポートするデータ ソースとデータ テーブルを選択し、ETL 処理ロジックを記述する SQL を記述して、インポート タスクを作成します。

エクスポート タスクの作成: ユーザーはエクスポートするデータ テーブルを選択し、エクスポート ロジックを記述する SQL を記述し、エクスポート先として HDFS またはメッセージ キューを選択できます。

新しいフィールドの追加: ユーザーはデータ ソース情報とテーブル情報を変更し、インポート/エクスポート ロジックで新しいフィールドを使用できます。


△自動スキーマ変更

エンドツーエンドホスティングの「インターフェース」の変更。

自動スキーマ変更をサポートするため、コードリポジトリとパイプラインのすべてのデータスキーマを一元管理しています。コードリポジトリはAPIの変更履歴を管理し、パイプラインはAPIバージョンをリリースし、製品リポジトリはAPIバージョンを管理します。プラットフォームは製品リポジトリを検出して、有効なすべてのAPIバージョンを取得します。これにより、コードリポジトリでユーザーが送信したスキーマ変更がプラットフォームによって検出されます。ユーザーがデータソース、テーブル、またはインポート/エクスポートロジックフィールドを更新すると、プラットフォームは選択したAPIバージョンに依存する新しいジョブを生成します。このエンドツーエンドのデータスキーマ変更管理により、上流と下流のスキーマ変更が合意された順序で一貫して実行され、過去の変更によって引き起こされる頻繁な中断を回避できます。さらに、変更プロセスにはコードレビュー、パイプライン実装、実験チェックが含まれており、長いチェーンのデータフロー変更に関連する非効率性と高度なコラボレーションの難しさを完全に解決します。


3.1.2 ビジネスシナリオの変革
RTS プラットフォームは、 プライマリおよびバックアップのデュアル クラスターの冗長展開を効率的にサポートします。

安定性をさらに高めるために、ほとんどの RTS エンジン レイヤーはプライマリ バックアップの冗長設計を採用しています。コンバージョン ビジネス シナリオを例にとると、 ビジネス開発者はリアルタイム コンピューティング、メッセージ キュー、クラウド ストレージを購入して、コンバージョン データ ストリームを構築します。ただし、コンバージョン ビジネス ルールは手順的に開発され、何千行もの if-else C++ コードが含まれています。残念ながら、コンバージョン ルールは頻繁に変更されるため、反復効率が低下します。 ビジネスの観点から見ると、コンバージョン データにはプライマリ バックアップのデュアル ストリーム システムが切実に必要ですが、これは長い間欠けていました。 プライマリ バックアップの要件は、2 つの考慮事項に起因します。1 つ目は、コンバージョン データが広告主の ROI に直接影響することです。2 つ目は、ロジックの変更が頻繁になるとリスクが増大することです。ただし、一般的なプライマリ バックアップ デュアル ストリーム システムでは、下流のチームが切り替えに協力する必要があり、多くの下流のビジネス チームがコンバージョン データの結果をサブスクライブします。

対応する開発モデルを抽象化しました。ユーザーは、タグ付けや重複排除ルールなどの変換ビジネスルールをSQLとUDFで表現することに集中するだけで済みます。これらのルールは、送信後、それぞれTagMarkerとDeduperにスケジュールされ、解釈と実行されます。プライマリとバックアップのデュアルストリームの要件については、ビジネスルールモジュール(TagMarkerとDeduper)はプライマリバックアップデプロイメントを採用し、ダウンストリームはべき等モジュール(Switcher)に接続されます。べき等モジュールは、各変換データの一意のキーに基づいて重複排除を実行しますビジネスイテレーション中、変更は最初にバックアップクラスターに実装され、ビジネス効果が確認された後、プライマリクラスターにプッシュされます。ロールバック中、プライマリストリームとバックアップストリームは、履歴セーブポイントをロードすることによって個別に復元され、重複した復元データもべき等モジュールによって重複排除されます。まとめると、RTS上のプライマリバックアップデュアルクラスター冗長デプロイメントソリューションは、シームレスなダウンストリーム切り替えを実現します。

△主業務とバックアップ業務のシナリオ概略図

3.2 RTSプラットフォームエンジン

データ開発は、完全な展開の前に実験から始める必要があります。
リアルタイムデータストリーミングサービスの特性上、極めて高い安定性が求められます。通常のアップグレードや展開時には、リアルタイムデータストリームでデータロジックエラーが発生したり、長時間にわたるサービス中断が発生したりすることは許されません。この課題に対処するため、RTSプラットフォームは、さまざまな開発シナリオに対応する統合実験プラットフォームを提供しています。RTSでのすべてのデータ開発作業では、展開前に実験を行う必要があります。RTSプラットフォームは、管理対象データストリームを各対象分野とシナリオに基づいて冗長実験フィールドに集約します。Protobufの繰り返しフィールド機能を活用することで、任意の数の実験を同じデータに重ね合わせることができ、各実験の結果はExpidフィールドとVersionフィールドで区別されます。RTSユーザーが実験結果の検証を完了すると、実験プラットフォームはすべての実験結果をワンクリックでプッシュし、影響を受けるフィールドを実験フィールドから最終フィールドに切り替えることができます。

△データ開発プロセス

ビジネスが開始されると、メタデータが自動的に生成されます。

メタデータはビッグデータの魂です。一方では、データマップとデータリネージを提供し、企業が利用可能なデータとデータ変更の影響を判断するのに役立ちます。一方、RTS(リアルタイムストレージ)は、データスライシングを使用して、データリネージに基づくデータ変更テストパイプラインを作成します。そして、ストリーミング+レイクストレージコンピューティングの後続の最適化の基盤を形成します。実装面では、プラットフォームのメタデータエンジンとしてLinkedIn DataHubを導入しました。このプラットフォームは、フィールドレベルでビジネスシナリオをほぼ完全にホストしており、企業はコンピューティングエンジンをシームレスにアップグレードし、テーブルとフィールドのメタデータとデータリネージを収集できます。プラットフォームでホストされるシナリオの数が増え続け、各シナリオでホストされる企業の数が飛躍的に増加するにつれて、データの種類とフィールドは急速に拡大しています。データマッピングサービスを通じて、クラスター効率を積極的に向上させることができます。

△RTSプラットフォームメタデータアプリケーション


オタクトーク

04

現在の成果と将来の見通し

現在のRTS プラットフォームは、コンバージョン ビジネス シナリオ、リアルタイムの意思決定シナリオ、リアルタイム データ ウェアハウス ダッシュボード、リアルタイムのデータ配信シナリオ、リアルタイムのキーワード配信シナリオ、リアルタイムのデータ マイニング シナリオなど、さまざまなシナリオをサポートしています。コンバージョン ビジネス シナリオは、数十の重複排除戦略をホストします。リアルタイムの意思決定シナリオは、数十のデータ テーブルと対応するビジネス ロジックを処理し、広告価格調整、インテリジェントな広告オークション、リアルタイムのコンバージョン監視、メディア入札価格保護などのシナリオをサポートします。リアルタイム データ ウェアハウス ダッシュボードは、分単位のデータ鮮度の時系列データと概要データの表示をサポートします。リアルタイムのデータ配信シナリオは、データ配信のフィールド レベルの権限制御をサポートし、商用クリック、消費、およびコンバージョン データの配信とアクセスを提供します。リアルタイムのキーワード配信シナリオは、広告やその他の結果データを処理して、オンラインのキー値 (KV) へのリアルタイム アクセスを提供し、ビジネス全体でリアルタイムのキーワード処理を提供します。リアルタイムデータマイニングシナリオでは、CTRモデル、CVRモデル、デュアルタワーモデルに適用可能なリアルタイムモデルQ値計算を実行できます。商用ホスティングシナリオでは、ビジネスオペレーションのリアルタイム性により、毎日数百万ドルの収益を生み出しており、RTSプラットフォームは商用ストリーミングコンピューティングのポータルとなっています。
RTSプラットフォームは今もなお急速に発展を続けています。RTSプラットフォームは、そのカバレッジを拡大し続け、商業ビジネスのあらゆるリアルタイムシナリオをホストしていきます。百度の商業ストリーミングステッチングを例に挙げると、このシナリオにはインプレッション、露出、クリック、コンバージョンなど、様々なデータが含まれており、ステッチングデータのピーク量は毎分数百ギガバイトに達します。検索、ニュースフィード、広告ネットワークなどの収益化シナリオはすべて30日間のステッチング期間にアップグレードされ、コンバージョンアトリビューションなどのビジネスは新たなステッチング需要を生み出し続けています。RTSはストリーミングステッチングをホストし、企業が自由にステッチングの可能性を探求できるようにする予定です。一方、世界が生成型人工知能の時代に入るにつれ、データ駆動型アプローチもAI対応可能になります。基盤となるデータを理解するための大規模モデルを導入することで、より多くの人々、より多くのアイデアが商業データフライホイールの構築に参加できるようになります。