一出上云大戏,一曲数据仓库的悲歌?

0
174
views

对于一家自身组织运行历史数十年的公司来说,数据仓库会是一种有效帮助其报告和理解相关操作的方式。

在数据仓库出现之前,对来自不同系统的数据进行报告与收集是一项昂贵、耗时而且常常徒劳无功的尝试,而数据仓库保证了来自单个存储库数据的干净与集成性。

将多种报表工具连接到单个数据模型的能力催生了一个我们目前很数据的行业: 商业智能(BI)。然而,由于复杂的方法和设计、不适当的工具以及高的开发、维护和基础设施成本所拖累,传统数据仓库体系结构和方法的原始概念应用在今天也变得不再那么易于接受。

可以说,不久前,计算依然是一个非常昂贵的资源,数据仓库还受到“稀缺性管理(managing from scarcity)”观念的限制。相反,各类方案数据设计也在尽量减少数据库的规模,比如通过聚合数据、创建复杂的子数据库设计和密切监测资源的使用等。

数据仓库,已凉?

随着大数据,尤其是Hadoop的崛起,我们经常会听到供应商、分析师和大咖们说数据仓库已经死了。人们常说,大数据是游戏规则改变者和数据仓库的继承者。但它其实不是,如果说有什么区别的话,那就是大数据为数据仓库提供了一个实现(或者至少是将其延伸到更接近其原始目地的地方)的机会:成为有用的、可操作的分析数据来源。

但数据仓库的思考者必须放弃对物理结构的执着才能做到这一点。相反,未来的数据仓库将不得不与许多不同的数据源合作。它将充当一种虚拟结构,运行一种“安静的”历史数据仓库,并进行极致化、不受约束的分析数据库以提供实时更新和实时响应,此外它还将运行其他非关系型大数据集群(如Hadoop)的包围策略。这样,大数据会迫使组织扩大其分析业务的规模,无论是在数量上还是在投入的种类上,而同样重要的是,要扩展其关于如何在组织内外扩展和加强技术使用的愿景。

本地部署?云?混合?

以下是目前部分(但不完整)的数据仓库平台列表:

传统数据仓库“幸存者”,他们最初是本地部署,现在是混合模式:IBM、Microsoft、Teradata、Pivotal/Greeenplum、Oracle

纯云:Redshift、Snowflake、Incorta、Google

一般来说,关系型数据库(RDB)的数据仓库继承了上述这些模式的所有优点和缺点,特别是对于那些专为事务处理而设计的RDB而言,但是后者的设计初衷是为了数据仓库和它们用以支持分析的特别处理需求。

对于微软,IBM和Oracle来说都是如此。在数据仓库的早期阶段,这三种产品的性能非常差,这促使客户寻求了那些专为数据仓库运营而设计的产品,例如Teradata,Red Brick,Pivotal / Greemplum,Vertica以及Paraccel,后者的来源代码由亚马逊授权并重新命名为Redshift。厂商们在改进他们数据仓库产品方面取得了一定的进展。如微软授权Sybase为SQLServer提供代码,IBM和Oracle也不断改进和改进他们的产品。

就目前而言,所有五个“幸存者”都拥有完整的云,本地部署和混合云解决方案。问题是,“纯云计算”产品和“幸存者”的云产品真的有什么不同吗?每个产品都有一系列重叠的功能,但核心问题是:

基于云的数据仓库有哪些优势?

与纯云产品相比,“幸存者”是否提供了足够的优势?

大数据服务公司Alooma 指出:“每个云仓库都有自己的结构,而不是遵循特定的结构。例如,Amazon Redshift模仿传统数据仓库的结构,而谷歌BigQuery根本不使用服务器,它允许用户查询和共享数据,而无需设置和支付存储费用。”

那么,云数据仓库会带来些什么?

规模/扩展性:通常,计算资源是数据仓库中比数据存储更昂贵的组件。通过将计算资源从存储中分离出来,数据仓库可以存储大量数据,并按要求处理信息。在本地方案中,所有这些数据都需要以高得多的成本进行本地存储。

灵活性:通过将数据从计算流程中分离出来,用户可以创建所需的任意数量的虚拟数据仓库。

性能:这仍然是一个一目了然的事情,在数据仓库/分析查询中,仅仅多运行几个服务器并不意味着性能的提升。让Teradata这样专门的厂商如此成功的原因是,几十年的工程设计,大规模的并行处理优化和工作负载的管理技术,或许最重要的是,Teradata提供软件引擎与用户所运行的专有硬件之间的链接,并且性能还在不断改善。

成本:每个人都在说云改变了定价模式,但是没人确定实施的成本是多少。廉价存储的诱惑可能会导致事情失控,因为它可能是相对便宜的,但终归不是免费的。所有的传统厂商都转向了订阅定价方案,但每个合同都非常复杂。这里建议是聘请一位合同和定价细节方面的专家(我们在ERP领域中经常看到这一点)。

安全性:这是一个棘手的问题,因为有太多的接入点,尤其是在混合解决方案中。大多数数据库产品会实施针对内部威胁的安全性,但是近些年来自外部威胁的激增。

一个数据仓库应具有哪些能力?

支持任何数据局部性(本地磁盘、Hadoop、私有和公有云数据)。

数据库内高级分析。

能够处理本地各类型数据,如空间、时间序列和/或文本。

能够运行新的分析工作负载,包括机器学习、地理空间、图形和文本分析。

灵活部署,包括在本地、私有和公有云上。

大数据查询优化。

复杂的查询形式。

基于模型的大规模并行处理,而不仅仅是分片处理。

工作负载管理。

负载平衡。

可扩展到数千个并发查询。

完整的ANSI SQL及更多。

写在最后

原生云数据仓库数据库可能提供以前的“幸存者”数据库所没有的功能和优势,但是它们有多健壮呢? 我们目前不好妄下评论,但是,一些纯云产品在满足用户的许多需求方面都相对较差。它们是数据仓库产品,还是现有模块的集合,并将其绑定在PowerPoint幻灯片上?例如,Cloudera的数据仓库中没有任何在他们开始称之为数据仓库之前不存在的东西。就像把不同物种的不同细胞系扔进培养皿里,就称其为有机体。

这里,或许还是那句老话“不管黑猫白猫,抓到老鼠就是好猫”。大数据吹们总是试图抛弃掉传统数据仓库,只是强调它实施和技术问题,而没有理会它对于组织的价值。所谓的“数据湖”可能并不是一个好方案。