すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:データ変換結果の出力設定

最終更新日:Jul 07, 2026

データ変換タスク (新バージョン) が生成するデータセットの出力先を設定します。これには、プロジェクトまたは Logstore への動的ルーティングや、シャードレベルのハッシュキー割り当てが含まれます。

データセットの概要

データ変換タスク (新バージョン) は、SPL ルールで定義されたデータセットを参照し、それらを 1 つ以上の出力先に書き込みます。名前付きデータセットは名前で参照し、名前なしデータセットは識別子 __UNNAMED__ を使用します。Simple Log Service SPL 構文におけるデータセット定義の詳細については、「General Reference」をご参照ください。

この例では、データ変換タスクは 2 つのデータセット valid__UNNAMED__ を生成します。

-- 名前なしデータセット __UNNAMED__ を出力
*
| where mode is null;

-- 名前付きデータセット src を定義 (出力しない)
.let src = *
| where mode is not null;

-- データセット valid を定義 (出力しない)
.let valid = $src
| where mode = 'a'
| parse-regexp content, '(\S+)\s+(\S+)\s+(\S+)' as x, y, z
| project x, y, z;

-- 名前付きデータセット valid を出力
$valid;

-- 名前なしデータセット __UNNAMED__ を出力
$src
| where mode = 'b'
| parse-csv content as u, v
| project u, v;

プロジェクトまたは Logstore への動적出力

SPL ルールを使用して、出力を特定のプロジェクトまたは Logstore に動的にルーティングできます。動的ルーティングは、以下の予約済みフィールドで制御します。

予約済みフィールド

説明

__tag__:__sls_etl_output_project__

動的出力の送信先プロジェクトを指定します。

__tag__:__sls_etl_output_logstore__

動的出力の送信先 Logstore を指定します。

警告

送信先 Logstore を現在のソース Logstore (同一ソース設定) に設定しないでください。設定した場合、ログの書き込みがループし、追加のストレージコストおよびトラフィックコストが発生する可能性があります。これにより発生したリソースの消費と費用は、お客様の負担となります。

  • 例 1: データ変換結果の送信先プロジェクトを、dst_project フィールドの値として指定します。

    | extend "__tag__:__sls_etl_output_project__"=dst_project

  • 例 2: データ変換結果の送信先 Logstore を、連結文字列として指定します。

    | extend "__tag__:__sls_etl_output_logstore__"=concat('log-', cast(status as VARCHAR))

出力のハッシュキー指定

SPL ルールを使用してハッシュキーを指定し、データ変換結果を Logstore 内の特定のシャードにルーティングできます。ハッシュキーを使用したシャードルーティングの詳細については、「Write Logs」をご参照ください。

__tag__:__sls_etl_output_hash_key__: 出力を送信先 Logstore 内の特定のシャードにルーティングするために使用するハッシュキー。

例:ハッシュ範囲の制限 (本番環境で推奨)

本番環境では、下流の固定数のコンシュームパーティション (256 や 1,024 など) に対応するため、ハッシュ値を切り詰めて固定サフィックスでパディングし、ハッシュキーを特定の範囲に収束させることを推奨します。

シナリオ: 256個の固定シャードアンカーポイントへの収束

MD5 ハッシュの先頭 2 文字を抽出し、その後に 30 個のゼロを連結します。これにより、データ量に関係なく常に 256 の固定ハッシュ境界にデータが書き込まれます。これにより、データ変換における集計処理が容易になり、データ処理効率が向上します。

| extend "__tag__:__sls_etl_output_hash_key__" = concat(substring(to_hex(md5(to_utf8(field))), 1, 2), '000000000000000000000000000000')