【发布时间】:2014-05-12 20:13:29
【问题描述】:
我在 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'"
现在,税务部门需要将这些数据放入数据仓库,以便他们可以计算任何一天的每个航班或任何一天或特定日期内的所有航班的预订曲线。目前他们正在通过 excel 执行此操作,该操作通过 sql 获取数据,但它非常耗时且不提供实时数据。后来他们想从我们的公司预订网站收集数据,并想在这个数据仓库上管理客户资料,这将是我们的主要分析平台。我刚接触数据仓库,学习和研究如何实施有效的数据仓库以满足他们的需求。
有人可以帮助我如何收集数据吗?我应该将它上传到 dynamodb 还是 s3,作为一次性工作和经常性工作的最佳方法是什么?
此数据仓库的后续目标是绘制与 PNR 相关的所有信息。按天、按舱位、按子舱位、按事件等划分的航班收入。
后期,每次用户与我们的网站交互时,我都想将其存储在 redshift 中。那么我应该什么时候将文件写入 S3 或 dynamodb?有多少?即:-如果我确实在每个用户事件上将文件写入 S3,我最终会得到数百个文件,这似乎不是一个好的解决方案。引入 RDS 或 dynamodb 来存储每笔交易怎么样?或者是否可以允许服务器日志文件存储信息(用户在网站上的交互)并将任何事件(预订、取消等)记录到 RDS 或 Dynamodb 中?
什么是最佳实践?在我的特定场景中,最好的设计可能是什么?另外,如果有人可以请进一步说明如何实施?
在几分钟或几秒钟内返回包含 1-5 TB 数据的报告并避免任何重复或延迟的最佳做法是什么?
还有人可以建议如何易于维护并具有成本效益并与一些最佳解决方案相提并论?
我将非常感谢任何针对我的要求的数据仓库、亚马逊(Redshift、s3、Dynamo Db)技术主题的帮助、链接和建议。
【问题讨论】: