1

BigQueryの精度を向上させるための問題があります。使用例は次のとおりです。16億レコードのテーブルを使用していますが、このテーブルはそれほど大きくないため、一意のユーザーを見つけようとしています。

最初は「カウントディスティンク」を使用することを考えましたが、ドキュメントに大量のデータが記載されているため、推定結果が得られます。これを改善するために、「countdistinct」ステートメントの代わりに「count+groupby」を試します。しかし、bigqueryの結果は応答が大きすぎます。最初にUserIDでグループ化し、このアイデアを継続しましたが、データの数を減らし、特定のキャンピングを選択し、データの量を大幅に減らしました。しかし、結果は同じで、応答が大きすぎます。

bigQueryで正確に、ユニークユーザーを獲得する方法についてのアイデアや意見はありますか?

4

1 に答える 1

3

COUNT(DISTINCT field)あなたが気づいたように、おおよその答えを返します。Nの値を大きくすると、精度を向上させることができますCOUNT(DISTINCT field, n)。この値を大きくすると、結果の精度が高くなりますが、設定が高すぎると「結果が大きすぎます」というエラーが発生する可能性があります。

GROUP EACH BYを使用すると、正確な一意のカウントを取得できます。これにより、同じクエリで他の値を計算するのが難しくなる可能性がありますが、GROUPEACHBYは任意のサイズのテーブルで機能します。例えば:

select count(*) from (select field from dataset.table GROUP EACH BY field)
于 2012-05-10T18:49:15.627 に答える