Storeviewsを使用すると、複数のLogstoreまたはMetricstoreにわたるログに対してJOINクエリと分析を実行できます。 このトピックでは、LogstoreのStoreviewを作成し、LogstoreのStoreviewでログを照会および分析する方法について説明します。
LogstoreのStoreviewを作成する
前提条件
プロジェクトと標準のログストアがSimple Log Serviceで作成され、ログが収集されます。 詳細については、参照プロジェクトの作成,Logstoreの作成、およびログの収集.
手順
Simple Log Serviceコンソールにログインします。 [プロジェクト] セクションで、管理するプロジェクトをクリックします。
左側のナビゲーションウィンドウで、
を選択します。 表示されるページで、[今すぐ作成] またはアイコンをクリックして、LogstoreのStoreviewを作成します。[Storeviewの作成] ダイアログボックスで、[Storeview Name] パラメーターを設定し、Storeviewに関連付けるLogstoreを追加して、[OK] をクリックします。 Storeviewを作成するには約1分かかります。
説明Simple Log Serviceプロジェクトごとに最大10個のLogstoreを作成できます。
各Storeview for Logstoreに最大50個のLogstoreを関連付けることができます。
Storeview for Logstore内のすべてのLogstoreは、同じAlibaba Cloudアカウントに属している必要があります。
警告国境を越えたJOINクエリが必要な場合は、「国境を越えたデータ転送のコンプライアンス保証」を読んで同意する必要があります。 [OK] をクリックします。
ログクエリ
LogstoreのStoreviewは、クロスLogstoreクエリをサポートしています。 たとえば、logstore-1やlogstore-2などの2つのLogstoreは、Storeview For Logstoreに関連付けられ、フィールドaを含みます。 * | select a from log where a > 1
文を指定した場合、logstore-1およびlogstore-2が1より大きい
フィールドaの値が返されます。
キーワードを使用して、2つのLogstoreを含むStoreview for Logstoreのログを照会し、Logstoreのログ内容が同じである場合、異なるLogstoreの結果が返されます。 タグフィールドを使用して、ログのソースLogstoreを識別できます。
ログ分析
LogstoreのStoreviewは、Logstore間のデータ集約と統計分析をサポートします。 たとえば、logstore-1やlogstore-2などの2つのLogstoreは、LogstoreのStoreviewに関連付けられ、フィールドa
を含みます。 * | select a, count(1) group by a
ステートメントを指定すると、logstore-1とlogstore-2のフィールドaの値の総数が返されます。
集計分析では、フィールドキーは一貫している必要があります。 ログの内容が同じでキー名が異なる場合は、事前定義機能を使用して特定のデータをフィルタリングし、フィールドの名前を変更できます。 たとえば、logstore-1のフィールドa
とlogstore-2のフィールドb
を集約する場合は、フィールドb
の名前をa
に変更する必要があります。
LogstoreのStoreviewを作成するときに、Simple Log Service Processing Language (SPL) 構文に基づいて、LogstoreのStoreviewで関連するLogstoreを事前定義できます。 SPL構文は、事前定義機能を使用するときにextend
とwhere
キーワードをサポートします。 事前定義機能を使用すると、特定のデータをフィルタリングし、集計分析で一貫性のないフィールド名の問題を解決できます。 集計分析では、フィールドキーが一貫している必要があります。 logstore-1のフィールドa
とlogstore-2のフィールドb
を集約する場合は、SPLステートメントでextend a = b
を指定して、列名が一致するようにする必要があります。
次のシナリオを例として使用します。
シナリオ 1
LogstoreのStoreviewは、同じサービスの異なるLogstoreに関連付けられています。 Logstoreの内容は同じです。 この場合、Logstoreのインデックス設定が同じかどうかを確認する必要があります。 たとえば、ログストアがフルテキストインデックスを使用するか、必須フィールドのインデックス設定が同じである場合などです。 次に、関連付けのためにLogstoreをStoreview for Logstoreに追加する必要があります。
LogstoreのStoreviewを作成した後、SQL文を使用してLogstoreのStoreviewを分析できます。 次の図は、過去15分間の
status
パラメーターの値に基づいて、2つのログストアのすべてのログの集計結果を示しています。シナリオ 2
LogstoreのStoreviewは、同じサービスの異なるLogstoreに関連付けられており、Logstoreのログフィールドの名前は異なります。 この場合、事前定義機能を使用し、フィールドに同じ名前を使用するようにSPLステートメントを指定できます。 次の図では、
* | extend request_method = method
ステートメントを指定して、method
フィールドの名前をrequest_method
に変更します。 [データのプレビュー] をクリックして、定義済みの結果データをプレビューします。後続のクエリと分析で
request_method
フィールドを使用できます。
一般的なクエリと分析結果の例
シナリオの説明 | Storeview作成時の事前定義済みクエリ | Storeviewクエリと分析ページへの入力クエリ | 出力 |
logstore-1とlogstore-2にはキー列が含まれます。 | なし |
|
|
logstore-1およびlogstore-2は、列aおよびbを含む。 | なし |
| 条件 |
logstore-1とlogstore-2には、列のキーとaが含まれます。 |
|
| 条件 |
logstore-1とlogstore-2には、列のキーとaが含まれます。 |
|
|
|
logstore-1とlogstore-2には、列のキーとaが含まれます。 |
|
| y列を含め、条件を満たすすべての列が返されます。 |
logstore-1は列a、b、およびcを含み、logstore-2は列b、c、およびdを含む。 | なし |
| 列a、b、c、dが返されます。 空の値はnullに設定されます。 |
logstore-1はインデックスフィールドaおよびbを有し、logstore-2はインデックスフィールドbおよびcを有する。 | なし |
| logstore-2には列は含まれません。 logstore-1のデータのみが計算されます。 |
不整合の取り扱い
同じクエリステートメントで2つのLogstoreに異なるフィールドタイプを指定した場合、クエリ結果を返すことができます。
分析ステートメントで特定のストアのフィールドを指定した場合、指定したフィールドを含むストアの結果のみが返されます。
複数のストア間のキーインデックス設定に一貫性がない場合、エラーが返され、結果は返されません。
関連ドキュメント
次のAPI操作を使用して、Storeviewを管理できます。