すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:ログストアからメトリックストアへのデータの処理と保存

最終更新日:Feb 14, 2025

Simple Log Service は、スケジュール SQL 機能を提供します。この機能を使用すると、スケジュールされた時間にデータを分析し、保存のためにデータを集計できます。また、この機能を使用して、データを投影およびフィルタリングすることもできます。スケジュール SQL 機能は、ソースログストア内のデータを処理し、処理されたデータを宛先メトリックストアに保存できます。

前提条件

  • データはソースログストアに収集されます。詳細については、「データ収集の概要」をご参照ください。

  • インデックスはソースログストアに対して構成されます。詳細については、「インデックスの作成」をご参照ください。

  • 宛先メトリックストアが作成されます。詳細については、「ログストアの作成」をご参照ください。

重要

このトピックで説明されているログストアは、標準ログストアです。詳細については、「ログストアの管理」をご参照ください。

手順

重要

スケジュール SQL 機能はパブリックプレビュー中です。この機能を有効にした場合、専用 SQL で消費される計算リソースに対してのみ課金されます。詳細については、「機能別課金の課金対象項目」をご参照ください。

  1. Simple Log Service コンソール にログオンします。

  2. [プロジェクト] セクションで、管理するプロジェクトをクリックします。

    image

  3. [ログストレージ] > [ログストア] タブで、管理するログストアをクリックします。

    image

  4. 検索ボックスにクエリ文を入力し、[過去 15 分] をクリックしてクエリ時間範囲を指定します。

    詳細については、「手順 1: インデックスを構成する」をご参照ください。

    説明

    この手順では、スケジュール SQL ジョブを作成する前にデータをプレビューできます。入力したクエリ文が有効かどうか、およびクエリ結果にデータが含まれているかどうかを確認できます。

  5. [グラフ] タブで、[スケジュール SQL ジョブとして保存] をクリックします。

    image.png

  6. スケジュール SQL ジョブを作成します。

    1. [計算設定] 手順で、パラメータを構成し、[次へ] をクリックします。

      パラメータ

      説明

      [ジョブ名]

      スケジュール SQL ジョブの名前。

      [表示名]

      スケジュール SQL ジョブの表示名。

      [タスクの説明]

      スケジュール SQL ジョブの説明。

      [リソースプール]

      データ分析に使用されるリソースプール。Simple Log Service は、拡張タイプのリソースプールを提供します。

      拡張タイプのリソースプールは、専用 SQL の計算能力を再利用します。拡張タイプのリソースプールは、同時分析要件を満たし、スケジュール SQL とコンソールでの SQL 分析操作の間でリソースを分離できます。拡張タイプのリソースプールは、SQL 分析操作で消費される CPU 時間に基づいて課金されます。詳細については、「専用 SQL を有効にする」をご参照ください。

      [書き込みモード]

      [ログストアからメトリックストアにデータをインポート] を選択します。スケジュール SQL 機能は、ソースログストア内のデータを処理し、処理されたデータを宛先メトリックストアに書き込みます。

      [SQL コード]

      クエリ文。デフォルトでは、手順 4 で入力した文が表示されます。このパラメータに提供されるプレビュー操作は、手順 4 のプレビュー操作と同じ効果があります。[プレビュー] をクリックして、クエリ文が有効かどうか、およびクエリ結果にデータが含まれているかどうかを確認できます。

      スケジュール SQL ジョブの実行時、Simple Log Service はこのクエリ文を実行してデータを分析します。

      [SQL 設定]

      [メトリック列]

      メトリック列。Simple Log Service は、入力したクエリ文に基づいてデータを集計します。このパラメータには、クエリ結果の数値データ型の 1 つ以上の列を選択できます。詳細については、「メトリック」をご参照ください。

      [ラベル]

      ラベルデータ。Simple Log Service は、入力したクエリ文に基づいてデータを集計します。このパラメータには、クエリ結果の 1 つ以上の列を選択できます。詳細については、「メトリック」をご参照ください。

      [再ハッシュ]

      ハッシュのスイッチ。[再ハッシュ] をオンにすると、[ハッシュ列] パラメータを構成して、列の同じ値を持つデータを同じシャードに書き込むことができます。これにより、データの局所性とクエリの効率が向上します。

      [ハッシュ列] パラメータの有効値は、クエリ結果によって異なります。クエリ結果の 1 つ以上の列をハッシュ列として選択できます。たとえば、[ハッシュ列]status に設定すると、status 列の同じ値を持つデータが同じシャードに書き込まれます。

      [時間列]

      • このパラメータに、クエリ結果で値が UNIX タイムスタンプである時間列を選択すると、システムは時間列の値を使用してメトリックの時刻を示します。例: atime:1627025331

      • 値を [null] に設定すると、システムはクエリ文の開始時刻を使用してメトリックの時刻を示します。

      詳細については、「メトリック」をご参照ください。

      [追加ラベル]

      メトリックの属性を識別するために使用される静的ラベル。各ラベルは、キーと値のペア形式です。

      たとえば、label_keyapp に、label_valueingress-nginx に設定できます。

      [ソースプロジェクト/ログストア]

      ソースデータが属するプロジェクトとログストア。

      [ターゲット]

      [宛先リージョン]

      宛先プロジェクトが存在するリージョン。

      [宛先プロジェクト]

      クエリ文の結果を格納する宛先プロジェクトの名前。

      [ターゲットストア]

      クエリ文の結果を格納する宛先メトリックストアの名前。

      [書き込み承認]

      スケジュール SQL ジョブに宛先メトリックストアへのデータの書き込みを承認するために使用されるメソッド。有効値:

      • [デフォルトロール]: スケジュール SQL ジョブは、AliyunLogETLRole システムロールを引き受けて、分析結果を宛先メトリックストアに書き込みます。

      • [カスタムロール]: スケジュール SQL ジョブは、カスタムロールを引き受けて、分析結果を宛先メトリックストアに書き込みます。カスタムロールに、宛先メトリックストアにデータを書き込む権限を付与する必要があります。次に、[ロール ARN] フィールドにカスタムロールの Alibaba Cloud Resource Name (ARN) を入力します。詳細については、「宛先ログストアにデータを書き込む権限を RAM ロールに付与する」をご参照ください。

      [SQL 実行承認]

      スケジュール SQL ジョブに、ソースログストアからデータを読み取り、現在のプロジェクトのクエリ文を使用してデータを分析する権限を付与するために使用されるメソッド。有効値:

      • [デフォルトロール]: スケジュール SQL ジョブは、AliyunLogETLRole システムロールを引き受けて、必要な操作を実行します。

      • [カスタムロール]: スケジュール SQL ジョブは、カスタムロールを引き受けて、必要な操作を実行します。

        カスタムロールに必要な権限を付与する必要があります。次に、[ロール ARN] フィールドにカスタムロールの ARN を入力します。詳細については、「手順 1: ソースログストアのログデータを分析する権限を RAM ロールに付与する」をご参照ください。

    2. [スケジューリング設定] 手順で、次のパラメータを構成し、[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 ジョブの実行時に分析されるログのタイムウィンドウ。このパラメータは、[スケジューリング時間範囲] パラメータと一緒に構成する必要があります。このパラメータで指定された期間は、[スケジューリング間隔の指定] で指定された期間の最大 5 倍にすることができます。SQL タイムウィンドウの開始時刻と終了時刻は、24 時間以内である必要があります。詳細については、「時間式の構文」をご参照ください。

      たとえば、[スケジューリング間隔の指定][固定間隔 10 分] に設定され、[開始時刻][2021-04-01 00:00:00] に設定され、[タスクの遅延][30 秒] に設定され、[SQL タイムウィンドウ][@m-10m,@m)] に設定されているとします。この例では、スケジュール SQL ジョブの最初のインスタンスは 00:00:30 に生成され、[23:50:00 から 00:00:00) の時間範囲に含まれるログを分析します。詳細については、「スケジューリングと実行のシナリオ」をご参照ください。

      説明
      • SQL タイムウィンドウは、__time__ フィールドです。詳細については、「予約フィールド」をご参照ください。

      • SQL コードで __time__ が定義されていない場合、ターゲットメトリックストアに書き込まれるログ時間 __time__ は、デフォルトでスケジュール SQL ジョブの開始時刻になります。

      [SQL タイムアウト]

      SQL 分析操作が失敗した場合の自動再試行のしきい値。インスタンスが指定した最大時間を超えて再試行された場合、またはインスタンスの再試行回数が指定した上限を超えた場合、インスタンスは再試行を停止し、FAILED 状態になります。エラーの原因に基づいて、インスタンスを手動で再試行できます。詳細については、「スケジュール SQL インスタンスを再試行する」をご参照ください。

      [タスクの遅延]

      インスタンスがスケジュール時間から遅延される秒数。有効値: 0 ~ 120。単位: 秒。

      データが宛先メトリックストアに書き込まれるときに遅延が発生した場合、このパラメータを使用してデータ整合性を確保できます。

      スケジュール SQL ジョブの作成後、宛先メトリックストアで SQL 実行結果を表示できます。

SDK の例

Java SDK を使用してスケジュール SQL タスクを作成する