数据仓库——如何量化评价一个数据仓库的好坏?
Posted 北京小辉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据仓库——如何量化评价一个数据仓库的好坏?相关的知识,希望对你有一定的参考价值。
为了回答这个问题,小编特意邀请了我司的数仓专家 Frank Li。他在加入 Kyligence 之前,曾在SAP 数据仓库领域工作十多年,在两家美资世界五百强企业带领中国数仓团队实施维护了多个全球化数仓项目,包括全新实施、维护、系统升级和迁移等。Kyligence 作为数仓中的核心组件,公司也参与了多个大型机构中数仓升级项目。就这些项目经验, 小编总结了一些心得来帮助企业考量数据仓库的优劣。首先,数据仓库并不是一个新概念,在2000年前后,各大厂商就已经推出了各种数据仓库。这些数据仓库大都基于关系型数据库,经过多年发展均已稳定成熟,在大量企业发挥着自己的作用。近年来,随着大数据技术的广泛使用,基于 Hadoop 的数据仓库技术也蓬勃发展。相比传统数仓也有颇多特色。在小编看来,给数仓打分可以从以下几个层面考量。
一、基本功能
- 能否支持复杂的模型和复杂的ETL逻辑。
- 数据管理功能,例如原始数据增、改、删之后,是否可以追溯该条数据的来龙去脉。不少厂商提供了 Time Travel 功能来做数据回滚。
- 数据模型、报表、代码等管理功能。使用多年后,数据仓库中的表、模型可能数以万计。需要可靠地管理好表、数据、报表和ETL代码等。
- 提供统一的接口给业务用户。例如销售数据集中“销售成本”的定义可能极为复杂,而业务用户需要能够直接使用定义好的表和字段。
- 权限功能,例如在报表的单元格级别设置用户访问权限,以及开发人员能对哪些模型进行哪些操作等。
- 大型数据仓库随时有大量后台 ETL 任务运行,也有大量用户在访问数据。因此需要提供可靠的监控系统供运维团队使用。
二、性能
- 查询性能:数据仓库的业务用户对查询性能比较敏感。如果大量查询都需要等上几分钟,那用户往往会选择尽量不用系统。反之,当用户试过几秒钟就能返回查询结果的数仓后,则会不断使用并提出各种需求并形成良性循环。在理想的数仓,大部分报表(>80%)应该在秒级返回结果。
- 加载性能:过去数仓只能看到前一天的数据。但当业务人员信任并且习惯使用数仓后,大家往往希望看到更实时的数据。因此关键数据每天进行多次更新是顺理成章的事情。关键数据的加载性能最好能在1-2小时之内,甚至做到分钟级更新。
三、成本
- 硬件成本,包括计算成本和存储成本等。以SAP HANA为例,所有数据存储在内存之中,性能强大但存储成本也非常高。目前流行的做法是计算与存储分离,例如AWS的S3可以作为hadoop数据仓库的存储介质,大大降低了成本。
- 软件成本,包括license和维护费用等。
- 人员成本,包括聘请厂家或第三方的实施维护团队,以及公司内部组建数仓团队的成本。
四、扩展性
- 当数据量和用户快速增长后,升级硬件的成本和便利程度。基于Hadoop的数仓可以方便地水平扩展,在这里具有先天优势。
- 数据仓库建设耗时耗力,升级和整合也需要做大量具体细致的工作。因此软件系统是否能得到厂商或者社区的长期支持是重要考量目标。举个例子,某个复杂的ETL或报表可能已经稳定运行了多年,那么当系统软硬件升级后,这些代码和报表应该依然可以运行。
五、易用性
- 和后端IT系统不同,数据仓库的用户来自各个业务部门,往往不具备很深的IT技能。因此数据仓库需要能对接常见的软件,例如Excel,PowerBI, tableau 等。
- 业务用户最好能够自主开发设计和修改前端报表。市场瞬息万变,业务需求也通常变化频繁。如果每个小需求都要经过IT 开发定制,数据团队会疲于奔命,而且业务用户很快会失去耐心,不愿意使用系统。
- 对必须由IT开发的功能,例如ETL逻辑和模型修改,也需要能方便地运行。常见的需求,例如源系统的表新增了字段,或者新增了表,或者更改了ETL逻辑,最好能够在不影响现在模型的基础上快速迭代。
六、可靠性
- 理想情况下,SLA>99.5%
- 软件本身的bug要少。如果遇到问题,能够得到厂商的快速支持。
- 高可用:当某个服务器出现意外离线时,整个数据服务不能停。
七、集成性
- 和各个数据库,FTP,云服务(S3,Blob Storage)等集成
- 和非关系型数据、Streaming的集成
- 和LDAP, Windows AD等用户权限系统集成
- 和Python,机器学习,Advanced Analytics等新功能集成最近几年,不少企业开始往 Hadoop 上迁移数仓。Kyligence 作为 Hadoop 上数仓的代表之一,有幸被多家国内外客户选用,经过严苛生产环境中的不断打磨和优化迭代,Kyligence 在上文提到的功能、性能、成本、扩展性、易用性、可靠性和集成性等方面,都得到了迅速发展,为越来越多客户提供数据服务。
以上是关于数据仓库——如何量化评价一个数据仓库的好坏?的主要内容,如果未能解决你的问题,请参考以下文章