Simple Log Serviceは、スケジュールされたSQL機能を提供します。 この機能を使用して、スケジュールされた時間にデータを分析し、ストレージ用にデータを集計できます。 この機能を使用して、データをプロジェクトおよびフィルタリングすることもできます。 スケジュールされたSQL機能は、ソースLogstore内のデータを処理し、処理されたデータを宛先Metricstoreに格納できます。
前提条件
データはソースLogstoreに収集されます。 詳細については、「データ収集の概要」をご参照ください。
インデックスは、ソースLogstoreに対して設定されます。 詳細については、「インデックスの作成」をご参照ください。
宛先Metricstoreが作成されます。 詳細については、「Logstore の作成」をご参照ください。
このトピックで説明するLogstoreは、Standard Logstoreです。 詳細については、「Logstore の管理」をご参照ください。
手順
スケジュールされたSQL機能はパブリックプレビューです。 この機能を有効にすると、Dedicated SQLによって消費されたコンピューティングリソースに対してのみ課金されます。 詳細については、「機能課金の課金項目」をご参照ください。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
左側のナビゲーションウィンドウで、[ログストレージ] をクリックします。 Logstoresリストで、目的のlogstoreをクリックします。
検索ボックスにクエリステートメントを入力し、過去15分クエリの時間範囲を指定します。
詳細については、「手順1: クエリステートメントの入力」をご参照ください。
説明この手順では、スケジュールされたSQLジョブを作成する前にデータをプレビューできます。 入力したクエリステートメントが有効かどうか、およびクエリ結果にデータが含まれているかどうかを確認できます。
[グラフ] タブで、[スケジュール済みSQLジョブとして保存] をクリックします。
スケジュールされたSQLジョブを作成します。
[コンピューティング設定] ステップで、パラメーターを設定し、[次へ] をクリックします。
パラメーター
説明
ジョブ名
スケジュールされたSQLジョブの名前。
表示名
スケジュールされたSQLジョブの表示名。
タスクの説明
スケジュールされたSQLジョブの説明。
リソースプール
データ分析に使用されるリソースプール。 Simple Log Serviceは、拡張タイプのリソースプールを提供します。
拡張タイプのリソースプールは、Dedicated SQLのコンピューティング機能を再利用します。 拡張タイプのリソースプールは、同時分析要件を満たし、スケジュールされたSQLとコンソールのSQL分析操作の間でリソースを分離できます。 SQL分析操作によって消費されたCPU時間に基づいて、拡張タイプのリソースプールに対して課金されます。 詳細については、「Dedicated SQLの有効化」をご参照ください。
書き込みモード
LogstoreからMetricstoreへのデータのインポートを選択します。 Scheduled SQL機能は、ソースLogstore内のデータを処理し、処理したデータを宛先Metricstoreに書き込みます。
SQLコード
クエリ 文。 デフォルトでは、ステップ4で入力したステートメントが表示されます。 このパラメータに対して提供されるプレビュー操作は、ステップ4におけるプレビュー操作と同じ効果を有する。 [プレビュー] をクリックして、クエリステートメントが有効かどうか、およびクエリ結果にデータが含まれているかどうかを確認できます。
スケジュールされたSQLジョブが実行されると、Simple Log Serviceはこのクエリステートメントを実行してデータを分析します。
SQL設定
メトリック列
メトリック列。 Simple Log Serviceは、入力したクエリステートメントに基づいてデータを集計します。 このパラメーターのクエリ結果で、数値データ型の1つ以上の列を選択できます。 詳細については、「メトリック」をご参照ください。
ラベル
ラベルデータ。 Simple Log Serviceは、入力したクエリステートメントに基づいてデータを集計します。 このパラメーターのクエリ結果で1つ以上の列を選択できます。 詳細については、「メトリック」をご参照ください。
Rehash
ハッシュ用のスイッチ。The switch for hashing. Rehashをオンにすると、Hash Columnパラメーターを設定して、列内の同じ値を持つデータを同じシャードに書き込むことができます。 これにより、データの局所性とクエリの効率が向上します。
ハッシュ列パラメーターの有効値は、クエリ結果によって異なります。 クエリ結果の1つ以上の列をハッシュ列として選択できます。 たとえば、ハッシュ列をstatusに設定した場合、status列で同じ値を持つデータは同じシャードに書き込まれます。
タイムカラム
このパラメーターのクエリ結果で、値がUNIX timestampである時間列を選択した場合、システムは時間列の値を使用してメトリックの時間を示します。 例:
atime:1627025331
値をNullに設定した場合、システムはクエリ文の開始時刻を使用してメトリックの時刻を示します。
詳細については、「メトリック」をご参照ください。
追加ラベル
メトリックの属性を識別するために使用される静的ラベル。 各ラベルはキーと値のペア形式です。
たとえば、label_keyをappに、label_valueをingress-nginxに設定できます。
ソースプロジェクト /Logstore
ソースデータが属するプロジェクトとLogstore。
ターゲット
宛先リージョン
ターゲットプロジェクトが存在するリージョン。
宛先プロジェクト
クエリ文の結果を格納するターゲットプロジェクトの名前。
ターゲットストア
クエリ文の結果を格納する宛先Metricstoreの名前。
書き込み許可
スケジュールされたSQLジョブが宛先Metricstoreにデータを書き込むことを許可するために使用されるメソッド。 有効な値:
デフォルトのロール: スケジュールされたSQLジョブは、分析結果を宛先Metricstoreに書き込むためにAliyunLogETLRoleシステムロールを引き受けます。
カスタムロール: Scheduled SQLジョブは、分析結果を宛先Metricstoreに書き込むためのカスタムロールを引き受けます。
宛先Metricstoreにデータを書き込む権限をカスタムロールに付与する必要があります。 次に、[ロールARN] フィールドにカスタムロールのAlibaba Cloudリソース名 (ARN) を入力します。
ソースLogstoreとターゲットMetricstoreが異なるAlibaba Cloudアカウントに属している場合は、「ステップ2: RAMロールBにターゲットLogstoreへのデータ書き込み権限を付与」の手順に従ってARNを取得します。
SQL実行権限付与
ソースLogstoreからデータを読み取り、現在のプロジェクトのクエリステートメントを使用してデータを分析するために、スケジュールされたSQLジョブを許可するために使用されるメソッド。 有効な値:
デフォルトのロール: スケジュールされたSQLジョブは、AliyunLogETLRoleシステムロールを引き受けて、必要な操作を実行します。
カスタムロール: スケジュールされたSQLジョブは、必要な操作を実行するカスタムロールを引き受けます。
カスタムロールに必要な権限を付与する必要があります。 次に、[ロールARN] フィールドにカスタムロールのARNを入力します。 詳細については、「手順1: RAMロールにソースLogstoreのログデータを分析する権限を付与する」をご参照ください。
[スケジューリング設定] ステップで、次のパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
スケジューリング間隔の指定
スケジュールされたSQLジョブがスケジュールされる頻度。 インスタンスは、スケジュールされたSQLジョブがスケジュールされるたびに生成されます。 このパラメーターは、各インスタンスのスケジュール時間を決定します。 有効な値:
毎時: スケジュールされたSQLタスクは1時間ごとにスケジュールされます。
毎日: スケジュールされたSQLタスクは、毎日一定の時間にスケジュールされます。
毎週: スケジュールされたSQLタスクは、毎週の一定日の一定時間にスケジュールされます。
固定間隔: スケジュールされたSQLタスクは、固定間隔でスケジュールされます。
Cron: スケジュールされたSQLタスクは、cron式を使用して指定された間隔でスケジュールされます。
cron式を使用する場合、指定された間隔は24時間クロックに基づいて分に正確になります。 たとえば、式0 0/1 * * * は、スケジュールされたSQLタスクが00:00から1時間ごとにスケジュールされることを示します。
タイムゾーンを指定する必要がある場合は、[Cron] を選択します。 共通タイムゾーンのリストについては、「タイムゾーン」をご参照ください。
スケジューリング時間範囲
スケジュールされたSQLジョブがスケジュールされる時間範囲。 有効な値:
指定された時刻に開始: スケジュールされたSQLタスクが最初にスケジュールされる時刻を指定します。
指定期間内: スケジュールされたSQLタスクがスケジュールされる時間範囲を指定します。
説明時間範囲を指定した場合、スケジュール済みSQLジョブのインスタンスはその時間範囲内でのみ実行できます。 終了時間が経過すると、スケジュールされたSQLジョブはインスタンスを生成しなくなります。
スケジューリング時間範囲は
__Time__
フィールドです。 詳細については、「予約済みフィールド」をご参照ください。
SQLタイムウィンドウ
スケジュールされたSQLジョブの実行時に分析されるログの時間ウィンドウ。 このパラメーターは、Scheduling Time Rangeパラメーターと一緒に設定する必要があります。 このパラメーターで指定する期間は、[スケジューリング間隔の指定] で指定した期間の最大5倍です。 SQLタイムウィンドウの開始時間と終了時間は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またはMetricStoreに書き込まれたログ時間__time__
は、スケジュールされたSQLジョブの開始時間にデフォルトで設定されます。
SQLタイムアウト
SQL分析操作が失敗した場合の自動再試行のしきい値。 指定した最大時間を超えた期間、またはインスタンスの再試行回数が指定した上限を超えた場合、インスタンスは再試行を停止し、FAILED状態になります。 失敗の原因に基づいて、インスタンスを手動で再試行できます。 詳細については、「スケジュールされたSQLインスタンスの再試行」をご参照ください。
遅延タスク
インスタンスがスケジュールされた時刻から遅延した秒数。 設定可能な値は、0 から 100 です。 単位は秒です。
データが宛先Metricstoreに書き込まれるときにレイテンシが存在する場合、このパラメーターを使用してデータの整合性を確保できます。
スケジュールされたSQLジョブが作成された後、ターゲットMetricstoreでSQL実行結果を表示できます。