Scheduled SQL 機能を使用すると、スケジュールに従ってデータを分析し、集計結果を保存したり、データを射影またはフィルター処理したりできます。Simple Log Service の Scheduled SQL ジョブを使用して、ソース MetricStore のデータを処理し、その結果をターゲット MetricStore に書き込むことができます。
前提条件
-
ソース MetricStore にデータが収集されています。詳細については、「時系列データの取り込み」をご参照ください。
-
ターゲット MetricStore が作成されています。詳細については、「MetricStore の作成」をご参照ください。
操作手順
Scheduled SQL 機能は現在パブリックプレビュー中であり、無料でご利用いただけます。パブリックプレビュー終了後は、専用 SQL リソースプールによって消費されたコンピューティングリソースに対して課金されます。詳細については、機能別課金モデルの課金対象項目をご参照ください。
-
Simple Log Service コンソールにログインします。
-
プロジェクト一覧で、対象のプロジェクトをクリックします。

-
[] タブで、対象のMetricStoreをクリックします。

-
データをクエリおよび分析します。
-
右上隅で、15 分 (相対) をクリックして、クエリの時間範囲を設定します。
-
PromQL 文を入力し、今すぐ実行 をクリックします。
詳細については、「時系列データのクエリと分析」をご参照ください。
説明このステップでは、Scheduled SQL ジョブを作成する前にクエリ結果をプレビューできます。これにより、クエリ文が有効であり、期待されるデータが返されることを確認できます。
-
-
を選択します。

-
Scheduled SQL ジョブを作成します。
-
計算設定 ウィザードで、以下のパラメーターを設定し、次へ をクリックします。
パラメーター
説明
タスク名
Scheduled SQL ジョブの一意な名前です。
表示名
Scheduled SQL ジョブの表示名です。
ジョブの説明
Scheduled SQL ジョブの説明です。
リソースプール
Simple Log Service は、データ分析用の強化型リソースプールを提供しています。
このリソースプールは、専用 SQL リソースプールのコンピューティング能力を再利用し、分析に十分な同時実行数を提供するとともに、コンソールでの SQL 分析操作からリソースを分離します。強化型リソースプールは、SQL 分析で消費された CPU 時間に基づいて課金されます。詳細については、「高性能かつ高精度なクエリと分析 (専用 SQL)」をご参照ください。
書き込みモード
メトリクスストアからメトリクスストアへのデータのインポート を選択すると、Scheduled SQL ジョブでソース MetricStore のデータを処理し、その結果をターゲット MetricStore に書き込みます。
SQL コード
ステップ 4 で入力したクエリと分析文が表示されます。このプレビュー操作はステップ 4 と同じものであり、クエリと分析文が正しいこと、および実行時にデータが返されることを確認するために使用されます。
Scheduled SQL ジョブが実行されると、Simple Log Service はこの文を実行してデータを分析します。
重要MetricStore にメトリックをインポートする際は、各実行で現在の時点のメトリック値のみをインポートすることを推奨します。そのためには、
promql_query関数を使用してください。promql_query_range関数を使用すると、データ量が大幅に膨らむ可能性があります。SQL の設定
結果メトリック名
分析中のメトリックの名前を変更する場合は、新しい名前を入力します。詳細については、「時系列データ (メトリック)」をご参照ください。
重要単一のメトリックを分析している場合にのみ、このパラメーターを使用してメトリック名を変更することを推奨します。
複数のメトリックを分析している場合、このパラメーターによりすべてのメトリックが指定された同じ名前に変更されます。
リハッシュ
リハッシュ をオンにして、ハッシュ列 を設定すると、同じラベル値を持つデータが単一のシャードに書き込まれます。これにより、データ局所性とクエリパフォーマンスが向上します。
ハッシュ列 に指定可能な値は、時系列データに既存のラベルによって異なります。たとえば、ラベルが
{"alert_id":"alert-1608815762-545495","alert_name":"Alert recovery closed","status":"inactive"}の場合、ハッシュ列 に指定可能な値は alert_id、alert_name、および status です。ハッシュ列 を status に設定すると、status ラベルの値が同じデータが同じシャードに書き込まれます。ラベルを添付する
キーと値のペアとして静的ラベルを追加し、メトリックの属性を識別します。
たとえば、label_key を app に、label_value を ingress-nginx に設定します。
対象
Destination Region
ターゲットプロジェクトが配置されているリージョンです。
ターゲットプロジェクト
SQL 分析結果を格納するターゲットプロジェクトの名前です。
ターゲットデータベース
SQL 分析結果を格納するターゲット MetricStore の名前です。
警告送信先ストアを現在のソースストア(同一ソース構成)に設定しないでください。そうしないと、ログがループして書き込まれ、追加のストレージおよびトラフィックコストが発生する可能性があります。リソース消費およびそれに伴うコストについては、お客様ご自身で責任を負う必要があります。
書き込み権限
以下のいずれかの方法で、Scheduled SQL ジョブにターゲット MetricStore へのデータ書き込み権限を付与します。
-
Default Role:Scheduled SQL ジョブは、Default Role システムロールを偽装して、結果をターゲット MetricStore に書き込みます。
重要ターゲットプロジェクトを所有する Alibaba Cloud アカウントがこの権限付与を行う必要があります。この権限付与は、最初に作成するジョブに対してのみ必要です。
-
Custom Role:Scheduled SQL ジョブは、カスタムロールを偽装して、結果をターゲット MetricStore に書き込みます。
まず、カスタムロールにターゲット MetricStore へのデータ書き込み権限を付与する必要があります。その後、Role ARN フィールドに、カスタムロールの ARN を入力します。詳細については、「カスタム RAM ロールに送信先 Logstore へのデータ書き込み権限を付与する」をご参照ください。
SQL実行権限
以下のいずれかの方法で、Scheduled SQL ジョブにソース MetricStore からのデータ読み取りおよび現在のプロジェクト内での SQL 分析を実行する権限を付与します。
-
Default Role:Scheduled SQL ジョブは、Default Role システムロールを偽装して、必要な操作を実行します。
重要ターゲットプロジェクトを所有する Alibaba Cloud アカウントがこの権限付与を行う必要があります。この権限付与は、最初に作成するジョブに対してのみ必要です。
-
Custom Role: スケジュールされた SQL タスクは、必要な操作を実行するためにカスタムロールを偽装します。
カスタムロールに必要な権限を付与する必要があります。その後、Role ARN フィールドに、カスタムロールの ARN を入力します。詳細については、「カスタム RAM ロールにソース Logstore のデータ分析権限を付与する」をご参照ください。
-
-
スケジュール設定 ウィザードで、以下のパラメーターを設定し、OK をクリックします。
パラメーター
説明
スケジュール間隔の指定
Scheduled SQL ジョブの実行頻度です。各実行により、1 つのジョブインスタンスが生成されます。
-
固定間隔:ジョブを固定間隔で実行します。
-
Cron:cron 式を指定してジョブを実行します。
最小精度は 1 分です。形式は 24 時間表記を使用します。たとえば、
0 0/1 * * *は、00:00 を開始時刻として 1 時間ごとにジョブを実行します。タイムゾーンを設定する必要がある場合は、Cron モードを選択する必要があります。一般的なタイムゾーンの一覧については、「タイムゾーン形式」をご参照ください。
スケジュール期間
ジョブを実行する時間範囲です。
-
特定の時間に開始されます:最初のジョブインスタンスの開始時刻を指定します。
-
指定期間内:開始時刻と終了時刻を指定します。ジョブはこの時間範囲内でのみ実行されます。
説明-
インスタンスのスケジュール時刻は、この範囲内である必要があります。終了時刻を過ぎると、ジョブは新しいインスタンスの生成を停止します。
-
スケジュール時間範囲は、
__time__フィールドを参照します。詳細については、「予約済みフィールド」をご参照ください。
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 分析のタイムアウト時間を指定します。障害が発生した場合、このタイムアウト時間が超過するか、最大リトライ回数に達するまで、ジョブは自動的にリトライを試行します。その後、実行インスタンスは失敗します。原因を特定した後、失敗したインスタンスを手動でリトライできます。詳細については、「Scheduled SQL ジョブの失敗したインスタンスをリトライする」をご参照ください。
タスクの延期
スケジュール時刻からの遅延時間です。有効値:0~120。単位:秒。
この設定を使用して、データインジェストの遅延を補正し、データの完全性を確保します。
Scheduled SQL ジョブを作成後、ターゲット MetricStore で実行結果を確認できます。
-
-