tencent cloud

Cloud Log Service

加工タスクの作成

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 15:02:20
AI翻訳
本稿では、加工タスクの作成方法についてご紹介します。

前提条件

CLSを有効化し、ソースログトピックを作成し、ログデータを正常に収集します。
ターゲットログトピックを作成しました。ターゲットログトピックは空のトピックにすることをお勧めします。これにより、加工済みデータの書き込みが容易になります。
現在の操作アカウントにデータ加工タスクを設定する権限があることを確認してください。詳細はCLSアクセスポリシーテンプレートをご参照ください。

操作手順

1. CLSコンソールにログインし、左側のナビゲーションバーでデータ加工を選択します。
2. 新規作成をクリックします。基本情報を設定します:
前置データ加工
非前置データ加工
データ加工の価値:
前置加工でログフィルタリングを行うことで、ログインデックストラフィック、インデックスストレージ量、ログストレージ量を効果的に削減できます。
前置データ加工の使用シナリオ:
ログをCLSに収集するには、まずデータ加工(フィルタリング、構造化)を行い、それからログトピックに書き込む必要があります。例えば、ログトピック名が「test」で、LogListenerを使用してデータを収集した場合、loglevel="Error"のログを「test」に書き込み、その他のログは報告しないようにするには、前置データ加工タスク「my_transform」を作成して実行します。


説明:
各ログトピックには1つの前置加工タスクのみを設定できます。
前置加工では、複数の固定ログトピックまたは動的ログトピックへのログ分散を現時点ではサポートしていません。そのため、前置加工タスクでlog_output関数とlog_auto_output関数を使用できません。
収集設定を追加または変更すると、収集データが変化するため、前置加工の加工ステートメントも同時に調整する必要があります。
前置加工タスクと非前置加工タスクは相互に変換することはできません。

設定項目:

設定項目
説明
タスク名
データ加工タスクの名前。例:my_transform。
有効状態
タスクの起動/停止。デフォルトは起動です。
前段データ加工
スイッチをオンにします。
前段データ加工の機能入口:
入口1:データ加工タスクを新規作成する際に、前置データ加工のスイッチをオンにします。
入口2:収集設定ページの下部にあるデータ加工をクリックして、前置データ加工編集ページに移動することもできます。
ログトピック
前段加工結果の書き込み先ログトピックを指定します。
外部データの関連付け
外部データソースを追加できます。ディメンションテーブルのjoinシナリオに使用できます。現在はTencent Cloud MySQLのみをサポートしています。詳細はres_rds_mysql関数を参照してください。
地域:TencentDB for MySQLの所在地域
TencentDB for MySQLインスタンス:ドロップダウンメニューで選択してください。
ユーザー名/パスワード:データベースのユーザー名/パスワードを入力してください。データ加工に必要なのはクエリ権限のみで、編集および削除権限は不要です。設定方法についてはTencentDB for MySQLのアカウント権限変更をご参照ください。アカウント情報を適切に保管し、漏洩しないようにしてください。
别名:お客様のMySQLの別名であり、res_rds_mysqlでこの別名をパラメータとして使用します。
データ加工サービスログ
データ加工タスクの実行ログは、cls_service_logサービスのログトピック(無料)に保存されます。データ加工タスクの監視グラフにおけるアラート機能はこのログトピックに依存し、デフォルトで有効になっています。
加工失敗ログをアップロードします。
有効にすると、加工に失敗したログはターゲットトピックに書き込まれます。無効にすると、加工に失敗したログは破棄されます。
加工失敗ログフィールド名
加工に失敗したログをターゲットログトピックに書き込むことを選択した場合、失敗ログはこのフィールドに保存されます。フィールド名のデフォルトはETLParseFailureです。
詳細設定
環境変数を追加:データ加工タスク実行時の環境変数を追加します。
例えば、変数のペアを追加します。名前はENV_MYSQL_INTERVAL、値は300です。その後、res_rds_mysql関数でrefresh_interval=ENV_MYSQL_INTERVALを使用すると、タスクはrefresh_interval=300として解析されます。
非前置データ加工は主にログ分散のシナリオで使用されます:
固定ログトピックへ配信するユースケース。
配信先のターゲットログトピックが確定しているシナリオです。例:ソースログトピック内のloglevel=warningログを「WARNING」という名前のログトピックに出力し、loglevel=errorログを「ERROR」という名前のログトピックに出力し、loglevel=infoのログを「INFO」という名前のログトピックに出力します。log_output関数をご参照ください。

動的ログトピックへ配信するユースケース。
配信先のログトピックが多数ある場合や特定できない場合に使用します。例:ログに「AppName」というKey(フィールド)があり、このフィールドは業務上の理由で時間の経過とともにValueが継続的に追加されます。その場合、「AppName」に基づいてログを配信する必要があるため、このオプションの使用が適しています。log_auto_output関数をご参照ください。

設定項目:
固定ログトピックへの配布
動的ログトピックへの配布
設定項目
説明
タスク名
データ加工タスクの名前です。例:my_transform。
有効状態
タスクの起動/停止。デフォルトは起動です。
前段データ加工
スイッチをオフにします。
ソースログトピック
データ加工タスクのデータソースです。
外部データの関連付け
外部データソースを追加できます。ディメンションテーブルのjoinシナリオに使用できます。現在はTencent Cloud MySQLのみをサポートしています。詳細はres_rds_mysql関数を参照してください。
地域:TencentDB for MySQLの所在地域。
TencentDB for MySQLインスタンス:ドロップダウンメニューで選択してください。
ユーザー名/パスワード:データベースのユーザー名/パスワードを入力してください。データ加工に必要なのはクエリ権限のみで、編集および削除権限は不要です。設定方法についてはTencentDB for MySQLのアカウント権限変更をご参照ください。アカウント情報を適切に保管し、漏洩しないようにしてください。
别名:お客様のMySQLの別名であり、res_rds_mysqlでこの別名をパラメータとして使用します。
処理時間範囲
データ加工処理の対象ログ範囲を指定します。
注意:
ログトピックのライフサイクル内のデータのみを処理します。
ターゲットログトピック
固定ログトピックを選択します。
日志主题:データ加工結果の出力先であり、1つまたは複数に設定できます。
ターゲットトピックの归属:現在のアカウント/他のメインアカウントのログトピックを選択できます。
現在のアカウント
その他のメインアカウント
加工結果は現在のアカウントのログトピックに書き込まれます。
加工結果を他のメインアカウントのログトピックに書き込みます
。例えば、Aアカウントのソースログトピックを加工した後、Bアカウントのログトピックに書き込む場合、BアカウントがCAM(アクセス管理)側でアクセスロールを設定する必要があります。設定完了後、AアカウントがロールARNと外部IDをCLSコンソールに入力することで、加工結果をBアカウントのログトピックに書き込むことができます。ロールの設定手順は以下の通りです:
1. ロールを新規作成します。アカウントBでCAMロール管理ページにログインします。
1.1 クロスアカウントアクセスポリシーを新規作成します。ポリシー名の例:cross_account、ポリシー構文は以下の通りです:
説明:
例示の承認は最小権限の原則に従い、resourceは加工結果をBアカウントが指定した特定のログトピックにのみ書き込めるように設定されています。実際の状況に応じて承認してください。

{
"statement": [
{
"action": [
"cam:GetRole",
"cam:GetPolicy",
"cam:ListAttachedRolePolicies"
],
"effect": "allow",
"resource": [
"*"
]
},
{
"action": [
"cls:UploadLog",
"cls:DescribeTopics"
],
"effect": "allow",
"resource": [
「qcs::cls::uin/${BアカウントID}:topic/${Bアカウントが指定した特定のログトピックID}」
]
}
],
"version": "2.0"
}
1.2 ロールを新規作成し、Tencent Cloudアカウントロールキャリアを選択し、クラウドアカウントタイプで他のメインアカウントを選択し、AアカウントのIDを入力します。例えば10001234567です。検証を有効にするにチェックを入れて外部IDを設定します。例えばHello123です。
1.3 ロールポリシーを設定し、ロールのアクセスポリシーを設定します。最初の手順で設定したアクセスポリシーcross_account(例)を選択します。
1.4 このロールを保存します。例:A_ds-cross-account_B。
2. ロールにキャリアを設定します。CAMロール一覧でA_ds-cross-account_B(例)を見つけ、そのロールをクリックし、下部のロールキャリア>キャリア管理>プロダクトサービスの追加>CLSを選択を選択し、更新をクリックします。
現在のロールのキャリアは2つあることが確認できます:1つはAアカウントで、もう1つはcls.cloud.tencent.com(CLS)です。
3. AアカウントでCLSにログインし、ロールARNと外部IDを入力します。
この2つの情報はBアカウントが提供する必要があります:
BアカウントはCAMロール一覧でロールA_ds-cross-account_B(例)を見つけます。クリックするとそのロールのRoleArnを確認できます。例えばqcs::cam::uin/${BアカウントID}:roleName/A_ds-cross-account_Bです。
ロールキャリアで外部IDを確認できます。例えばHello123です。
注意:
ロールARN、外部IDを入力する際は、余分なスペースを入力しないように注意してください。権限検証が失敗する原因になります。
アカウントをまたいでターゲットログトピックに書き込むと、Bアカウントでログ書き込みトラフィック料金が発生します。データ加工の料金はAアカウントに計上されます。
ターゲット名:例えばソースログトピック内で、loglevel=warningログをログトピックAに出力し、loglevel=errorログをログトピックBに出力し、loglevel=infoのログをログトピックCに出力します。ログトピックA、B、Cのターゲット名をそれぞれwarning、error、infoに設定できます。
データ加工サービスログ
データ加工タスクの実行ログは、cls_service_logサービスのログトピック(無料)に保存されます。データ加工タスクの監視グラフにおけるアラート機能はこのログトピックに依存し、デフォルトで有効になっています。
加工失敗ログをアップロードします。
有効にすると、加工に失敗したログはターゲットトピックに書き込まれます。無効にすると、加工に失敗したログは破棄されます。
加工失敗ログフィールド名
加工に失敗したログをターゲットログトピックに書き込むことを選択した場合、失敗ログはこのフィールドに保存されます。フィールド名のデフォルトはETLParseFailureです。
詳細設定
環境変数を追加:データ加工タスク実行時の環境変数を追加します。
例えば、変数のペアを追加します。名前はENV_MYSQL_INTERVAL、値は300です。その後、res_rds_mysql関数でrefresh_interval=ENV_MYSQL_INTERVALを使用すると、タスクはrefresh_interval=300として解析されます。
設定項目
説明
タスク名
データ加工タスクの名前です。例:my_transform。
有効状態
タスクの起動/停止。デフォルトは起動です。
前段データ加工
スイッチをオフにします。
ソースログトピック
データ加工タスクのデータソースです。
外部データの関連付け
外部データソースを追加できます。ディメンションテーブルのjoinシナリオに使用できます。現在はTencent Cloud MySQLのみをサポートしています。詳細はres_rds_mysql関数を参照してください。
地域:TencentDB for MySQLの所在地域。
TencentDB for MySQLインスタンス:ドロップダウンメニューで選択してください。
ユーザー名:データベースのユーザー名を入力してください。
パスワード:データベースのパスワードを入力してください。
别名:お客様のMySQLの別名であり、res_rds_mysqlでこの別名をパラメータとして使用します。
処理時間範囲
データ加工処理の対象ログ範囲を指定します。
注意:
ログトピックのライフサイクル内のデータのみを処理します。
ターゲットログトピック
動的ログテーマを選択します。ターゲットログテーマを設定する必要はありません。指定されたフィールド値に基づいて自動的に生成されます。
超過時処理
データ加工タスクで生成されたトピック数が製品仕様を超えた場合、以下を選択できます。
兜底ログセットとログトピックを作成し、ログを兜底トピックに書き込みます(タスク作成時に作成します)。
兜底ログセット:auto_undertake_logset、単一リージョン単一アカウントにつき1つです。
兜底ログトピック:auto_undertake_topic_$(データ加工タスク名)。例えばユーザーが2つのデータ加工タスクetl_Aとetl_Bを作成した場合、auto_undertake_topic_etl_A、auto_undertake_topic_etl_Bという2つの兜底トピックが生成されます。
ログデータを破棄:兜底トピックを作成せず、ログを直接破棄します。
データ加工サービスログ
データ加工タスクの実行ログは、cls_service_logサービスのログトピック(無料)に保存されます。データ加工タスクの監視グラフにおけるアラート機能はこのログトピックに依存し、デフォルトで有効になっています。
加工失敗ログをアップロードします。
有効にすると、加工に失敗したログはターゲットトピックに書き込まれます。無効にすると、加工に失敗したログは破棄されます。
加工失敗ログフィールド名
加工に失敗したログをターゲットログトピックに書き込むことを選択した場合、失敗ログはこのフィールドに保存されます。フィールド名のデフォルトはETLParseFailureです。
詳細設定
環境変数を追加:データ加工タスク実行時の環境変数を追加します。
例えば、変数のペアを追加します。名前はENV_MYSQL_INTERVAL、値は300です。その後、res_rds_mysql関数でrefresh_interval=ENV_MYSQL_INTERVALを使用すると、タスクはrefresh_interval=300として解析されます。
3. 設定が完了したら、次へをクリックします。
4. 加工ステートメントを編集/デバッグします。ページ左下に元のログとテストデータの2つのタブが表示され、ページ右下に加工結果が表示されます。元の/テストデータと加工結果を比較することで、加工ステートメントをデバッグできます。
元のログ:システムが元のログデータを自動的に読み込みます。デフォルトは100件です。
テストデータ:システムがランダムに読み込んだ元のデータは、お客様のデバッグ要件を満たさない可能性があります。その場合、元のデータタブで「テストデータに追加」をクリックし、元のログをテストデータに追加します。その後、テストデータタブでこれらのデータを変更し、お客様のデバッグ要件を満たすようにします。
ステートメントモードまたはインタラクティブモードを選択して、加工ステートメントを作成できます。
ステートメントモード
インタラクティブモード
方法1:AIを使用して加工ステートメントを生成します(推奨)
元のログ右上にあるAIアイコンをクリックすると、その元のログをCLS AIアシスタントのダイアログボックスに追加できます。次に自然言語で加工要件を記述します。例えば「Loglevel=Errorのログを保持する」「このログを構造化する」などです。その後、送信アイコンをクリックすると、AIアシスタントが加工ステートメントを提示します。そのステートメントを加工ステートメント編集ボックスにコピーできます。AIが提示したステートメントが正確でない場合は、複数回の対話を通じて正確な加工ステートメントを取得できます。例を以下に示します。
元のログにある加工対象のログ:
{
"content": "[2021-11-24 11:11:08,232][328495eb-b562-478f-9d5d-3bf7e][INFO] curl -H 'Host: ' http://abc.com:8080/pc/api -d {\\"version\\": \\"1.0\\",\\"user\\": \\"CGW\\",\\"password\\": \\"123\\"}"
}
AIとの複数回の対話:
対話ターン
ユーザー質問
AIアシスタント回答
第一ラウンドの対話
このログを構造化します。
// 時間、リクエストID、ログレベルを抽出します。
ext_regex("content", regex="\\[(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3})\\]\\[(\\w+-\\w+-\\w+-\\w+-\\w+)\\]\\[([A-Z]{4})\\]", output="time,requestid,level")
// リクエストURLを抽出します。
ext_regex("content", regex="curl -H 'Host: ' (http://[^\\s]+)", output="url")
// リクエストボディ内のJSONデータを抽出します。
ext_json("content", prefix="request_")
第2ラウンドの対話
contentは標準のJSONではありません。ext_jsonを使用するとエラーが発生します。まずcontent内のJSON部分を抽出してから、そのJSONからノードを抽出してください。
// ステップ1:JSON部分を抽出します。
ext_regex("content", regex=" -d (\\{.*\\})", output="json_content")

// ステップ2:抽出したJSONからフィールドを解析します。
ext_json("json_content")

// ステップ3:中間フィールドを削除します。
fields_drop("json_content")
加工結果:
{
"level":"INFO",
"password":"123",
"requestid":"328495eb-b562-478f-9d5d-3bf7e",
"time":"2021-11-24 11:11:08,232",
"user":"CGW",
"version":"1.0"
}
方法2:ステートメントを手動で作成します
データ加工実践事例または関数概要を参照してください。
加工ステートメントの編集ページでインタラクティブモードに切り替えることができます。
追加可視化関数:

をクリックし、追加する可視化関数のカテゴリと可視化関数名を選択します。
デバッグ可視化関数:可視化関数の右上にある▶️をクリックします。
削除可視化関数:可視化関数の右上にあるXをクリックします。
編集可視化関数:可視化関数の右上にある

をクリックします。
現在サポートされている可視化関数は以下の通りです:
関数カテゴリ
可視化関数名
適用シナリオ
キー値を抽出します。
JSON:JSONノードからフィールドとフィールド値を抽出します。
区切り文字:区切り文字に基づいてフィールド値を抽出します。フィールド名を入力する必要があります。
正規表現:正規表現式に基づいてフィールド値を抽出します。フィールド名を入力する必要があります。
ログの構造化
ログ処理
ログのフィルタリング:ログをフィルタリングする条件を設定します(複数の条件はORの関係です)。例えば、フィールドAが存在する場合、またはフィールドBが存在しない場合、そのログはフィルタリングされます。
ログ配信:ログ配信の条件を設定します。
例えば、status="error"かつmessageに「404」が含まれるログは、Aトピックに振り分けます。
例えば、status="running"かつmessageに「200」が含まれるログは、Bトピックに振り分けます。
ログ保持:ログ保持の条件を設定します。
ログの削除/保持
フィールド処理
フィールドを削除します。
フィールド名を変更します。
フィールドの削除/名前変更
詳細な関数の使用例については、可視化関数を参照してください。
DSL加工ステートメントの作成が完了したら、ページ左上のプレビュー実行またはブレークポイントデバッグ(インタラクティブモードでは可視化関数右上の▶️)をクリックして、DSL関数を実行およびデバッグします。実行結果は右側に表示されます。実行結果に基づいてDSLステートメントを調整し、要件を満たすまで調整できます。
注意:
ステートメントモード:すべての加工関数をサポートします。AIを使用して加工ステートメントを作成することをお勧めします。
インタラクティブモード:一部の関数のみをサポートします。詳細は可視化関数を参照してください。ターゲットログトピックが動的ログトピックに設定されている場合、インタラクティブモードはサポートされません。
5. 確定をクリックして、データ加工タスクを送信します。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック