スケジュール済み SQL 機能を使用して、データを定期的に分析し、集計結果を保存したり、射影とフィルタリングを実行できます。本トピックでは、Simple Log Service でソース Logstore のデータを処理し、結果を送信先 Logstore に書き込むスケジュール済み SQL タスクを作成する方法について説明します。
スケジュール済み SQL 機能は現在パブリックプレビュー中であり、無料でご利用いただけます。パブリックプレビュー終了後は、専用 SQL プールの計算リソースに対して課金されます。料金の詳細については、「Pay-by-feature」をご参照ください。
前提条件
-
ソース Logstore を準備します。
Log Service プロジェクトと標準 Logstore を作成し、データ収集とインデックス作成を完了します。詳細については、「プロジェクトの管理」、「標準 Logstore の作成」、「データ収集の概要」、および「インデックスの作成」をご参照ください。
-
送信先 Logstore を準備します。
スケジュール済み SQL タスクの結果を保存する Alibaba Cloud アカウント内で、Log Service プロジェクトおよび標準 Logstore を作成し、インデックスを有効にしてください。
操作手順
-
Alibaba Cloud アカウント (プライマリアカウント) またはスケジュール済み SQL タスクの作成権限を持つ RAM ユーザーとして、ソース Logstore を含むプロジェクトの Log Service コンソール にログインします。
-
プロジェクト一覧で、ソース Logstore を含むプロジェクトをクリックします。
-
左側のナビゲーションウィンドウで ログ管理 をクリックします。ログストア 一覧で、分析対象の Logstore をクリックします。この Logstore がスケジュール済み SQL タスクの ソース Logstore になります。
-
クエリと分析文を入力し、直近 15 分 をクリックしてクエリと分析の時間範囲を設定します。
説明このステップにより、スケジュール済み SQL タスクをプレビューして、クエリと分析文が正しく記述され、データが返されることを確認できます。
-
グラフ タブで、スケジュールされた SQL として保存 をクリックします。
-
スケジュール済み SQL タスクを作成します。
-
計算設定 ウィザードでパラメーターを設定し、次へ をクリックします。
パラメーター
説明
タスク名
スケジュール済み SQL タスクの一意な名前です。デフォルト名を使用することもできます。
書き込みモード
ログストアからログストアにデータをインポート を選択します。このオプションにより、ソース Logstore のデータを処理し、結果を送信先 Logstore に書き込むスケジュール済み SQL タスクが実行されます。
SQL コード
-
ステップ 4 のクエリと分析文が表示されます。
-
新しい文を定義することもできます。文を入力後、時間範囲を選択して プレビュー をクリックし、結果を確認してください。
スケジュール済み SQL タスクが実行されると、Simple Log Service がこの文を実行してデータを分析します。
対象
警告送信先ストアを現在のソースストア(同一ソース構成)に設定しないでください。そうするとログがループして書き込まれ、追加のストレージおよびトラフィックコストが発生します。リソース消費およびそれに伴うコストについては、お客様ご自身で責任を負っていただくことになります。
同一アカウント
パラメーター
説明
Destination Region
ターゲットプロジェクト のリージョンを選択します。
ターゲットプロジェクト
ドロップダウンリストから ターゲットプロジェクト を選択します。
ターゲットデータベース
ドロップダウンリストから 送信先 Logstore を選択します。
書き込み権限
スケジュール済み SQL タスクは、Default Role または Custom Role を偽装して 送信先 Logstore にデータを書き込みます。いずれかのロールを選択する必要があります。
-
Default Role: このロールには、ソース Logstore またはソース MetricStore で SQL 分析を実行し、その結果を送信先 Logstore または送信先 MetricStore に書き込む権限が付与されています。詳細については、「デフォルトロールを使用してスケジュールされた SQL タスクを作成する」をご参照ください。
-
Custom Role: カスタムロールとカスタムポリシーを作成して、きめ細かなアクセス制御を実装できます。詳細については、「カスタム RAM ロールに送信先 Logstore へのデータ書き込み権限を付与する」をご参照ください。
クロスアカウント
パラメーター
説明
Destination Region
別のリージョンを選択し、データ越境コンプライアンス同意書 に同意します。
ターゲットプロジェクト
送信先プロジェクト の名前を入力します(例:
test-project)。ターゲットデータベース
送信先 Logstore の名前を入力します(例:
test-logstore)。書き込み権限
[Custom Role]を選択します。詳細については、「カスタム RAM ロールに送信先 Logstore へのデータ書き込み権限を付与する」をご参照ください。
SQL実行権限
スケジュールされた SQL タスクは、Default Role または Custom Role を使用して、ソース Logstore 内のデータを照会および分析します。これらのロールのいずれかを選択する必要があります。
-
Default Role: このロールには、ソース Logstore またはソース MetricStore で SQL 分析を実行し、その結果を送信先 Logstore または送信先 MetricStore に書き込む権限が付与されます。詳細については、「デフォルトロールを使用してスケジュールされた SQL タスクを作成する」をご参照ください。
-
Custom Role: カスタムロールとカスタムポリシーを作成して、きめ細かなアクセス制御を実装できます。詳細については、「ソース Logstore のデータを分析する権限をカスタム RAM ロールに付与する」をご参照ください。
-
-
スケジュール設定 ウィザードでパラメーターを設定し、OK をクリックします。
パラメーター
説明
スケジュール間隔の指定
スケジュール済み SQL タスクの実行頻度です。各実行によりタスクインスタンスが生成されます。スケジューリング間隔により、各インスタンスのスケジュール時刻が決定されます。
-
固定間隔:タスクが固定間隔でスケジュールされます。
-
Cron:Cron 式に基づいてタスクをスケジュールします。
Cron 式は 24 時間表記で、最小精度は 1 分です。たとえば、
0 0/1 * * *は 00:00 から 1 時間ごとにタスクを実行します。タイムゾーンを設定するには、[Cron] モードを選択する必要があります。一般的なタイムゾーンの一覧については、「タイムゾーンのフォーマット」をご参照ください。
スケジュール期間
タスクをスケジュールする時間範囲です。有効値は以下のとおりです。
-
特定の時間に開始されます:最初のインスタンスがスケジュールされる時刻です。
-
指定期間内:インスタンスをスケジュールする開始時刻および終了時刻です。スケジュール済み SQL タスクはこの時間範囲内でのみ実行されます。
説明-
インスタンスのスケジュール時刻はこの時間範囲内である必要があります。範囲外の場合は、新しいインスタンスは生成されません。
-
スケジューリング時間範囲は、
__time__に対応します。詳細については、「予約済みフィールド」をご参照ください。
SQL タイムウィンドウ
スケジュールされた 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__フィールドを指定しない場合、送信先 Logstore に書き込まれるログの__time__フィールドは、デフォルトでスケジューリングウィンドウの開始時刻を使用します。
SQL タイムアウト
SQL 分析操作が失敗した場合の自動リトライのしきい値です。リトライの持続時間が指定された最大時間を超過するか、リトライ回数が最大数を超えると、実行インスタンスは失敗します。失敗原因に基づいて、失敗したインスタンスを手動でリトライできます。詳細については、「スケジュールされた SQL タスクインスタンスのリトライ」をご参照ください。
タスクの延期
スケジュール時刻からタスク実行までの遅延時間です。有効値:0~120。単位:秒。
Logstore へのデータ書き込みが遅延する場合、このパラメーターを設定することでデータ整合性を確保できます。
-
-
-
スケジュールされた SQL タスクを作成すると、 セクションでそれを表示できます。詳細については、「スケジュールされた SQL タスクの管理」をご参照ください。