データが Simple Log Service Logstore と ApsaraDB RDS for MySQL インスタンスのデータベースに保存されている場合、データ変換機能を使用してインスタンスの内部エンドポイント経由でデータベースにアクセスし、データエンリッチメントを行うことができます。
仕組み
次の図は、データ変換機能を使用してインスタンスの内部エンドポイント経由で ApsaraDB RDS for MySQL データベースにアクセスし、エンリッチメント用のデータを取得する方法を示しています。
ソリューションの概要
データ変換ジョブに必要な詳細パラメータのクエリ: ApsaraDB RDS コンソールにログオンして、ApsaraDB RDS for MySQL インスタンスに関する情報をクエリします。次に、OpenAPI Explorer で API 操作を呼び出して、データ変換ジョブに必要な詳細パラメータをクエリします。
ジョブのソース Logstore でデータ変換ジョブを有効にする: データを変換するためのルールを構成します。
変換結果をジョブの宛先 Logstore に保存する: 変換結果を宛先 Logstore に保存します。
前提条件
未加工のログデータが取得されている。
ApsaraDB RDS for MySQL インスタンスが Simple Log Service プロジェクトと同じリージョンにある。
ステップ 1: データ変換ジョブに必要な詳細パラメータをクエリする
ApsaraDB RDS コンソール にログオンします。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。 インスタンス ページで、管理するインスタンスを見つけてクリックします。

IP アドレス ホワイトリストを構成します。 詳細については、「ホワイトリストの構成」をご参照ください。
インスタンスページの左側のナビゲーションウィンドウで、 をクリックします。 表示されるページの [ホワイトリスト設定] タブで、[ホワイトリストの作成] をクリックします。 [ホワイトリストの作成] ダイアログボックスで、[ホワイトリスト名] パラメータと [IP アドレス] パラメータを構成します。 [IP アドレス] パラメータを
100.104.0.0/16に設定します。
インスタンスの ID と内部ポートをクエリします。
インスタンスページの左側のナビゲーションウィンドウで、[基本情報] をクリックします。 [基本情報] ページで、[インスタンス ID] を見つけてコピーします。

インスタンスページの左側のナビゲーションウィンドウで、[データベース接続] をクリックします。 [データベース接続] ページで、[内部ポート] を表示してコピーします。

インスタンスの
VpcIdパラメータとVpcCloudInstanceIdパラメータの値をクエリします。OpenAPI Explorer にアクセスします。 セクションで、[DBInstanceId] パラメータを見つけて、コピーしたインスタンス ID を貼り付けます。 API 操作の詳細については、「DescribeDBInstanceAttribute」をご参照ください。

[呼び出し開始] をクリックします。 [レスポンス] タブで、
VpcIdパラメータとVpcCloudInstanceIdパラメータの値をコピーします。
ステップ 2: ジョブのソース Logstore でデータ変換ジョブを有効にする
Simple Log Service コンソール にログオンします。
データ変換ページに移動します。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
タブで、管理するログストアをクリックします。
ログストアのクエリと分析ページで、[データ変換] をクリックします。

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

取得した詳細パラメータを構成します。
ページの右上隅にある [詳細設定] を選択します。 次に、[データのプレビュー] をクリックします。

[プレビュー設定の追加] パネルで、[詳細オプション] をクリックし、詳細パラメータを構成します。 次の表にパラメータを示します。
重要以下のパラメータの
your_nameは、カスタム値に置き換えることができます。 パラメータには同じ値を使用してください。 また、構成するデータ変換ルールのコードでyour_nameをこの値に置き換える必要があります。 詳細については、「変換ルール」をご参照ください。パラメータ
値
説明
config.vpc.vpc_id.your_name
vpc-uf6mskb0b****n9yj
インスタンスの VPC(Virtual Private Cloud) ID。
詳細については、「インスタンスの VPC ID をクエリする」をご参照ください。
config.vpc.instance_id.your_name
rm-uf6e61k****ahd7-2024091513
インスタンスの ID。
詳細については、「インスタンス ID をクエリする」をご参照ください。
同じ Alibaba Cloud リージョンにある自己管理 MySQL データベースの場合は、config.vpc.instance_ip.your_name パラメータを使用して VPC IP アドレスを指定します。
config.vpc.instance_port.your_name
3306
インスタンスの内部ポート。
詳細については、「内部ポートを取得する」をご参照ください。
次の図は、構成例を示しています。

構成を確認し、[OK] をクリックします。
データ変換ルールを構成します。
次の構文に基づいて、コードエディタに変換ステートメントを指定します。
詳細については、「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")), "データベースアカウント", "データベースパスワード", "データベース名", table="データベースに必要なテーブルの名前" ), "フィールド", "出力フィールド" )次の図は、変換ステートメントを示しています。
データ変換ルールを作成した後、システムはソース Logstore の
process_time_in_msフィールドの値を ApsaraDB RDS for MySQL テーブルの対応する値と照合します。 一致した場合は処理が成功し、modelフィールドとpurchase_priceフィールドの値が返されます。 未加工のログデータと出力フィールド値に基づいて新しいログが生成されます。
データ変換ページの右上隅にある [データのプレビュー] をクリックして、データを変換します。

[変換結果] を表示します。
次の図は、一致に失敗した場合に返される変換結果の例を示しています。

次の図は、一致に成功した場合に返される変換結果の例を示しています。

ステップ 3: 変換結果をジョブの宛先 Logstore に保存する
[変換ジョブとして保存(旧バージョン)] をクリックします。 表示されるパネルでパラメータを構成し、[OK] をクリックします。

[ログストア] タブで、宛先ログストアをクリックします。 表示されるページの右上隅で、クエリ時間範囲を指定します。
クエリ時間範囲を指定した後、[未加工ログ] タブで変換結果が保存されているかどうかを確認できます。 次の図は、変換結果が保存されていることを示しています。

付録: 内部エンドポイント経由で 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 形式の値に設定し、このトピックの指示に従って他のパラメータを構成します。

PolarDB for MySQL データベース: このトピックの指示に従ってパラメータを構成します。