我在一個Sql服務器表中預訂了一些乘客的航班預訂數據。亞馬遜數據倉庫的體系結構和設計
下面的查詢凸顯隨着加入所涉及的所有表
"SELECT distinct * FROM
Booking B
JOIN BookingPassenger BP
ON B.BookingId = BP.BookingId
JOIN PassengerJourneyLeg PJL
ON PJL.PassengerId = BP.PassengerId
JOIN InventoryLeg IL
ON IL.InventoryLegId = PJL.InventoryLegId
join passengerjourneysegment ps
on ps.PassengerId= BP.PassengerId
WHERE IL.departuredate = '2014/03/26' and il.flightnumber = 123
AND B.CreatedDate < '2014/03/22'"
現在收入部門需要這些數據放入一個數據倉庫,以便他們可以計算在任何一天每個航班預訂曲線或所有航班在任何一天或特定日期。目前他們正在通過使用通過sql讀取數據的excel來完成它,但這非常耗時,並且不會提供實時數據。之後,他們希望從我們的企業預訂網站收集數據,並希望管理此數據倉庫中的客戶檔案,這將成爲我們的主要分析平臺。我對數據倉庫以及如何實施有效的數據倉庫以滿足他們的需求進行學習和研究是新鮮事物。
有人可以幫我嗎我應該如何收集數據?我應該將它上傳到dynamodb或s3中,做一次性工作和重複性工作的最佳方法是什麼?
該數據倉庫的後期目標是繪製所有與PNR相關的信息。飛行收入按天,按類別,按小類,按事件等。
後期階段,每次用戶與我們的網站互動,我想存儲在紅移..所以,當我應該寫文件到S3或dynamodb ?和多少?即: - 如果我在每個用戶事件上將文件寫入S3,我最終會得到數百個文件,這似乎不是一個好的解決方案。如何引入RDS或dynamodb來存儲每筆交易?或者是否有可能允許服務器日誌文件存儲信息(用戶在網站上的交互)以及是否有任何事件(預訂,取消等)被記錄到RDS或Dynamodb中?
什麼是最佳實踐?什麼可能是我的特定場景中的最佳設計?另外如果有人可以請給予更多的澄清如何才能實施?
有什麼最佳實踐可以讓報告使用1-5 TB的數據在幾分鐘或幾秒內回來並避免任何重複或延遲?
也可以有人建議如何能夠輕鬆維護,並具有成本效益,並與一些最好的解決方案相提並論嗎?
我將非常感謝任何關於數據倉庫,亞馬遜(Redshift,s3,Dynamo Db)技術專門針對我的需求的任何幫助,鏈接和建議。