我正在为一家中型公司做一个新的BI项目。目前还没有分析基础设施,报告是在Excel中手工完成的。有几个不同的数据源(来自不同的系统,如计费)需要集成来执行报告和分析。其中一些是数据转储,需要一些自定义转换才能进入数据库就绪表单。它们有大量的列。这些需要处理,所需的列过滤和聚合等。通常有大约50 GB的数据每天产生,并将被插入到现有的表每天。
我们已经确定像Vertica这样的分析数据库是值得一查的。我们以前没有任何非OLTP数据库的经验。我的理解是,Vertica (和其他类似的)是阅读优化和善于分析的任务。我的问题是,在原始数据加载和处理的初始阶段,如何公平?我们应该使用像Oracle这样的传统OLTP数据库,然后使用Vertica for Star Schema,即维度建模类型的数据存储吗?Vertica是否适合ETL场景?
这类场景的典型架构是怎样的?
发布于 2014-08-31 19:11:06
关于在ETL期间使用Vertica的问题,很少有必要(虽然不是未知的)为ETL使用不同类型的数据库。除非你认为有必要这样做,否则我不会这样做。这是我听说过的唯一一次,这是由于与遗留数据源的交互而造成的。尽管@Kermit与Vertica一起工作,并且将更熟悉这个平台,但我不认为您需要为您的ETL提供另一个DBMS平台。
Vertica和其他系统不适合事务性应用程序的原因是,它们使用快速读取和批处理加载的数据结构,但是每次负载操作都有很大的开销。在这些系统上,需要重新构建索引或其他此类操作的批处理ETL进程将不是问题。对于一个大容量的OLTP平台来说,这些操作太昂贵了,但是对于批处理的ETL作业来说不会太慢。
telcos和其他VLDB商店使用的一个常见架构是使用平面文件作为中间存储,然后加载到数据库中。Ascential和Ascential是设计来以这种方式工作的工具,这种类型的体系结构在电信公司中很常见。然而,ETL工具往往无法很好地支持复杂的转换,因此您很可能最终会在数据库中进行一层数据操作。
所有的VLDB平台都是昂贵的,有些是与专有硬件捆绑在一起的。准备在你的服务器上花大钱。以50 at /日计算的3年数据约为50 to,这将进入您需要专门工具包才能很好地处理这些数据卷的地区。
发布于 2014-08-31 15:38:15
我将假设您已经有了实现某些数据仓库解决方案的预算。简单地讲一下Vertica;它是一个负载和读取优化平台,当然不是为OLTP设计的。
关于分期和处理数据的部分需要更多的思考。Vertica的设计并不是为了让数据被分阶段、清洗和转移到生产中。虽然它可以这样做,但如果您可以在数据到达Vertica之前使用ETL工具或其他进程来执行处理,那么您将获得最好的性能。
关于架构,围绕业务需求有许多因素。显然,任何一种数据库平台的实现都将比使用Excel提前一光年。但是,如果需要快速捕获实际事务,然后将数据移动到OLAP,您可能需要考虑拥有一个OLTP。一些组织将用户直接需要的某些数据直接加载到Vertica,而另一些组织则整天对数据进行分批处理。
因为Vertica是由TB授权的,所以您需要仔细考虑实际需要多少数据才能进行分析。使用50 GB的数据,您将需要大约1.5TB来存储一个月的数据。如果您想使用这个平台,社区版本允许在多达3个节点上最多提供1TB的原始数据。
https://dba.stackexchange.com/questions/75372
复制相似问题