データは完璧ではないため、処理が必要です。 生データと最終結果には常にギャップが生じます。 ELT (Extract-Transform-Load) ジョブを実行することで、データの最適化、変換、ソートをすることができます。

ユースケース

「I Want Take-away」は、ユーザー、レストラン、宅配業者が関わるプラットフォームを備えた E コマース web サイトです。 ユーザーは、ウェブサイト、アプリ、WeChat、Alipay から料理の宅配をオーダーすることができます。 ユーザーがオーダーをすると、各店舗が注文された料理の準備を開始します。 同時に、システムが最寄りの宅配便業者に自動通知を送信します。 いずれかの宅配業者が受注し、ユーザーに料理を宅配します。

オペレーションチームには 2 つのタスクがあります。

  • 必要に応じて特定のエリアに宅配業者を手配できるよう、宅配業者の位置情報を取得します。
  • クーポンと現金の使用に関する情報を取得することで、特定のエリアにクーポンを配布してインタラクティブな販売促進を実施します。

GPS データ処理

GPS データ (X、Y) は、宅配業者のアプリで 1 秒毎に更新されます。 データ形式は以下のとおりです:

2016-06-26 19:00:15 ID:10015 DeviceID:EXX12345678 Network:4G GPS-X:10.30.339 GPS-Y:17.38.224.5 Status:Delivering
			

各レコードには、報告時刻、宅配業者 ID、ネットワーク、デバイス ID、座標位置 (GPS-X および GPS-Y を含む) が含まれます。GPS で正確な経度と緯度の情報が提供されます。 ただし、オペレーションチームでは、各エリアにいる宅配業者のステータス情報のみが必要になります。 したがって、前途のような精度の高いデータは必要ありません。 この場合、座標位置は、市、区、ZipCode などの読み取り可能なフィールドに変換できます。

(GPS-X,GPS-Y) --> (GPS-X, GPS-Y, City, District, ZipCode)
			

これは ETL の一般的な要求事項です。 LogHub を使用して 2 つの Logstore (生データ用の PositionLog Logstore と変換データ用の EnhancedLog Logstore) を作成します。 ETL プログラム (Spark Streaming や Storm など) を実行するか、または、コンテナで Consumer Library を起動して、PositionLog Logstore からデータをリアルタイムで読み取り、座標位置を変換し、変換されたデータを EnhancedLog Logstore に書き込みます。 EnhancedLog Logstore を Realtime Compute に接続してログデータを視覚化することができます。 インデックスを作成して、Logstore のログデータをクエリすることもできます。

手順は次のとおりです。

  1. 宅配業者のアプリの追跡機能を使用して、現在の GPS ロケーションを 1 分ごとに PositionLog Logstore に報告します。

    LogHub SDK (iOS または Android 版)、または Mobile Analytics (MAN) を使用してモバイル端末のログにアクセスすることを推奨します。

  2. プログラムを使用して、PositionLog Logstore からリアルタイムでデータを読み取ります。 次に、ログデータを変換し、変換されたデータを EnhancedLog Logstore にリアルタイムで書き込みます。

    サブスクリプションには、Spark Streaming、Storm、Consumer Library (自動負荷分散に対応しているプログラミングモード採用のもの)、または SDK を使用することを推奨します。

  3. EnhancedLog Logstore でログデータを処理 (データの計算、結果の視覚化など) をします。 以下の使用を推奨します。
    • LogHub (Realtime Compute の統合)
    • LogShipper (OSS、E-MapReduce、Table Store、MaxCompute へのデータ送信)
    • LogSearch (オーダーのクエリ)

オーダーマスキングと分析

支払いサービスが支払いリクエスト (支払いに使用するアカウント、支払方法、金額、クーポンなど) を受け取ります。

  • 支払いリクエストには秘密情報が含まれています。 したがって、オーダーマスキングが必要になります。
  • 支払情報に含まれるクーポンと現金のデータを分ける必要があります。
手順は次のとおりです。
  1. 4 つの Logstore (PayRecords、Cleaned、Cash、Coupon) を作成します。 アプリが、Log4J Appender を介してオーダーデータを PayRecords Logstore に書き込みます。

    秘密データのハードディスクへの保存を防ぐため、Log4J Appender の使用を推奨します。

  2. マスキングプログラムが、PayRecords Logstore のデータをリアルタイムで取得します。 アカウント情報がマスキングされた後、PayRecords Logstore のデータは Cleaned Logstore に書き込まれます。
除算プログラムが Cleaned Logstore のデータをリアルタイムで取得し、ビジネスロジックを介して Cash Logstore と Coupon Logstore にそれぞれクーポンと現金のデータを格納します。

リアルタイムのデータのマスキングと分割には、Spark Streaming、Storm、Consumer Library、SDK の使用を推奨します。

その他の機能

  • RAM コンソールで各リソースアクセス管理 (RAM) ユーザーの LogHub の各 Logstore へのアクセス権限を管理できます。
  • CloudMonitor で現在の読み取りおよび書き込みデータを取得し、コンソールで取得の進行状況を確認できます。