2
我存儲了TB級的點擊流類型的用戶事件數據。它需要按日期進行索引或分區,以便合理快速地查詢較窄的日期範圍。我希望能夠在此上運行聚合作業和查詢。我希望在Amazon EMR或類似的東西中使用Spark。DynamoDB vs S3平面文件?
一種選擇是由天+小時等分開S3平面文件:
s3://my-bucket/20160503_00/data.txt
s3://my-bucket/20160503_01/data.txt
s3://my-bucket/20160503_02/data.txt
我會更傾向於使用木地板列存儲,而不是原始文本,如:
s3://my-bucket/20160503_00/data.parquet
s3://my-bucket/20160503_01/data.parquet
s3://my-bucket/20160503_02/data.parquet
另一種選擇是完全亞馬遜DynamoDB?
每個的優點/缺點是什麼?
不確定SO是pro/con的最佳來源 - 但是:如果您使用s3,則壓縮存儲您的內容以節省大量空間和IO週期(因爲您正在有效地存儲文本,所以它會很好地壓縮。 )也要保持低的記錄 - 文件比率(即每個文件每秒不超過1條記錄,將它們聚合到每個文件一分鐘的值,或者任何可能的情況下)。當我做了很久以前的事情時,我們會每秒同步到s3,但每5分鐘回來並將每秒數據聚合成更大的塊。) – keen