建议大规模数据仓库系统

时间:2008-10-31 22:25:58

标签: amazon-ec2 data-warehouse

我需要存储大量数据,并且能够生成报告 - 每个数据代表一个网站上的事件(我们说的是每秒超过50个,所以很明显需要汇总旧数据)。

我正在评估实现这一点的方法,显然它需要是可靠的,并且应该尽可能容易扩展。还应该可以灵活有效地从数据生成报告。

我希望有些SOers拥有此类软件的经验,可以提出建议,并且/或指出陷阱。

理想情况下,我想在EC2上部署它。

4 个答案:

答案 0 :(得分:4)

哇。你正在开辟一个巨大的话题。

我头顶的一些事情......

  1. 仔细考虑您在事务部分中插入的模式并读入报告部分,如果您的数据量非常大,最好将它们分开
  2. 仔细查看您在交易的实时报告与历史数据的汇总报告之间可以容忍的延迟。也许你应该有一个定期运行并聚合交易的流程。
  3. 仔细查看您在交易和汇总数据中进行报告的任何要求,无论是在同一报表中,还是从一个报表钻取到另一个报告
  4. 具有一些有意义的查询和一些实际数据量的原型
  5. 为自己创建一个真正的生产质量,企业就绪数据库,即Oracle / MSSQL
  6. 考虑使用其他人的代码/产品进行报告,例如Crystal/BO / Cognos
  7. 正如我所说,这个话题很大。我想到更多,我会继续添加到我的列表中。

    HTH祝你好运

答案 1 :(得分:1)

@ Simon提出了很多优点,我只是添加一些并重新/重点强调其他一些:

  1. 使用正确的时间戳数据类型 - 确保DBMS具有适当的精度。
  2. 考虑排队捕获事件,允许多个线程/进程处理事件的实际存储。
  3. 分离事务和数据仓库的架构
  4. 认真考虑从事务数据库到数据仓库的定期ETL。
  5. 请记住,您可能不会有50笔交易/秒24x7x365 - 峰值交易与平均交易
  6. 调查DBMS中的分区表。 Oracle和MSSQL都会对值进行分区(如日期/时间)。
  7. 从一开始就制定归档/数据保留政策。太多项目只是开始记录数据而没有任何计划来删除/存档它。

答案 2 :(得分:1)

我很惊讶这里的答案都没有涵盖Hadoop和HDFS - 我建议这是因为SO是一个程序员qa而你的问题实际上是一个数据科学问题。

如果您处理大量查询和大量处理时间,您可以使用HDFS(EC上的分布式存储格式)来存储数据并在商用硬件上运行批量查询(即分析)。

然后,您可以根据需要配置尽可能多的EC2实例(数百或数千个,具体取决于您的数据处理要求的大小),并运行map reduce queires来反对您的数据以生成报告。

答案 3 :(得分:0)

哇..这是一个很大的话题。

让我先从数据库开始。如果你有疯狂的数据量,首先要获得好处。我喜欢Oracle和Teradata。

其次,记录交易数据和报告/分析之间存在明确的区别。将您的交易数据放在一个区域中,然后定期将其汇总到报告区域(架构)中。

我相信你可以采取这两种方式

  • 在这个问题上投入资金:购买一流的软件(数据库,报告软件)并聘请一些光滑的技术人员来帮助

  • 采取本土方法:只建立你现在需要的东西,并有机地发展整个事物。从一个简单的数据库开始,构建一个Web报告框架。有很多血统的开源工具和廉价的代理商可以完成这项工作。

就EC2方法而言......我不确定这如何适合数据存储策略。处理是有限的,这是EC2强大的地方。您的主要目标是有效的存储和撤销。