Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 关于大型数据仓库系统的建议_Amazon Ec2_Data Warehouse - Fatal编程技术网

Amazon ec2 关于大型数据仓库系统的建议

Amazon ec2 关于大型数据仓库系统的建议,amazon-ec2,data-warehouse,Amazon Ec2,Data Warehouse,我需要存储大量数据,并且能够生成报告——每一个数据都代表网站上的一个事件(我们说的是每秒50多个数据,因此显然需要聚合较旧的数据) 我正在评估实现此功能的方法,显然它需要可靠,并且应该尽可能易于扩展。还应该能够以灵活高效的方式从数据生成报告 我希望一些SOER具有此类软件的经验,可以提出建议,和/或指出缺陷 理想情况下,我希望将其部署到EC2上。哇。你打开了一个巨大的话题 我脑子里就有几件事 仔细考虑事务部分的插入和报告部分的读取模式,如果数据量很大,最好将它们分开 仔细观察您可以容忍的事务实时

我需要存储大量数据,并且能够生成报告——每一个数据都代表网站上的一个事件(我们说的是每秒50多个数据,因此显然需要聚合较旧的数据)

我正在评估实现此功能的方法,显然它需要可靠,并且应该尽可能易于扩展。还应该能够以灵活高效的方式从数据生成报告

我希望一些SOER具有此类软件的经验,可以提出建议,和/或指出缺陷


理想情况下,我希望将其部署到EC2上。

哇。你打开了一个巨大的话题

我脑子里就有几件事

  • 仔细考虑事务部分的插入和报告部分的读取模式,如果数据量很大,最好将它们分开
  • 仔细观察您可以容忍的事务实时报告和历史数据聚合报告之间的延迟。也许您应该有一个周期性运行并聚合事务的流程
  • 仔细查看任何要求,如果您在同一个报告中报告事务数据和聚合数据,或者从一个向下钻取到另一个
  • 原型包含一些有意义的查询和一些真实的数据量
  • 为自己建立一个真正的生产质量、企业级数据库,即Oracle/MSSQL
  • 考虑使用其他人的代码/产品进行报告,例如:
  • 正如我所说,这是一个巨大的话题。当我想到更多的时候,我会继续添加到我的列表中

    HTH和good luck

    @提出了许多优秀的观点,我只想补充一些,并重复/强调其他一些观点:

  • 为时间戳使用正确的数据类型-确保DBMS具有适当的精度
  • 考虑排队捕获事件,允许多个线程/进程处理事件的实际存储
  • 将事务和数据仓库的架构分开
  • 认真考虑从事务数据库到数据仓库的周期性ETL。
  • 请记住,您可能不会有50个事务/秒24x7x365-峰值事务与平均事务
  • 研究DBMS中的分区表。Oracle和MSSQL都将根据一个值(如日期/时间)进行分区
  • 从一开始就制定归档/数据保留策略。太多的项目只是开始记录数据,却没有删除/归档数据的计划

  • 哇。。这是一个巨大的话题

    让我从数据库开始。首先,如果你想获得大量的数据,就要做些好事。我喜欢Oracle和Teradata

    其次,记录事务性数据和报告/分析之间存在明确的区别。将事务数据放在一个区域中,然后按照常规计划将其汇总到报告区域(模式)

    我相信你可以用两种方法来解决这个问题

    • 花钱解决这个问题:购买一流的软件(数据库、报告软件)并雇佣一些技术人员来帮助解决

    • 采取自产自销的方法:现在只建造你需要的东西,然后有机地发展整个东西。从一个简单的数据库开始,构建一个web报告框架。有很多开源工具和便宜的机构做这项工作


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

    我很惊讶这里没有一个答案涉及Hadoop和HDFS——我认为这是因为程序员qa也是如此,而你的问题实际上是一个数据科学问题

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


    然后,您将根据需要提供尽可能多的EC2实例(数百或数千个,取决于您的数据处理需求有多大),并针对您的数据运行map reduce queires以生成报告。

    谢谢!我听到其他人推荐Oracle和Microsoft的解决方案。我可以推断开源数据库不能胜任这项任务吗?我想你可以推断,在你看来,还有很多现成的解决方案是针对Oracle/MSSQL优化的。如果我说开源数据库不能胜任这项任务,那么我将被投票潮淹没。现实情况(正确或错误)是,MSSQL和Oracle尤其是非常稳定的经验证的数据库平台,通常在您的生命垂危时是首选。