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データベースのテーブル内のサンプルデータレコード
県
市
人口
cid
eid
上海
上海
2000
1
00001
天津
天津
800
1
00002
北京
北京
4000
1
00003
河南省
鄭州
3000
2
00004
江蘇
南京
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フィールドをテーブルのcidフィールドと一致させることができます。 cidフィールドの値がLogstoreとテーブルで同じ場合、ログはデータレコードと一致します。 次に、テーブル内の一致したデータレコードの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"