ログのクエリと分析を行う際に Simple Log Service コンソールで「[The results are inaccurate]」というメッセージが表示される場合、本トピックではこの問題のトラブルシューティング方法を説明します。
問題の説明
ログのクエリと分析を行う際、Simple Log Service コンソールに「[The results are inaccurate]」というメッセージが表示されることがあります。このメッセージは、Simple Log Service がすべてのログをスキャンしなかったため、返されるクエリ結果が不完全であることを示します。たとえば、nginx-log Logstore の [クエリと分析] ページで SQL ステートメント select http_referer, count(1) pv group by http_referer order by pv desc を実行します。Logstore には約 1,000 億 (100,006,376,644) 件のログエントリが含まれており、クエリ結果には「The results are inaccurate」という赤い警告が表示されます。
考えられる原因
この問題は、通常、次のいずれかが原因です。
-
クエリ時間範囲が広すぎる
3 か月や 1 年など、長いクエリ時間範囲を設定すると、Simple Log Service は 1 回のクエリでその期間内のすべてのログをスキャンできません。結果を迅速に返すために、サービスは部分的で不正確な結果を返します。
-
検索条件が複雑すぎる
たとえば、1 つのクエリステートメントで 30 個の検索条件を指定した場合、Simple Log Service は一致するすべてのログを一度に取得できません。
-
SQL 計算のデータ量が大きすぎる
分析ステートメントに複数のフィールドが含まれ、対応するデータ量が大きい場合、データ量がシャードの読み取り容量を超える可能性があります。各シャードは最大 1 GB のデータを読み取ることができます。この制限を超えると、サービスは不正確な結果を返します。
解決策
解決策 1
SQL 完全精度モード を有効にすると、クエリ結果が正確かつ完全であることが保証されます。
解決策 2
クエリ時間範囲を狭め、分析ステートメントを複数回 (最大 10 回) 実行してください。