在傳統的數據建模中,我創建每小時和每日彙總表以減少數據存儲並提高查詢響應時間。但是,創建類似彙總表的嘗試很容易遇到「響應太大而無法返回」錯誤。使用BigQuery創建彙總表的建議方法是什麼?我需要減少數據以降低存儲和查詢成本。如何在BigQuery中每小時創建一個每日彙總表而不會遇到「響應太大而無法返回」的錯誤?
Thx!
在傳統的數據建模中,我創建每小時和每日彙總表以減少數據存儲並提高查詢響應時間。但是,創建類似彙總表的嘗試很容易遇到「響應太大而無法返回」錯誤。使用BigQuery創建彙總表的建議方法是什麼?我需要減少數據以降低存儲和查詢成本。如何在BigQuery中每小時創建一個每日彙總表而不會遇到「響應太大而無法返回」的錯誤?
Thx!
這聽起來像你將所有的數據附加到一個表中,然後想要創建更小的表來查詢......是否正確?
一種選擇是在每小時切片中加載數據,然後通過使用write_disposition = WRITE_APPEND執行表複製操作來創建daily和'all'表。或者,您可以在查詢中使用多個表格。例如select foo from table20130101,table20130102,table20130102
。 (注意,這不會執行連接,它會執行UNION ALL,這是bigquery查詢語法的一個怪癖)。
如果很難更改表格的佈局,目前不支持更大的查詢結果大小,但這是我們最需要的功能之一,我們將它列爲高優先級。
另外,創建較小的表並不一定會提高查詢性能,因爲bigquery會盡可能並行處理查詢。它不會降低存儲成本,除非您只是要存儲部分表格。當然,這會降低查詢的成本,因爲對較大的表運行查詢會更昂貴。
如果您描述您的情況多一點,我可能會提供更具體的建議。
最初1分鐘粒度數據的詳細信息被插入到每小時表。預計每小時插入到每小時約1,500,000條記錄。然後每小時彙總將時間粒度從1分鐘減少到10分鐘。每日表格,將時間從10分鐘改爲1小時。每次彙總基本上將所有4個整數測量結果和5個維度組合。我沒有很多專欄,但我在維度上有很多獨特的價值。 – 2013-05-01 22:44:40
jobs.insert查詢配置有一個新的實驗標誌 - 「allowLargeResults」。這要求您爲查詢設置目標表,但會允許任何大小的響應。這仍然是一個實驗性命令。目前,使用這個的唯一方法是直接調用api。但是,支持應該儘快在bq.py命令行工具中。 – 2013-05-01 23:36:57
您的其他選項當然是將彙總查詢分解爲多個查詢並將結果附加在一起。你可以用'SELECT foo,sum(bar)FROM table WHERE ABS(HASH(foo))%10 ==
最近發佈的BigQuery功能允許大量的結果!
現在您可以指定標誌和目標表。任意大小的結果將被存儲在指定的表中。
https://developers.google.com/bigquery/docs/queries#largequeryresults
檢查https://developers.google.com/bigquery/docs/queries#largequeryresults,下面 – 2013-06-12 02:06:51