リソース関数とマッピング関数を使用して Object Storage Service (OSS) から CSV ファイルを取得し、そのフィールドを Log Service のログと結合して、不完全なログデータを参照情報でエンリッチします。
背景情報
OSS は、アカウントとニックネームのマッピング、IP とリージョンの対応表、エラーコードの説明など、変更頻度の低い参照データの保存に適しています。Log Service のログデータが不完全な場合、OSS の CSV オブジェクトから参照データを取得してエンリッチできます。
データ変換機能では、以下の 3 つの関数を組み合わせて使用します。
res_oss_file — OSS オブジェクトの RAW コンテンツを取得
tab_parse_csv — RAW コンテンツを解析して構造化テーブルに変換
e_table_map — ログ内のフィールドをテーブルと照合し、対応するフィールドをログに追加
前提条件
開始する前に、次の要件が満たされていることを確認してください。
-
OSS バケットにアクセスするための AccessKey を準備します。詳細については、「AccessKey の作成」をご参照ください。
OSS からオブジェクトを取得するための読み取り専用権限を持つ AccessKey と、OSS にオブジェクトをアップロードするための書き込み専用権限を持つ AccessKey の 2 つを作成してください。権限付与の詳細については、「RAM ポリシーの概要」をご参照ください。
-
参照データを含む CSV オブジェクトを OSS バケットにアップロードしてください。詳細については、「オブジェクトのアップロード」をご参照ください。
アップロードには、書き込み専用権限を持つ AccessKey を使用してください。
OSS CSV ファイルを使用したデータエンリッチメント
次の例では、Logstore 内の account フィールドを OSS の CSV オブジェクトと照合し、対応する nickname フィールドを各ログエントリに追加する方法を示します。
-
Logstore 内の生ログ
account : Sf24asc4ladDS -
OSS バケット内の CSV オブジェクトのデータ
Id
Account
Nickname
1
Sf24asc4ladDS
Doflamingo
2
Sf24asc4ladSA
Kaido
3
Sf24asc4ladCD
Roger
-
変換ルール
このルールは、Logstore 内の
accountフィールドを CSV オブジェクトのaccount列と照合します。accountの値が完全に一致した場合にのみ、照合は成功します。一致が見つかると、nicknameフィールドとその値がログに追加されます。e_table_map(tab_parse_csv(res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com', ak_id=res_local("AK_ID"), ak_key=res_local("AK_KEY"), bucket='test', file='account.csv',change_detect_interval=30)), "account","nickname")e_table_mapでは、最初の文字列引数 ("account") は CSV テーブルの行を照合するために使用するフィールドを指定し、2 番目の引数 ("nickname") は一致した行から取得してログに追加するフィールドを指定します。次の表に、
res_oss_fileの主要なパラメーターを示します。すべてのパラメーターについては、「リソース関数」をご参照ください。パラメーター
説明
endpoint
OSS にアクセスするためのエンドポイントです。詳細については、「res_oss_file」をご参照ください。
ak_id
OSS に対する読み取り専用権限を持つ AccessKey ID です。ルールに認証情報を埋め込む代わりに、値を
res_local("AK_ID")に設定して [詳細パラメーター設定] から値を取得します。[詳細パラメーター設定] を設定するには、「データ変換ジョブの作成」をご参照ください。[詳細オプション] セクションで、AK_IDをご自身の AccessKey ID に、AK_KEYをご自身の AccessKey Secret に設定したキーと値のペアを 2 つ追加してください。ak_key
OSS に対する読み取り専用権限を持つ AccessKey Secret です。値を
res_local("AK_KEY")に設定して [詳細パラメーター設定] から取得します。bucket
CSV オブジェクトが保存されている OSS バケットです。
file
ターゲット OSS オブジェクトのパスです (例:
test/data.txt)。パスの先頭にフォワードスラッシュ (/) を含めることはできません。change_detect_interval
Log Service が OSS オブジェクトの変更をチェックする頻度 (秒単位) です。デフォルト値は
0で、定期的なチェックを無効にします。この場合、オブジェクトはデータ変換ジョブの開始時に一度だけ取得されます。ゼロ以外の値を設定すると、定期的なチェックが有効になります。Log Service は変更が検出されるたびにオブジェクトを再取得します。 -
結果
account : Sf24asc4ladDS nickname: Doflamingo