Simple Log Serviceでは、インデックスモードでログを照会および分析できます。 このトピックでは、インデックス、クエリ、および分析の基本概念について説明します。
インデックス
生ログから特定のコンテンツを取得するには、curl
: curl/7.74.0
を含むログなどのキーワードを使用することがよくあります。 分割しないと、ログテキストは単一のブロックとして扱われ、キーワードcurl
と完全に一致しないため、Simple Log Serviceによる取得に失敗する可能性があります。
効率的な検索のために、区切り文字を使用してログを別々の検索可能な単語に分割できます。 区切り文字は、ログが分割されるポイントをマークします。 たとえば、\n\t\r,;[]{}()&^ *#@ ~ =<>/\?: '"
などの区切り文字を使用すると、ログはcurl
や7.74.0
などの単語に分割されます。 Simple Log Serviceは、これらの分割キーワードに基づいてインデックスを作成し、ログをより効率的にクエリおよび分析できるようにします。
Simple Log Serviceプロジェクトは、フルテキストインデックスとフィールドインデックスの両方の作成をサポートしています。 両方が作成されると、フィールドインデックス設定が優先されます。
フルテキストインデックス
フルテキストインデックスは、指定された区切り文字に基づいて、ログ全体を複数のテキストタイプの単語に分割します。 フルテキストインデックスが確立されたら、キーワードベースのログクエリを実行できます。 たとえば、クエリステートメントChromeまたはSafari
は、Chrome
またはSafari
を含むログを返します。
区切り文字は漢字をサポートしていません。 Include Chineseオプションが有効になっている場合、Simple Log Serviceは自動的に中国語テキストをセグメント化します。
フルテキストインデックスのみが設定されている場合、フルテキスト検索機能に制限されます。 詳細については、「クエリ構文と関数」をご参照ください。
フィールドインデックス
フィールドインデックスは、フィールド名 (KEY) でログを整理し、区切り文字を使用してフィールドをセグメント化します。 フィールドインデックスは、text、long、double、JSONの4種類のデータ型をサポートします。 詳細については、「データ型」をご参照ください。 フィールドインデックスを使用すると、フィールド名と値 (Key:Value
) を指定してクエリを絞り込むか、SELECTステートメントを使用してより高度な検索を行うことができます。 詳細については、「フィールド固有の検索」をご参照ください。
フィールドインデックスは、フィールド (SELECTステートメント) のクエリまたは分析に必要であり、フルテキストインデックスよりも優先されます。 両方のインデックスタイプが作成された場合、フィールドインデックス設定が優先されます。
text型のフィールドは、フルテキスト、フィールド、および分析 (SELECT) クエリを使用して検索できます。
フルテキストインデックスがない場合、フルテキスト検索文はすべてのテキストタイプフィールドを照会します。
フルテキストインデックスを有効にすると、フルテキスト検索文はすべてのログを照会します。
フィールド検索と分析ステートメント (SELECT) を使用して、long型とdouble型のフィールドをクエリおよび分析できます。
クエリと分析
Simple Log Serviceは、10億から1兆の規模でログクエリを可能にし、SQLを使用したクエリ結果の統計分析を容易にします。 クエリステートメントは独立して実行できますが、分析ステートメントはクエリステートメントとペアにする必要があります。つまり、クエリ結果またはデータセット全体で分析が実行されます。 詳細については、「クエリと分析のクイックガイド」をご参照ください。
クエリの概要
クエリステートメントは、1つ以上の条件を定義し、これらの条件に一致するログを取得します。 形式は:
query文
(status: 200
など) です。クエリ条件には、キーワード、数値、数値範囲、スペース、および
*
が含まれます。 スペースまたは*
は、フィルタ条件がないことを示します。 詳細については、「クエリ構文と関数」をご参照ください。
分析の概要
クエリ文と分析文は
|
で区切ります。 形式はquery statement | analytic statement
です。例:* | SELECT status, count(*) AS PV GROUP BY status
です。分析機能を利用するには、標準のログストアでログを収集し、インデックス設定中に関連するフィールドの [統計の有効化] オプションを有効にする必要があります。
分析ステートメントは、クエリ結果または完全なデータセットのいずれかに対して計算および統計分析を実行します。 Simple Log Serviceでサポートされている解析関数と構文の一覧については、以下のトピックを参照してください。
SQL関数: 加算、平均化、文字列操作、日付処理など、データの計算、変換、および書式設定に一般的に使用されます。
SQL句: データソース、条件、グループ化、並べ替えなどを指定して、完全なSQLクエリまたはデータ操作ステートメントを構築するために使用されます。
ネストされたサブクエリ: 複雑な分析シナリオの他のSELECTステートメントにSELECTステートメントを埋め込むために使用されます。
logstoreとMySQLのクエリ分析の結合: logstoreとMySQLデータベース間の結合クエリを実行し、クエリ結果をMySQLデータベースに保存します。
関連ドキュメント
インデックスの作成: ログストア内のログをクエリおよび分析するには、インデックスを作成する必要があります。
ログストアのログの再インデックス: 再インデックス機能は、履歴データのインデックスを設定または変更するために使用されます。
クエリ構文と関数: クエリステートメントの基本機能と高度な機能を詳しく説明します。
SQL構文と関数: SQL分析ステートメントの一般的な関数と句の概要を示します。
SPLを使用したログのクエリと分析: Simple Log Service Processing Language (SPL) は、構造化情報の抽出、フィールド操作の実行、ログデータからのデータのフィルタリングに使用されます。
機械学習構文と関数: 分析ステートメントと機械学習関数を適用して、ログクエリ分析内の機械学習アルゴリズムを使用して、時間の経過とともにフィールド特性を分析します。
Simple Log Serviceを外部データソースに関連付ける: これらの外部データソースには、MySQLデータベース、Alibaba Cloud Object Storage Service (OSS) 、およびホストされたCSVファイルが含まれます。
Simple Log ServiceとElasticsearchの互換性: Simple Log ServiceはElasticsearch互換APIを提供します。 Simple Log Serviceにログを収集した後、Elasticsearchを使用してそれらを照会できます。