このトピックでは、リソース関数を使用してObject Storage Service (OSS) からデータをプルし、マッピング関数を使用してデータフィールドをLog Serviceのデータフィールドにマッピングする方法について説明します。 これにより、log Serviceのログデータを強化できます。
始める前に
OSSバケットにアクセスするためのAccessKeyペアが作成されます。 詳細については、「AccessKey ペアの作成」をご参照ください。
OSSバケットに対する読み取り専用権限を持つAccessKeyペアと、OSSに対する書き込み専用権限を持つAccessKeyペアを作成することを推奨します。 これにより、最初のAccessKeyペアを使用してOSSバケットからデータを読み取り、2番目のAccessKeyペアを使用してOSSバケットにデータを書き込むことができます。 詳細については、「RAMポリシー」をご参照ください。
カンマ区切り値 (CSV) ファイルがOSSバケットにアップロードされます。 詳細については、「オブジェクトのアップロード」をご参照ください。
ファイルをアップロードするには、OSSバケットに対する書き込み専用権限を持つAccessKeyペアを使用することを推奨します。
このタスクについて
OSSは、大量のデータをクラウドに保存するための、安全で費用対効果の高い信頼性の高いサービスを提供します。 更新頻度の低いデータをOSSバケットに保存することを推奨します。 データストレージに対してのみ課金されます。 ログデータが分散されて不完全な場合は、OSSを使用してデータを強化できます。 Log Serviceのデータ変換機能は、データを変換するための複数の機能を提供します。 res_oss_file 関数を使用してOSSからデータをプルし、tab_parse_csv関数を使用してテーブルを作成できます。 次に、e_table_map関数を使用して、指定されたフィールドを一致させ、指定されたフィールドとフィールド値を返し、新しいログエントリを生成できます。
例
生のログエントリ
account : Sf24asc4ladDS
OSSのCSVデータ
id
アカウント
ニックネーム
1
Sf24asc4ladDS
Doflamingo
2
Sf24asc4ladSA
海道
3
Sf24asc4ladCD
Roger
変換ルール
Log Serviceは、指定されたLogstoreのaccountフィールドを、指定されたCSVファイルのaccountフィールドにマップします。 指定されたOSSバケットとLogstoreのaccountフィールドの値が互いに等しい場合、2つのフィールドが一致し、CSVファイルのニックネームフィールドとフィールド値が指定されたLogstoreのフィールドと連結されます。
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")
次の表に、res_oss_file関数のフィールドを示します。
フィールド
説明
endpoint
OSSのエンドポイント。 詳細については、「リージョンとエンドポイント」をご参照ください。
ak_id
OSSの読み取り権限を持つAccessKey ID。
セキュリティ上の懸念から、値をres_local("AK_ID") に設定することを推奨します。 この値は、Log Serviceで設定した [詳細パラメーター設定] フィールドからAccessKey IDを取得することを示します。 詳細パラメーター設定フィールドの設定方法については、「データ変換ジョブの作成」をご参照ください。
ak_key
OSSの読み取り権限を持つAccessKeyシークレット。
セキュリティ上の懸念から、値をres_local("AK_KEY") に設定することを推奨します。 この値は、Log Serviceで設定した [詳細パラメーター設定] フィールドからAccessKeyシークレットを取得することを示します。
bucket
CSVファイルの保存に使用されるOSSバケット。
file
アップロードされたCSVファイルの名前。
結果
account : Sf24asc4ladDS nickname: Doflamingo