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

Simple Log Service:ApsaraDB RDS for MySQL からのデータエンリッチメント

最終更新日:Jun 23, 2026

データが Simple Log Service の Logstore と ApsaraDB RDS for MySQL データベースの両方に保存されている場合、Simple Log Service のデータ変換機能を使用して、内部エンドポイント経由でデータベースにアクセスし、データエンリッチメントを行うことができます。

仕組み

次の図は、Simple Log Service のデータ変換が ApsaraDB RDS for MySQL データベースにアクセスしてデータエンリッチメントを行う仕組みを示しています。

ソリューション概要

このソリューションは、次の 3 つのステップで構成されています:

  1. データ変換ジョブの詳細パラメータ設定の取得:まず、ApsaraDB RDS コンソールにログインして ApsaraDB RDS for MySQL インスタンスの情報を取得します。次に、OpenAPI Explorer を使用して API オペレーションを呼び出し、詳細パラメータ設定を取得します。

  2. ソース Logstore でデータ変換ジョブを開始:データ変換ルールを設定して、データをエンリッチメントします。

  3. 変換結果を送信先 Logstore に保存:エンリッチメントされたデータを送信先 Logstore に保存します。

前提条件

  • ソース Logstore に生ログデータが含まれていること。

  • ApsaraDB RDS for MySQL インスタンスと Simple Log Service プロジェクトが同じリージョンにあること。

ステップ 1:詳細パラメータ設定の取得

  1. ApsaraDB RDS コンソールにログインします。

  2. ホワイトリストを設定します。詳細については、「ホワイトリストの設定」をご参照ください。

    1. 左側のナビゲーションバーで、ホワイトリストとセキュリティグループ > ホワイトリストグループを追加 をクリックし、グループ名を入力して、IP アドレスホワイトリストを 100.104.0.0/16 に設定します。

    左側のナビゲーションウィンドウで、インスタンス をクリックします。ターゲットインスタンスを見つけて、その ID をクリックします。

  3. インスタンス ID と内部ポートを取得します。

    1. 左側のナビゲーションウィンドウで、基本情報 をクリックします。基本情報 ページで、インスタンス ID を見つけてコピーします。

    2. 左側のナビゲーションウィンドウで、データベースの接続 をクリックします。データベースの接続 ページで、内部ポート: を見つけてコピーします。

  4. ターゲットインスタンスの VpcIdVpcCloudInstanceId を取得します。

    1. OpenAPI Explorer ページを開きます。パラメーター > [入力パラメーター] ページで、DBInstanceId インスタンス ID テキストボックスを見つけ、コピーしたターゲットインスタンス ID を入力します。API オペレーションの詳細については、「インスタンス詳細のクエリ」をご参照ください。

    2. 操作 をクリックし、[呼び出し結果] ページで VpcIdVpcCloudInstanceId をコピーします。

      "VSwitchId": "xxx",
      "TipsLevel": 0,
      "PayType": "Postpaid",
      "LockMode": "Unlock",
      "DeletionProtection": false,
      "DBInstanceStorageType": "general_essd",
      "InsId": 1,
      "VpcId": "xxx",
      "ConnectionMode": "Standard",
      "VpcCloudInstanceId": "xxx",
      "RegionId": "cn-hangzhou",
      "ConnectionString": "xxx",
      "ExpireTime": ""

ステップ 2:データ変換ジョブの開始

  1. Simple Log Service コンソールにログインします。

  2. データ変換ページに移動します。

    1. [プロジェクト] セクションで、ターゲットプロジェクトをクリックします。

    2. ログ管理 > Logstores タブで、ターゲット Logstore をクリックします。

    3. クエリと分析ページで、データ処理 をクリックします。

    4. データ変換ページで、[データ変換 (旧バージョン) に切り替え] をクリックします。

  3. 詳細パラメータ設定を追加します。

    1. ページの右上隅で、Advanced を選択し、データのプレビュー をクリックします。

    2. プレビュー設定の追加 パネルで、詳細設定 をクリックし、次のパラメーターを追加します。

      重要

      表内のすべての設定パラメーターにおいて、your_name はカスタマイズ可能ですが、一貫性を保つ必要があります。また、処理ルール内の your_name とも一致させる必要があります。

      パラメーター

      説明

      config.vpc.vpc_id.your_name

      vpc-uf6mskb0b****n9yj

      ターゲットインスタンスの VPC ID。

      手順については、「ターゲットインスタンスの VpcId の取得」をご参照ください。

      config.vpc.instance_id.your_name

      rm-uf6e61k****ahd7-2024091513

      ターゲットインスタンスの ID。

      手順については、「ターゲットインスタンスの VpcCloudInstanceId の取得」をご参照ください。

      同じ Alibaba Cloud リージョン内の自己管理 MySQL データベースの場合、config.vpc.instance_ip.your_name パラメーターを使用して VPC 内のデータベースの IP アドレスを指定します。

      config.vpc.instance_port.your_name

      3306

      ターゲットインスタンスの内部ポート。

      手順については、「ターゲットインスタンスの内部ポートの取得」をご参照ください。

    3. 設定を確認後、OK をクリックします。

  4. 変換ルールを編集します。

    1. エディターに、次の文を追加します。

      次のコードは構文の例です。データエンリッチメント関数とリソース関数の詳細については、「ApsaraDB RDS for MySQL データベースのデータを使用したデータエンリッチメント」および「リソース関数」をご参照ください。

      /*
      e_table_map()     データエンリッチメント関数。
      res_rds_mysql()   プル関数。ApsaraDB RDS for MySQL データベースからテーブルコンテンツまたは SQL 実行結果をプルします。
      str_format()      文字列フォーマット関数。res_local() の `your_name` は、詳細パラメータ設定の `your_name` と一致する必要があります。
      field             マッチングフィールド。Logstore のログデータと ApsaraDB RDS for MySQL テーブルのデータをマッチングするための基準となるフィールド。このフィールドの値が両方のソースで同一である場合にのみ、マッチングは成功します。
      output_fields     出力フィールド。マッチングが成功した場合、これらのフィールドの値が返され、新しいログエントリが生成されます。
      */
      e_table_map(
          res_rds_mysql(
              str_format("{}:{}", 
                         res_local("config.vpc.instance_id.your_name"), 
                         res_local("config.vpc.instance_port.your_name")), 
              "database_username", 
              "database_password", 
              "database_name",
              table="table_name"
          ), 
          "field", 
          "output_fields"
      )

      変換文は次のとおりです:

      次のルールは、Simple Log Service Logstore の process_time_in_ms フィールドを、RDS MySQL データベーステーブルの process_time_in_ms フィールドと照合します。マッチングが成功するのは、process_time_in_ms フィールドの値が同一である場合のみです。マッチングが成功すると、ルールは RDS MySQL データベーステーブルから model および purchase_price フィールドとその値を取得し、Logstore のデータと組み合わせて新しいデータを生成します。

      e_table_map(
        res_rds_mysql(
          str_format("{}:{}",
              res_local("config.vpc.instance_id.test"),
              res_local("config.vpc.instance_port.test")),
          "xxx",
          "xxx","xxx xxx",
          "database",
          table="bicycles",
          primary_keys="process_time_in_ms"),
        "process_time_in_ms",
        ["model","purchase_price"]
      )
  5. Transformation Results を表示します。

    メインテーブルでは、ログは `__default__` 出力ターゲットにルーティングされ、`remote_addr` や `request_method` のような元のキーと値のフィールドが保持されます。これは、変換ルールがこれらのログにマッチせず、元の状態でデフォルトのターゲットにディスパッチされたことを意味します。

    正常に一致したログレコードには、`model` (XTC 800)、`purchase_price` (3000.00)、`process_time_in_ms` (788) などのキーフィールドが含まれます。完全なログエントリは次のとおりです:

    __source__ :127.0.0.1
    __tag__:__receive_time__ :1725962982
    __tag__:_container_ip_ :183.227.33.184
    __tag__:_container_name_ :container3
    __tag__:_image_name_ :image3
    __tag__:_path_ :/home/local
    __topic__ :tomcat_access_log
    body_bytes_sent :6344
    model :XTC 800
    process_time_in_ms :788
    purchase_price :3000.00
    referer :www.phn.mock.com
    remote_addr :202.92.0.182
    remote_user :v-0
    request_method :GET
    request_protocol :HTTP/2.0
    request_uri :/request/path-3/file-1
    status :200
    time :10/Sep/2024:09:09:35
    user_agent :Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24

    右上隅にある データのプレビュー をクリックしてデータを処理します。

ステップ 3:変換結果の保存

  1. 右下隅にある [変換ジョブとして保存 (旧バージョン)] をクリックします。

    [データ変換ジョブの作成] ダイアログボックスで、まず [ジョブ名] (プレフィックスは `etl-`)、[表示名][ジョブの説明] を入力します。[権限付与方法] には [デフォルトロール] を選択します。次に、[ストレージターゲット] セクションで、[ターゲット名][ターゲットリージョン][ターゲットプロジェクト][ターゲット Logstore] を設定し、権限付与に [デフォルトロール] を選択します。最後に、[処理範囲 (データ受信時間)] セクションで、[すべて][特定の時間から]、または [特定の時間範囲] などの時間範囲を選択します。

  2. 左側のナビゲーションウィンドウの Logstores で、変換結果が保存される送信先 Logstore をクリックします。ページの右上隅で、データの時間範囲を選択します。

    時間範囲を選択した後、Rawデータ タブをチェックして、変換結果が保存されたことを確認します。

    処理されたログには、新しい model (XTC 800) と purchase_price (3000.00) フィールドが含まれています。これにより、変換結果が送信先 Logstore に書き込まれたことが確認できます。

付録:AnalyticDB for MySQL および PolarDB for MySQL へのアクセス

Simple Log Service は、ApsaraDB RDS for MySQL に加えて、AnalyticDB for MySQL および PolarDB for MySQL データベースにも内部エンドポイント経由でアクセスできます。必要な設定は以下のとおりです:

  • AnalyticDB for MySQL データベース

    パラメーターの詳細設定 を構成する際、config.vpc.instance_id.your_name の値を AnalyticDB for MySQL インスタンス ID の末尾に -controller を付けたものに設定します。その他の設定については、このドキュメントをご参照ください。

    また、`config.vpc.vpc_id.your_name` を対応する VPC ID に、`config.vpc.instance_port.your_name` を `3306` に設定する必要もあります。

  • PolarDB for MySQL の場合は、ApsaraDB RDS for MySQL と同じ設定を使用します。