Search and Analysis
Search and analysisは、VeloDB Studioによって起動されます。ログ分析シナリオ用のクエリツールで、ログの検索、クエリ、集計を簡単に行うことができます。
検索・分析機能の紹介
インタラクティブな検索・分析インターフェースは、Kibana Discoverページに類似しており、ログ検索の詳細な体験を最適化し、4つのエリアに分かれています:
-
上部の入力エリア: クラスタ、Table、時間フィールド、クエリ時間範囲を選択します。メイン入力ボックスは2つのモードをサポートしています:キーワード検索とSQL。
-
左側のフィールド表示・選択エリア: 現在のTableの全フィールドを表示します。右側の詳細表示エリアに表示するフィールドを選択できます。フィールドにマウスを合わせると、このフィールドの5つの値と出現割合が表示されます。値によってさらにフィルタできます。フィルタ条件は入力エリアのフィルタ部分に反映されます。
-
中央のトレンドチャート表示・インタラクション エリア: 特定の時間間隔で条件を満たすログの数を表示します。ユーザーはトレンドチャート上でボックス内の期間を選択してクエリ時間範囲を調整できます。
-
下部の詳細データ表示・インタラクション エリア: ログの詳細を表示し、クリックして特定のログの詳細を表示できます。tableとJSONの2つのフォーマットをサポートしています。table形式はインタラクティブなフィルタ条件の作成もサポートしています。
Query > Search Analysisをクリックし、Tableをinternal_schema > audit_logとして選択すると、Studioは自動的にTable内のフィールドをクエリし、最初の時間フィールドを選択します。
フィールド割合の表示
- 左側のstateフィールドにマウスを合わせると、最高頻度のstate値EOF、OK、ERRが表示され、割合も確認できます。さらに、プラス記号(+)またはマイナス記号(—)ボタンをクリックしてフィルタ条件を作成することもできます。例えば、ERRの右側のマイナス記号(—)ボタンをクリックすることで、ERRの右側のマイナス記号(—)ボタンをクリックすることで、フィルタ条件にstate != ERRが表示されます。
フィールドの割合は、クエリ内の500件のデータの割合を示しています。データ量が大きい場合、エラーが発生する可能性があります。全量データの割合が必要な場合は、SQLを通じてクエリできます。後続のバージョンでこの機能を最適化予定です。
検索による結果のフィルタ
- メイン入力ボックスで、検索とSQLモードを使用してキーワードをクエリします。
検索モードは転置インデックスを持つTableでのみサポートされています。参照: https://doris.apache.org/docs/table-design/index/inverted-index
検索ボックス下でSearchを選択し、右側にGETと入力し、Queryをクリックします。検索モードでは、キーワードGETを含むログを検索します。詳細のGETはハイライト表示され、トレンドチャートのデータストリップ数も対応して変化します。
任意のキーワードにマッチするMATCH_ANYステートメントを検索すると、ログ内の任意のフィールドにマッチできます。
検索結果のハイライト表示は、可能な限りすべての検索キーワードにマッチしようとしますが、一部の特殊文字により、常に検索キーワードと正確にマッチするとは限りません。
検索では二重引用符を使用してフレーズを囲むことができます。例:"GET /api/v1/user"。フレーズ全体にマッチします。フレーズはMATCH_PHRASEを使用してフレーズにマッチします。
より精密なマッチが必要な場合は、SQLパターンを使用できます。
検索原理やMATCH_ANYおよびMATCH_PHRASEについて質問がある場合は、ドキュメント [Inverted Index] (https://doris.apache.org/docs/3.x/table-design/index/inverted-index#usage-scenarios)を参照してください。
SQLを通じた結果のフィルタ
検索ボックス下でSQLを選択し、SQLモードでSQL WHERE条件を入力し、Queryをクリックします。
フィルタ結果詳細の表示
ログ詳細を展開し、TableまたはJSON形式をオプションで選択できます。Table形式はインタラクティブなフィルタ作成をサポートしています。
コンテキストの表示とさらなる検索
右側のコンテキスト検索をクリックして、このログの前後10ログを表示します。コンテキスト検索でフィルタ条件を継続して追加できます。
VARIANTデータ型のフィルタ
Doris 2.1で新しいデータ型VARIANTが導入されました。半構造化JSONデータを格納できます。VARIANT型は、いつでも変更される可能性のある複雑なネスト構造の処理に特に適しています。
StudioはVARIANTデータ型を認識し、そのデータ型の階層を自動的に展開し、特別なフィルタ方法を提供します。
github_eventsTableを例に、VARIANTデータ型のフィールドをフィルタする方法を示します。
フィルタ条件では、VARIANTデータ型のフィールドを選択し、その中のサブフィールドを選択してフィルタできます。
SQLモードでは、[]を使用してVARIANTデータ型のフィールドにアクセスできます。
FAQ
なぜデータが見えないのですか?
-
クラスタ、Table、時間フィールドが正しく選択されているかご確認ください。
-
時間範囲が正しく選択されているかご確認ください。
-
フィルタ条件があるかご確認ください。
Tableに転置インデックスをどのように作成すべきですか?
Table作成時に転置インデックスを設定することも、既存のTableに転置インデックスを作成することもできます。
ドキュメント [Management Index] (https://doris.apache.org/docs/3.0/table-design/index/inverted-index)を参照してください。
Variant型を使用したデータ格納のチュートリアルはありますか?
ドキュメント Variant タイプを参照してください。
コンテキストインデックスのログが十分に正確でなく、一部のログが見つけられませんか?
より高精度のDateTimeフィールドを使用することで、コンテキストインデックスの精度を向上させることができます。例:DateTime(3)