Simple Log Service (SLS) のデータ変換機能は、ApsaraDB RDS for MySQL データベースからデータをフェッチし、変換ルールに基づいてログデータをエンリッチできます。
背景情報
データは複数のソースに分散して保存されることがよくあります。たとえば、ユーザーの操作や行動に関するデータは Simple Log Service に保存され、ユーザープロファイルや登録情報は ApsaraDB RDS for MySQL インスタンスに保存されている場合があります。Simple Log Service のデータ変換機能を使用すると、ApsaraDB RDS for MySQL インスタンスからデータをフェッチし、エンリッチしたデータを Logstore に保存できます。
res_rds_mysql 関数で ApsaraDB RDS for MySQL データベースからデータをフェッチし、e_table_map 関数でデータをエンリッチします。
-
ApsaraDB RDS for MySQL インスタンスは、Simple Log Service プロジェクトと同じリージョンにある必要があります。それ以外の場合、データベースからデータをフェッチできません。
-
ApsaraDB RDS for MySQL データベースには、インスタンスの内部エンドポイントを使用してアクセスできます。詳細については、「Simple Log Service を使用して ApsaraDB RDS for MySQL インスタンスに接続してデータエンリッチメントを実行する」をご参照ください。
e_table_map 関数を使用したデータエンリッチメント
次の例では、e_table_map 関数と res_rds_mysql 関数を使用してデータをエンリッチします。
-
生データ
-
ApsaraDB RDS for MySQL データベースのテーブルのサンプルデータレコード
province
city
population
cid
eid
Shanghai
Shanghai
2000
1
00001
Tianjin
Tianjin
800
1
00002
Beijing
Beijing
4000
1
00003
Henan
Zhengzhou
3000
2
00004
Jiangsu
Nanjing
1500
2
00005
-
Simple Log Service の Logstore からのサンプルログ:
time:"1566379109" data:"test-one" cid:"1" eid:"00001" time:"1566379111" data:"test_second" cid:"1" eid:"12345" time:"1566379111" data:"test_three" cid:"2" eid:"12345" time:"1566379113" data:"test_four" cid:"2" eid:"12345"
-
-
変換ルール
Logstore の cid フィールドと、ApsaraDB RDS for MySQL テーブルの cid フィールドが照合されます。cid の値が一致した場合にのみ、照合が成功します。照合が成功すると、データベーステーブルから province、city、population フィールドがフェッチされ、Logstore データと結合されます。
説明-
テーブル内で複数の行が一致する場合、e_table_map 関数は最初に一致したレコードのみを返します。この例では、テーブルの cid フィールドには複数の 1 という値が存在します。
e_table_map(res_rds_mysql(address="rds-host", username="mysql-username",password="xxx",database="xxx",table="xx",refresh_interval=60),"cid",["province","city","population"])res_rds_mysql 関数で ApsaraDB RDS for MySQL データベースを構成する方法の詳細については、「res_rds_mysql」をご参照ください。
-
-
変換結果
time:"1566379109" data:"test-one" cid:"1" eid:"00001" province:"Shanghai" city:"Shanghai" population:"2000" time:"1566379111" data:"test_second" cid:"1" eid:"12345" province:"Shanghai" city:"Shanghai" population:"2000" time:"1566379111" data:"test_three" cid:"2" eid:"12345" province:"Henan" city:"Zhengzhou" population:"3000" time:"1566379113" data:"test_four" cid:"2" eid:"12345" province:"Henan" city:"Zhengzhou" population:"3000"