Simple Log Serviceは、スケジュールされたSQL機能を提供します。 この機能を使用して、スケジュールされた時間にデータを分析し、ストレージ用にデータを集計できます。 この機能を使用して、データをプロジェクトおよびフィルタリングすることもできます。 Simple Log Serviceを使用すると、スケジュールされたSQLジョブを設定してソースLogstoreのデータを処理し、処理したデータを宛先Logstoreに保存できます。
前提条件
データはソースLogstoreに収集されます。 詳細については、「データ収集の概要」をご参照ください。
宛先Logstoreが作成されます。 詳細については、「Logstore の作成」をご参照ください。
インデックスは、ソースおよび宛先ログストアに設定されます。 詳細については、「インデックスの作成」をご参照ください。
このトピックで説明するLogstoreは、Standard Logstoreです。 詳細については、「Logstoreの管理」をご参照ください。
手順
スケジュールされたSQL機能はパブリックプレビューです。 この機能を有効にすると、Dedicated SQLによって消費されたコンピューティングリソースに対してのみ課金されます。 詳細については、「機能課金の課金項目」をご参照ください。
[プロジェクト] セクションで、ソースプロジェクトをクリックします。
左側のナビゲーションウィンドウで、[ログストレージ] をクリックします。 Logstoreリストで、ソースLogstoreをクリックします。
検索ボックスにクエリステートメントを入力し、[過去15分] をクリックしてクエリ時間範囲を指定します。
詳細については、「手順1: クエリステートメントの入力」をご参照ください。
説明この手順では、スケジュールされたSQLジョブを作成する前にデータをプレビューできます。 入力したクエリステートメントが有効かどうか、およびクエリと分析の結果にデータが含まれているかどうかを確認できます。
[グラフ] タブで、[スケジュール済みSQLジョブとして保存] をクリックします。
スケジュールされたSQLジョブを作成します。
[コンピューティング設定] ステップで、パラメーターを設定し、[次へ] をクリックします。 下表に、各パラメーターを説明します。
パラメーター
説明
ジョブ名
スケジュールされたSQLジョブの名前。
表示名
スケジュールされたSQLジョブの表示名。
ジョブの説明
スケジュールされたSQLジョブの説明。
リソースプール
データ分析に使用されるリソースプール。 Simple Log Serviceは、拡張タイプのリソースプールを提供します。
拡張タイプのリソースプールは、Dedicated SQLのコンピューティング機能を利用して、同時分析要件を満たします。 スケジュールされたSQLとコンソールのSQL分析操作の間のリソースを分離します。 SQL分析操作によって消費されたCPU時間に基づいて、拡張タイプのリソースプールに対して課金されます。 詳細については、「Dedicated SQLの有効化」をご参照ください。
書き込みモード
LogstoreからLogstoreへのデータのインポートを選択します。 スケジュールされたSQLジョブは、ソースLogstore内のデータを処理し、処理したデータをターゲットLogstoreに保存します。
SQLコード
クエリ 文。 デフォルトでは、4で入力したステートメントが表示されます。 このパラメータに対して提供されるプレビュー操作は、4のプレビュー操作と同じ効果を有する。 [プレビュー] をクリックして、クエリステートメントが有効かどうか、およびクエリと分析の結果にデータが含まれているかどうかを確認できます。
スケジュールされたSQLジョブが実行されると、Simple Log Serviceはクエリステートメントを実行してデータを分析します。
ソースプロジェクト /Logstore
ソースデータが属するプロジェクトとLogstore。
ターゲット
宛先リージョン
ターゲットプロジェクトが存在するリージョン。
宛先プロジェクト
クエリ文の結果を格納するターゲットプロジェクトの名前。
ターゲットストア
クエリステートメントの結果を格納する宛先Logstoreの名前。
書き込み許可
データを宛先Logstoreに書き込むために、スケジュールされたSQLジョブを許可するために使用されるメソッド。 有効な値:
デフォルトのロール: スケジュールされたSQLジョブは、分析結果を宛先Logstoreに書き込むためにAliyunLogETLRoleシステムロールを引き受けます。
カスタムロール: スケジュールされたSQLジョブは、分析結果を宛先Logstoreに書き込むためのカスタムロールを引き受けます。
カスタムロールに、宛先Logstoreにデータを書き込む権限を付与する必要があります。 次に、[ロールARN] フィールドにカスタムロールのAlibaba Cloudリソース名 (ARN) を入力します。 ARNの取得方法については、ビジネスシナリオに基づいて次のいずれかのトピックを参照してください。
ソースLogstoreとターゲットLogstoreが同じAlibaba Cloudアカウントに属している場合は、「ステップ2: RAMロールにターゲットLogstoreへのデータ書き込み権限を付与」の手順に従ってARNを取得します。
ソースLogstoreとターゲットLogstoreが異なるAlibaba Cloudアカウントに属している場合は、「ステップ2: RAMロールBにターゲットLogstoreへのデータ書き込み権限を付与」の手順に従ってARNを取得します。
SQL実行権限付与
ソースLogstoreからデータを読み取り、現在のプロジェクトのクエリステートメントを使用してデータを分析するために、スケジュールされたSQLジョブを許可するために使用されるメソッド。 有効な値:
デフォルトのロール: スケジュールされたSQLジョブは、AliyunLogETLRoleシステムロールを引き受けて、必要な操作を実行します。
カスタムロール: スケジュールされたSQLジョブは、必要な操作を実行するカスタムロールを引き受けます。
カスタムロールに必要な権限を付与する必要があります。 次に、[ロールARN] フィールドにカスタムロールのARNを入力します。 詳細については、「手順1: RAMロールにソースLogstoreのログデータを分析する権限を付与する」をご参照ください。
[スケジューリング設定] ステップで、パラメーターを設定し、[OK] をクリックします。 下表に、各パラメーターを説明します。
パラメーター
説明
スケジューリング間隔の指定
スケジュールされたSQLジョブがスケジュールされる頻度。 インスタンスは、スケジュールされたSQLジョブがスケジュールされるたびに生成されます。 このパラメータは、各インスタンスのスケジュール時間を指定します。 有効な値:
1時間ごと: スケジュールされたSQLジョブは1時間ごとにスケジュールされます。
毎日: スケジュールされたSQLジョブは、毎日決まった時点でスケジュールされます。
毎週: スケジュールされたSQLジョブは、毎週の一定日の一定の時点でスケジュールされます。
固定間隔: スケジュールされたSQLジョブは、固定間隔でスケジュールされます。
Cron: スケジュールされたSQLジョブは、cron式で指定された間隔でスケジュールされます。
cron式は、分単位の正確な間隔を指定できます。 cron式は24時間時計に基づいています。 たとえば、0 0/1 * * * は、スケジュールされたSQLジョブが00:00から1時間の間隔でスケジュールされていることを示します。
タイムゾーンを指定する場合は、[Cron] を選択します。 共通タイムゾーンの詳細については、「タイムゾーン」をご参照ください。
スケジューリング時間範囲
スケジュールされたSQLジョブがスケジュールされる時間範囲。 有効な値:
[特定の時間から]: このオプションを選択した場合、スケジュールされたSQLジョブの最初のインスタンスが実行を開始する時点を指定する必要があります。
特定の期間内: このオプションを選択した場合、スケジュールされたSQLジョブのインスタンスを実行できる時間範囲を指定する必要があります。
説明スケジュールされたSQLジョブのインスタンスは、指定された時間範囲内でのみ実行できます。 時間範囲が終了すると、Scheduled SQLジョブはインスタンスを生成しなくなります。
スケジューリング時間範囲は
__Time__
フィールドです。 詳細については、「予約済みフィールド」をご参照ください。
SQLタイムウィンドウ
スケジュールされたSQLジョブの実行時に分析されるログの時間ウィンドウ。 このパラメーターは、Scheduling Time Rangeパラメーターと一緒に設定する必要があります。 このパラメーターで指定する期間は、[スケジューリング間隔の指定] パラメーターで指定する期間の最大5倍です。 タイムウィンドウの開始時間と終了時間は24時間以内でなければなりません。 詳細については、「Time expression構文」をご参照ください。
たとえば、[スケジューリング間隔の指定] パラメーターは [固定間隔10分] に設定され、[開始時間] パラメーターは2021-04-01: 00:00に設定され、[遅延タスク] パラメーターは30秒に設定され、[SQL時間ウィンドウ] パラメーターは [@ m-10m,@ m] に設定されます。 この例では、スケジュールされたSQLジョブの最初のインスタンスが00:00:30に生成され、
[23:50:00,00:00:00)
の時間範囲内のログを分析します。 詳細については、「シナリオのスケジューリングと実行」をご参照ください。説明SQL Time Windowは
__time__
フィールドです。 詳細については、「予約済みフィールド」をご参照ください。__time__
がSQLコードで定義されていない場合、ターゲットLogstoreに書き込まれたログ時間__time__
は、デフォルトでスケジュールされたSQLジョブの開始時間になります。
SQLタイムアウト
SQL分析操作が失敗した場合の自動再試行のしきい値。 リトライ期間が指定された最大期間を超えた場合、またはリトライ回数が上限を超えた場合、インスタンスは停止し、インスタンスのステータスはFAILEDに変わります。 失敗の原因に基づいてインスタンスを再試行できます。 詳細については、「スケジュールされたSQLインスタンスの再試行」をご参照ください。
遅延タスク
インスタンスがスケジュールされた時刻から遅延した秒数。 設定可能な値は、0 から 100 です。 単位は秒です。
データが宛先Logstoreに書き込まれるときにレイテンシが存在する場合、このパラメーターを使用してデータの整合性を確保できます。
スケジュールされたSQLジョブが作成された後、ターゲットMetricstoreでSQL実行結果を表示できます。