すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RocketMQ:データクレンジング

最終更新日:Sep 25, 2024

メッセージのクレンジングを実行するために、メッセージ分割、動的ルーティング、およびメッセージ強化テンプレートなどの一般的なメッセージ処理テンプレートが提供されます。 Function Computeのテンプレートを直接使用して、メッセージを処理したり、ビジネス要件に基づいてテンプレートのコードを変更したりできます。 このトピックでは、メッセージクレンジングの実行に使用されるテンプレートの種類と、テンプレートの使用方法について説明します。 このトピックでは、例としてApsaraMQ for RocketMQを使用します。

概要

データクレンジング機能は、Function Computeに基づく基本的な演算子機能を提供します。 ApsaraMQ for RocketMQでメッセージデータクレンジングタスクを作成した後、Function Computeにログインしてコードと関数の設定を変更できます。

演算子

説明

メッセージフィルタリング

正規表現に基づいてメッセージコンテンツを照合し、一致したメッセージを指定した宛先に送信します。

コンテンツセグメンテーション

正規表現に基づいてメッセージコンテンツを分割し、分割メッセージを指定された宛先に送信します。

動的ルーティング

正規表現に基づいてメッセージコンテンツを照合し、一致したメッセージを指定された宛先に送信し、一致しなかったメッセージをデフォルトの宛先に送信します。

コンテンツ強化

強化ソースに基づいてメッセージコンテンツを強化します。 たとえば、メッセージの元のコンテンツにAccountIDが含まれている場合、AccountIDを使用してデータベースを照会し、顧客リージョンを取得します。 システムは、顧客領域をソースメッセージ本体に挿入し、メッセージ本体を指定された宛先サービスに送信します。

コンテンツマッピング

正規表現に基づいてメッセージコンテンツをマップします。 例えば、システムは、メッセージ内のセンシティブフィールドをマスクするか、またはメッセージサイズを最小サイズに低減することができる。

シナリオ

コンテンツ分割

次のメッセージには、学生のリストが含まれています。

メッセージ:
[ジャック、男性、17、クラス4; アリス、女性、17、クラス3; ジョン、男性、17、クラス4] 

指定した宛先サービスにメッセージを送信する前に、メッセージを次のメッセージに分割します。各メッセージには1人の学生に関する情報が含まれています。

メッセージ:
    [ジャック、男性、17、クラス4]
メッセージ:
    [アリス、女性、17、クラス3]
メッセージ:
    [ジョン、男性、クラス17、クラス4] 

次の図にプロセスを示します。

image

動的ルーティング

次のメッセージには歯磨き粉のリストが含まれています。

メッセージ:
[BrandA、歯磨き粉、$12.98、100g
 BrandB、歯磨き粉、$7.99、80g
 BrandC、歯磨き粉、$1.99、100g] 

カスタム動的ルールに基づいて、指定した宛先トピックにリストを送信する必要があります。 次の項目は、ルールを説明します。

  • BrandAで始まるメッセージをBrandA-item-topicおよびBrandA-discount-topic topicsに送信します。

  • BrandBで始まるメッセージをBrandB-item-topicおよびBrandB-discount-topicトピックに送信します。

  • Unknown-brand-topicトピックに他のメッセージを送信します。

次のサンプルコードは、ルールのJSON形式を示しています。

{
  "defaultTopic": "Unknown-brand-topic" 、
  "rules": [
    {
      "regex": "^ BrandA" 、
      "targetTopics": [
        "BrandA-item-topic" 、
        "BrandA-割引-トピック"
      ]
    },
    {
      "regex": "^ BrandB" 、
      "targetTopics": [
        "BrandB-item-topic" 、
        "BrandB-割引-トピック"
      ]
    }
  ]
}

次の図にプロセスを示します。

image

コンテンツ強化

この例では、IPアドレスセグメントが強化されています。 次のコードスニペットは、サービスのアクセスログを示しています。

{
  "accountID": "164901546557 ****" 、
  "hostIP": "192.168.XX.XX"
} 

IPアドレスのソースを照会する必要があり、マッピング関係をMySQLデータベースに格納する必要があります。

CREATE TABLE 'tb_ip' (
    -> 'IP' VARCHAR(256) NOT NULL、
    -> 'Region' VARCHAR(256) NOT NULL、
    -> 'ISP' VARCHAR(256) NOT NULL、
    -> プライマリーキー ('IP')
    -> ); 

次のコードスニペットは、処理されたメッセージを示します。

{
  "accountID": "164901546557 ****" 、
  "hostIP": "192.168.XX.XX" 、
  "region": "北京"
} 

次の図にプロセスを示します。

image

コンテンツマッピング

次のメッセージには、会社の従業員に関する登録情報が含まれています。 情報には、従業員IDや携帯電話番号などの機密コンテンツが含まれます。

James、従業員ID 1、131 1111 1111
メアリー、従業員ID 2、132 2222 2222
デビッド、従業員ID 3、133 3333 3333 

メッセージが宛先サービスに送信される前に、前のメッセージの機密コンテンツをマスクする必要があります。 次のサンプルコードに例を示します。

Ja * 、従業員ID * 、**********
Ma * 、従業員ID * 、**********
Dav * 、従業員ID * 、*********** 

次の図にプロセスを示します。

image

手順

  1. ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、メッセージ統合 > タスクリスト を選択します。 タスクリスト ページで、[タスクの作成] をクリックします。

  2. [タスクの作成] ページの [ソース][フィルタリング][変換][シンク] ステップで、イベントソース、フィルタリングルール、データクレンジングテンプレート、およびイベントターゲットを設定します。

    image

    ソースと ④ シンク

    別のApsaraMQ for RocketMQインスタンスを選択します。

    フィルタリング

    一致するルールを指定します。 このステップは省略可能です。 一致ルールを指定しない場合、すべてのイベントが一致します。 一致ルールの詳細については、「メッセージフィルタリング」をご参照ください。

    変革

    Function Computeが提供するテンプレートを選択します。 テンプレートには、コンテンツ分割コンテンツマッピングコンテンツ強化動的ルーティングが含まれます。 ビジネス要件に基づいて、上記のテンプレートのいずれかを選択できます。 テンプレートは基本的なデータ処理ロジックを提供します。これは直接使用またはカスタム調整できます。

    この例では、コンテンツ分割テンプレートが選択されています。

    image