紅移文檔識別時間序列表作爲最佳實踐: http://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-time-series-tables.html紅移時間序列表加載問題
但是,它並沒有解決任何的下列問題:
- 多少桌在工會內部 - 所有觀點都是合理的 - 數百? (無法解答)
- 任何寫入union-all視圖並使用redshift將任何方法寫入正確的基礎表的方法? (答案:否)
- 加載底層表的最有效方法是什麼?也許使用firehose插入登臺表,然後定期將這些行插入union-all視圖內的適當表中? (無法回答)
- 任何方式來啓用紅移消除一些底層分區(表)時查詢union-all視圖,如果他們的日期範圍是在查詢的標準之外? (答案爲否)
- 可以支持紅移支持刪除舊錶,添加新表以及在事務內重建union-all視圖? (懸而未決)
我的情況:
- 億行每天新增,這將增長到了500萬在3年內
- 12個月保留所需
- 估計所有的99%查詢將觸及最近1-7天
- 數據通過kinesis firehose寫入到現有表中,然後s3觸發副本到紅移表。
我提出的解決方案:
- 創建年的日表與UNION ALL視圖,與sensor_id的dist_key(100,000 uniq的值)和(時間戳,sensor_id)一sort_key一起。
- 有流水加載到臨時表
- 創建獨立的過程,一次一個小時的查詢臨時表來表中發現數據的日期,然後執行插入「適當的表」選擇從那裏戳=表的時間戳*。
- 此小時寫入程序可能會包含表重命名,多重插入選擇和表在事務中重新創建以便不可見。
- 每月一次刪除舊錶,創建表的下個月和重建視圖。
- 這種union-all視圖維護可能可能被封裝在一個事務中以避免對用戶產生影響。
- 一旦夜間運行真空分析儀。
EDITS:增加的筆記,用於識別哪些問題已被回答,併爲建議的解決方案添加了一些細節。
我目前正在做類似的事情。你過去了嗎?你有什麼經驗?任何關於執行例如UNION的性能影響的見解30個表格(月份數據)? –
我沒有實現時間序列表 - 事實上,它對功能非常失望:亞馬遜的文檔完全不足,看起來你得到零分區的好處,但它使查詢計劃更加困難,直接簡單的加載(比如說firehose)不可能。唯一的好處是滾出數據,也許分析和吸塵。到目前爲止,我的解決方案是現在忽略問題並評估雪花。 – KenFar
我感覺你。他們把它作爲PB級倉庫銷售。我想知道petabyte規模真空吸塵器是如何工作的:)雪花似乎很有趣。你有沒有試過BigQuery?它對分區有很好的支持(至少在文檔中)。 –