BigQuery に保存されているいくつかのテーブルに対してクエリを実行する JavaScript でクライアント側アプリを開発するように依頼されたので、現在、クエリ構文を把握しています。
私のスキーマには、特に次のフィールドがあります。
download_speed: FLOAT
real_address: STRING
timestamp: INTEGER
upload_speed: FLOAT
[...]
異なる日ごとに集計された平均アップロード速度とダウンロード速度を見つけ、さまざまな IP も追跡したいので、次のクエリを書きました。
SELECT LEFT( FORMAT_UTC_USEC(UTC_USEC_TO_DAY(timestamp*1000000)),10) as date_day,
AVG (download_speed)avg_download,
AVG (upload_speed)avg_upload,
real_address
FROM [xxxxxxxxxxxx:xxxxxxx.xxxx]
GROUP BY date_day, real_address
ORDER BY date_day ASC
これは問題ありませんが、結果は横ばいです。時間軸にプロットできるように、平均速度を毎日集計する必要があります。クライアント側のクエリによって返された json を処理する可能性が 1 つありますが、優れたデータセットとさまざまなアドレスを持つさまざまなユーザーが多数いる場合 (想定どおり)、このアプローチは自殺行為に思えます。
そのため、特定の日のすべてのアドレスをフィールドに格納した配列を保存する方法があるかどうかを自問していました。このタプル構造を返してもらいたい:
+---------------+-------------------+--------------------+--------------------+
| date_day | avg_download | avg_upload | real_addr_list |
+---------------+-------------------+--------------------+--------------------+
| | | | 79.20.xx.xx, |
| 2013-01-13 | 510574.63 | 29599.92 | 151.46.xxx.xx, |
| | | | 151.70.xx.xx |
+---------------+-------------------+--------------------+--------------------+
それは可能ですか、それとも BigQuery の外部で結果を処理する必要がありますか?
よろしくお願いします。