Scheduled SQL ジョブを作成して、ソース Logstore のデータを処理し、集計結果を送信先の Metricstore に書き込むことができます。
前提条件
-
ソース Logstore でデータを収集済みであること。 詳細については、「データ収集」をご参照ください。
-
ソース Logstore のインデックスを作成済みであること。 詳細については、「インデックスの作成」をご参照ください。
-
送信先の Metricstore を作成済みであること。 詳細については、「Metricstoreの作成」をご参照ください。
このトピックで説明する Logstore は、標準 Logstore です。 詳細については、「Logstoreの管理」をご参照ください。
操作手順
Scheduled SQL 機能はパブリックプレビュー中のため、無料でご利用いただけます。 パブリックプレビューの終了後は、専用 SQL によって消費されるコンピューティングリソースに対して課金されます。 課金の詳細については、「機能別課金モードの課金項目」をご参照ください。
-
Simple Log Service (SLS) コンソールにログインします。
-
プロジェクトリストで、対象のプロジェクトをクリックします。
-
タブで、対象の Logstore をクリックします。
-
クエリと分析のステートメントを入力し、15分間内 をクリックしてクエリと分析の時間範囲を設定します。
詳細については、「ステップ1:インデックスの設定」をご参照ください。
説明このステップでは、Scheduled SQL ジョブをプレビューし、クエリと分析のステートメントが有効で、データが返されることを確認します。
-
グラフ タブで、スケジュールされた SQL として保存 をクリックします。
-
Scheduled SQL ジョブを作成します。
-
計算設定 ウィザードで、次のパラメーターを設定し、次へ をクリックします。
パラメーター
説明
[タスク名]
一意の Scheduled SQL ジョブ名。
[表示名]
Scheduled SQL ジョブの表示名。
[ジョブの説明]
Scheduled SQL ジョブの説明。
[リソースプール]
SLS は、データ分析のために拡張リソースプールを提供します。
拡張リソースプールは、専用 SQL のコンピューティング性能を再利用し、分析に十分な同時実行数を提供し、コンソールでの SQL 分析操作からリソースを分離します。 拡張リソースプールは、SQL 分析で消費された CPU 時間に基づいて課金されます。 詳細については、「高性能・高精度なクエリと分析 (専用 SQL)」をご参照ください。
[書き込みモード]
ログストアからメトリクスストアへのデータのインポート を選択すると、ソース Logstore のデータが処理され、送信先の Metricstore に保存されます。
[SQL コード]
ステップ 4 で入力したクエリと分析のステートメントが表示されます。 結果をプレビューして、ステートメントが有効で、データが返されることを確認できます。
ジョブが実行されると、SLS はこのステートメントを実行してデータを分析します。
[SQL の設定]
[メトリクス列]
SLS は、クエリと分析のステートメントに基づいてデータを集計します。 クエリと分析の結果から、1つ以上の数値型の列をメトリック列として選択できます。 詳細については、「時系列データ」をご参照ください。
ラベル
SLS は、クエリと分析のステートメントに基づいてデータを集計します。 クエリと分析の結果から、1つ以上の列をラベルとして選択できます。 詳細については、「時系列データ」をご参照ください。
リハッシュ
[リハッシュ] を有効にすると、ハッシュ列 を設定できます。 これにより、ハッシュ列で同じ値を持つデータが単一のシャードに書き込まれ、データ局所性とクエリ効率が向上します。
ハッシュ列 の値は、クエリと分析の結果に依存します。 クエリと分析の結果から1つ以上の列を選択して、ハッシュ列として使用できます。 たとえば、ハッシュ列 を
statusに設定すると、statusフィールドの値が同じデータが同じシャードに書き込まれます。[時間カラム]
-
UNIX タイムスタンプを含む列 (例:
atime:1627025331) を選択した場合、システムはこれらの値を時系列データのタイムスタンプとして使用します。 -
空 を選択した場合、システムはクエリと分析の時間範囲の開始時刻を時系列データのタイムスタンプとして使用します。
詳細については、「時系列データ」をご参照ください。
[ラベルを添付する]
キーと値のペアで静的なラベルを追加して、メトリクスの関連属性を識別します。
たとえば、
label_keyをappに、label_valueをingress-nginxに設定します。[ソースプロジェクト/ソース Logstore]
ソースデータが存在するプロジェクトと Logstore が表示されます。
[対象]
[Destination Region]
送信先のプロジェクトが配置されているリージョン。
[ターゲットプロジェクト]
SQL 分析結果が保存される送信先のプロジェクトの名前。
[ターゲットデータベース]
SQL 分析結果が保存される送信先の Metricstore の名前。
警告送信先ストアを現在のソースストアとして設定しないでください (同一ソース設定)。 そうしないと、ログがループで書き込まれ、追加のストレージコストとトラフィックコストが発生する可能性があります。 発生したリソース消費とコストはお客様の負担となります。
[書き込み権限]
次のいずれかの方法を使用して、Scheduled SQL ジョブに送信先の Metricstore へのデータ書き込み権限を付与します。
-
[Default Role]:Scheduled SQL ジョブがシステムロール AliyunLogETLRole を使用して、実行結果を送信先の Metricstore に書き込むことを許可します。
-
[Custom Role]:Scheduled SQL ジョブがカスタムロールを使用して、実行結果を送信先の Metricstore に書き込むことを許可します。
最初にカスタム RAM ロールに必要な権限を付与し、その ARN をRole ARN フィールドに入力する必要があります。 詳細については、「カスタム RAM ロールに送信先 Logstore へのデータ書き込み権限を付与する」をご参照ください。
[SQL実行権限]
次のいずれかの方法を使用して、Scheduled SQL ジョブに、ソース Logstore からのデータ読み取りと、現在のプロジェクトでの SQL 分析操作の実行を許可します。
-
[Default Role]:Scheduled SQL ジョブがシステムロール AliyunLogETLRole を使用して、必要な操作を実行することを許可します。
-
[Custom Role]:Scheduled SQL ジョブがカスタムロールを使用して、必要な操作を実行することを許可します。
最初にカスタムロールに必要な権限を付与し、その ARN をRole ARN フィールドに入力する必要があります。 詳細については、「カスタム RAM ロールにソース Logstore のデータ分析権限を付与する」をご参照ください。
-
-
スケジュール設定 ウィザードで、次のパラメーターを設定し、OK をクリックします。
パラメーター
説明
[スケジュール間隔の指定]
ジョブが実行される頻度。 スケジュールされた実行ごとに実行インスタンスが生成され、この間隔によって各インスタンスがいつスケジュールされるかが決まります。
-
固定間隔:固定間隔でジョブをスケジュールします。
-
[Cron]:cron 式に基づいてジョブをスケジュールします。
cron 式の最小精度は 1 分です。 時刻は24時間形式です。 たとえば、
0 0/1 * * *は、ジョブが毎時0分に実行されることを示します。タイムゾーンを設定する必要がある場合は、[Cron] を選択します。 一般的なタイムゾーンのリストについては、「タイムゾーン形式」をご参照ください。
[スケジュール期間]
ジョブがスケジュールされる時間範囲。 次のオプションが利用可能です。
-
特定の時間に開始されます:最初の実行インスタンスの開始時刻を指定します。
-
指定期間内:スケジューリングの開始時刻と終了時刻を指定します。 ジョブはこの時間範囲内でのみ実行できます。
説明-
実行インスタンスのスケジュール時刻は、この範囲内である必要があります。 スケジュール時刻がこの範囲外になると、ジョブは新しいインスタンスの生成を停止します。
-
スケジューリング時間範囲は、
__time__予約済みフィールドに対応します。 詳細については、「予約済みフィールド」をご参照ください。
[SQL タイムウィンドウ]
Scheduled SQL ジョブの実行時に分析されるログの時間範囲。 SQL タイムウィンドウは、実行インスタンスのスケジュール時刻と連動して機能します。 時間範囲はスケジュール間隔の指定 の5倍を超えることはできず、1 日を超えることはできません。 詳細については、「時間表現構文」をご参照ください。
たとえば、スケジュール間隔の指定 が [10分の固定間隔]、開始日時 が [2021-04-01 00:00:00]、タスクの延期 が [30秒]、SQL タイムウィンドウ が [@m-10m,@m) の場合、最初の実行インスタンスは 00:00:30 に生成されます。 これは、時間範囲
[23:50:00, 00:00:00)のログを分析します。 詳細については、「スケジューリングと実行のシナリオ」をご参照ください。説明-
SQL タイムウィンドウは、
__time__予約済みフィールドに対応します。 詳細については、「予約済みフィールド」をご参照ください。 -
SQL コードで
__time__が定義されていない場合、送信先の Metricstore に書き込まれるデータの__time__は、デフォルトで SQL タイムウィンドウの開始時刻になります。
[SQL タイムアウト]
失敗した SQL 分析操作を再試行するためのタイムアウト。 操作が失敗した場合、システムは自動的に再試行します。 再試行がこのタイムアウトまたは最大再試行回数を超えると、インスタンスは停止し、そのステータスは「失敗」に変わります。 その後、失敗の原因に基づいてインスタンスを手動で再試行できます。 詳細については、「Scheduled SQL ジョブインスタンスの再試行」をご参照ください。
[タスクの延期]
スケジュール時刻から実行を遅延させる時間 (秒単位)。 値は 0 から 120 までの整数である必要があります。
Metricstore へのデータインジェストが遅延する場合に、データの完全性を確保するために実行遅延を使用します。
Scheduled SQL ジョブを作成した後、送信先の Metricstore で実行結果を表示できます。
-
-