如何构建分析型 BI 平台?

sfa*_*tor 1 data-warehouse database-design database-recommendation architecture vertica

我正在为一家中型公司开发一个新的 BI 项目。目前还没有分析基础设施,报告是在 Excel 中手动完成的。有几个不同的数据源(来自不同的系统,如 Billing)需要集成来执行报告和分析。其中一些是数据转储,需要一些自定义转换才能进入数据库就绪形式。这些有大量的列。这些需要处理,所需的列过滤和聚合完成等。通常每天产生大约 50 GB 的数据,并且每天将插入到现有表中。

我们发现像 Vertica 这样的分析数据库值得研究。我们之前没有使用非 OLTP 数据库的任何经验。我的理解是 Vertica(和其他类似的)是读取优化的,非常适合分析任务。我的问题是在加载和处理原始数据的初始阶段如何公平?我们是否应该使用像 Oracle 这样的传统 OLTP 数据库,然后将 Vertica 用于星型模式、维度建模类型的数据存储?Vertica 是否适合 ETL 场景?

这种场景的典型架构如何?

Con*_*lls 5

关于您在 ETL 期间使用 Vertica 的问题,很少需要(尽管并非未知)为 ETL 使用不同类型的数据库。除非您认为有特殊需要,否则我不会这样做。由于与遗留数据源的交互,我唯一听说过这样做的情况。尽管 @Kermit 与 Vertica 一起工作并且会更熟悉该平台,但我认为没有任何理由假设您的 ETL 需要另一个 DBMS 平台。

Vertica 和其他系统不适合事务应用程序的原因是它们使用读取和批量加载速度快的数据结构,但每个加载操作的开销很大。需要索引重建或其他此类操作的批处理 ETL 过程在这些系统上将不是问题。这些操作对于大容量 OLTP 平台来说太昂贵了,但对于批处理 ETL 作业来说不会太慢。

电信公司和其他 VLDB 商店使用的常见架构是使用平面文件进行中间存储,然后加载到数据库中。Ab Initio 和 Ascential Datastage 是旨在以这种方式工作的工具,这种类型的架构在电信公司中很常见。但是,ETL 工具往往不能很好地支持复杂的转换,因此您很可能最终会在数据库中进行一层数据操作。

所有 VLDB 平台都很昂贵,有些平台与专有硬件相关联。准备好在你的服务器上花大钱。3 年 50GB/天的数据大约为 50TB,这已经进入了需要专门工具包才能在这些数据量上表现良好的区域。