回答者:发现世界的冒险家日期:06月21日

数据仓库和数据库是两个在数据管理领域中经常使用的术语,它们有一些区别和不同的功能。

数据库(Database)是用于存储和管理结构化数据的系统。它可以是关系型数据库(如MySQL、Oracle)或非关系型数据库(如MongoDB、Redis)。数据库的设计和结构通常是为了支持事务处理和日常的业务操作,例如插入、更新和查询数据。数据库主要用于支持实时操作和事务处理,并且对数据的读写操作有严格的一致性要求。

数据仓库(Data Warehouse)则是一种专门用于支持分析和决策的数据存储系统。数据仓库主要用于收集、整合和存储大量的历史数据,以便进行复杂的数据分析、报表和数据挖掘。数据仓库通常采用多维数据模型(如星型模型或雪花模型)来支持灵活的数据查询和分析。数据仓库还经常进行数据清洗、转换和抽取,以确保数据的质量和一致性。

下面是一些数据仓库和数据库之间的主要区别:

1. 数据用途:数据库主要用于支持实时业务操作,而数据仓库则用于数据分析和决策支持。

2. 数据结构:数据库通常使用表格和关联的结构来存储数据,而数据仓库采用多维模型(如星型或雪花模型)来支持复杂的数据分析。

3. 数据量和历史数据:数据库通常处理相对较小的数据集,并且主要关注当前和近期的数据。数据仓库则处理大量的历史数据,用于长期的数据分析和趋势观察。

4. 查询和分析:数据库的查询通常用于快速的实时操作,而数据仓库的查询则用于复杂的数据分析和报表生成,可能需要更多的计算和处理时间。

5. 数据清洗和转换:数据仓库通常需要进行数据清洗、转换和整合,以确保数据的质量和一致性。这是因为数据仓库可能从多个源收集数据,并且需要将其整合成一致的格式和结构。

总体而言,数据库主要用于支持实时操作和事务处理,而数据仓库则专注于数据分析和决策支持,它们有着不同的设计和功能,以满足不同的数据管理需求。

回答者:碎片时间日期:2017年12月22日

通常情况下基于业务数据库数据分析人员也能完成数据分析需求,但是为什么要建数据仓库?

没有数据仓库时,我们需要直接从业务数据库中取数据来做分析。

业务数据库主要是为业务操作服务的,虽然可以用于分析,但需要很多额度的调整。

一,业务数据库中存在的问题

基于业务数据库来做分析,主要有以下几个问题:结构复杂,数据脏乱,难以理解,历史缺失,数据量大时查询缓慢。

结构复杂

业务数据库通常是根据业务操作的需要进行设计的,遵循3NF范式,尽可能减少数据冗余。这就造成表与表之间关系错综复杂。在分析业务状况时,储存业务数据的表,与储存想要分析的角度表,很可能不会直接关联,而是需要通过多层关联来达到,这为分析增加了很大的复杂度。

数据脏乱

因为业务数据库会接受大量用户的输入,如果业务系统没有做好足够的数据校验,就会产生一些错误数据,比如不合法的身份证号,或者不应存在的Null值,空字符串等。

理解困难

业务数据库中存在大量语义不明的操作代码,比如各种状态的代码,地理位置的代码等等,在不同业务中的同一名词可能还有不同的叫法。

这些情况都是为了方便业务操作和开发而出现的,但却给我们分析数据造成了很大负担。各种操作代码必须要查阅文档,如果操作代码较多,还需要了解储存它的表。同义异名的数据更是需要翻阅多份文档。

缺少历史

出于节约空间的考虑,业务数据库通常不会记录状态流变历史,这就使得某些基于流变历史的分析无法进行。比如想要分析从用户申请到最终放款整个过程中,各个环节的速度和转化率,没有流变历史就很难完成。

大规模查询缓慢

当业务数据量较大时,查询就会变得缓慢。

二,数据仓库解决方案

上面的问题,都可以通过一个建设良好的数据仓库来解决。

业务数据库是面向操作的,主要服务于业务产品和开发。

而数据仓库则是面向分析的,主要服务于我们分析人员。评价数据仓库做的好不好,就看我们分析师用得爽不爽。因此,数据仓库从产品设计开始,就一直是站在分析师的立场上考虑的,致力于解决使用业务数据进行分析带来的种种弊端。

数据仓库解决的问题

结构清晰,简单

数据仓库不需要遵循数据库设计范式,因此在数据模型的设计上有很大自由。

数据模型一般采用星型模型,表分为事实表和维度表两类。

其中事实表位于星星的中心,存储能描述业务状况的各种度量数据。

维度表围绕在事实表的周围,通过外键一对一的形式关联,提供了看待业务状况的不同角度。

星型模型使用方便,易于理解,聚焦于业务。

当我们做数据分析时,首先选定主题,比如分析用户注册情况;其次根据选定的主题找到对应的业务数据源,然后观察业务数据源提供了哪些分析角度,最后根据数据进行分析。

星形模型非常适合这个思路,并且大大简化了这个过程。下面以我们目前的模型来举例。

可复用,易拓展

星型模型不仅便于理解和使用,而且维度表还便于重复使用,维度表中字段易于拓展。

比如日期维度表,不仅可以被不同的事实表是使用,在同一张事实表里也可被复用,比如一个事实表里不同的操作日期,一个商品的订单有创建日期、付款日期、发货日期、退款时间、收货时间等等。

维度表中字段易于扩展,只要保证维度数据的主键不变,直接在维度表里添加新的字段内容即可,添加的新内容只会影响到维度表而已。而且,维度表通常数据量不大,即使完全重新加载也不需要花费多少时间。

数据干净

在ETL过程中会去掉不干净的数据,或者打上标签,使用起来更为方便。

注:由于数据清洗需要建立一定的规则,而目前的工作重心是数据建模和ETL系统设计,没有额外的时间精力设计清洗规则。为了保证数据的完整性,没有在当前的ETL中做清洗。

数据语义化/统一描述

各种状态都可以直接写成具体的值,不再需要使用操作码进行查询,SQL语句更自然,更易理解。

对于部分常用的组合状态,可以合并成一个字段来表示。比如在还款分析中,需要根据还款状态、放款状态/发货状态的组合来筛选出有效的订单,可以直接设置一个订单有效的字段,简化筛选条件。

对于同一含义的数据在不同情境下的表示,也可以统一描述了。比如对于放款日期的描述,在产品是消费贷时,指的是发货的日期,产品是现金贷时,指的是放款给用户的日期。这两个日期都是表示放款日期,就可以统一起来,同样也简化了筛选条件。

保存历史

数据仓库可通过拉链表的形式来记录业务状态变化,甚至可以设计专用的事实表来记录。只要有历史分析的需要,就可以去实现。

高速查询

数据仓库本身并不提供高速查询功能。只是由于其简单的星形结构,比业务数据库的复杂查询在速度上更有优势。如果仍然采用传统的关系型数据库来储存数据。在数据量上规模之后,同样也会遇到查询缓慢的问题。

但是,使用Hive来储存数据,再使用基于Hive构建的多维查询引擎Kylin,把星型模型下所有可能的查询方案的结果都保存起来,用空间换时间,就可以做到高速查询,对大规模查询的耗时可以缩短到次秒级,大大提高工作效率。

回答者:投资界日期:2018年07月09日·投资界官方账号

7月5日,Kyligence融资暨新产品发布会在上海举行。Kyligence 团队宣布正式发布下一代企业级数据仓库产品与解决方案Kyligence Enterprise v3.0,及云端一站式大数据分析解决方案KyligenceCloud v2.0。新版解决方案革命性地实现了自动建模功能,并将在查询提速15倍的同时节省50%存储空间。

“借助Kyligence Enterprise v3.0,此前客户需要花费半年、一年的数据分析周期可以缩减至一两个月甚至更短的时间,使用传统国外数据仓库需要每年投入上亿,使用Kyligence产品后,投入缩减至几百万。在人力上,从40多人缩减至6个人左右。”Kyligence联合创始人兼CEO韩卿在接受投资界(ID:pedaily)采访时介绍道。

Kyligence 联合创始人兼CEO韩卿

Kyligence Enterprise v3.0发布,打造融合、智能数据仓库

作为本次发布会的重头戏之一,Kyligence 联合创始人兼CTO李扬,详细介绍了新版Kyligence Enterprise如何在保持PB级数据集上亚秒级查询响应速度的同时,革命性地实现自动化建模以承载企业日益增长的自动化需求。

对于Kyligence Enterprise3.0的行业定位,韩卿认为,它是一个融合智能的大数据平台,代表未来数据仓库的方向。

在今天数据呈指数级爆炸的时代,绝大部分的数据仓库项目仍然使用人工进行操作,这种原始的基于人工的数据分析方式显然已经远不能满足快速增长的业务需求。

韩卿表示:“下一代的数据仓库,一定是融合的、智能的数据仓库,通过将这些技术应用到数据仓库本身的技术变革中,能为许多产业带来变革。”

投资界了解到,新版Kyligence Enterprise引入了大量的机器学习技术,如自动建模技术可基于分析师的历史查询行为及学习记录,智能化地推荐数据建模,自动化地调优性能,且推荐和加速相关业务分析场景。同时,该产品还支持在企业的本地集群和云端部署在线数据分析服务,满足了企业的全场景分析需求。

在产品架构上,新版Kyligence Enterprise 采用了高性能的融合架构,实现了关键业务的亚秒级查询延迟,也支持海量数据的自主探索;数据源可对接分布式平台Hadoop的多重数据引擎,也可以对接传统的RDBMS;数据种类上,既可以对接实时数据流,也可以进行批处理。

“对比上一代查询引擎,新版Kyligence Enterprise 可实现查询提速15倍的同时节省50%存储空间,而对比市场上的同类查询产品,根据数据仓库典型查询场景测试中查询的完成度与查询的性能比较来看,都具有显著优势。”李扬介绍道,Kyligence Enterprise v3.0具有出色的数据分析能力,它的出现将有效降低企业人力成本,并成倍提升企业生产效率。

聚焦金融、电信、零售和制造4大领域,要成为数据仓库行业NO.1

在产品发布会上,Kyligence宣布完成由斯道资本领投,原有股东红点中国、思科、宽带资本、顺为资本跟投的1500万美元B轮融资,这也是Kyligence2年内的第三轮融资。

对于本轮融资计划,韩卿表示,本轮融资后,公司将主要在三个方面加大投入。其中包括加快产品技术研发;扩大市场和销售团队,以尽快扩张市场认知度;布局国际化发展,目前公司已在美国、欧洲拓展客户,接下来将会尤其在美国进行大规模扩张,真正做到技术出海。

目前,Kyligence旗下开发的产品服务已经获得超30家来自各行各业头部企业的付费支持,包括国泰君安、华为、联通、OPPO、上汽集团、太平洋保险集团、中国银联等企业。

在发布会圆桌论坛上,太平洋保险大数据平台负责人时爱民表示,大数据分析作为面向未来的IT技术服务,对太平洋保险而言早已不是一道选择题,而是一道必答题,太平洋保险之所以选择与使用Kyligence Enterprise,看中的就是Kyligence的技术实力与长期、持续的服务能力。

本轮领投的斯道资本中国风险投资团队合伙人张柏舟也表示:“我们很荣幸能成为Kyligence 的投资方。我们在尽职调查期间收集了广泛的客户意见,Kyligence 突出的能力让我们印象深刻,比如通过数据建模处理和AI 增强技术来预处理海量数据集并将延迟降低至亚秒级,通过整合Tableau、Power BI 甚至Microsoft Excel 等常用简单工具来获取新知,Kyligence 没有局限在简单的分析场景,而是致力于帮助客户快速而轻松地管理、访问和分析海量数据,远远超越了传统解决方案,堪称新一代数据仓库。”

目前,Kyligence商业化已经一一落地。韩卿表示,Kyligence的产品服务未来将主要专注于金融、电信、零售和制造四大领域的应用,因为这四大行业拥有大量的数据,对基于数据底层的架构和分析需求渴求极大。

就金融而言,韩卿称,传统金融机构客户更愿意尝试成熟的新技术。“有银行使用我们的技术进行了大半年的全面测试,最后看到他们平台和技术能力得到很大提升,最终选择了Kyligence的方案。”

关于公司未来3-5年的发展目标,韩卿透露,希望能在智能数据仓库里做到行业的NO.1,并能拓展整个全球市场。

回答者:破空科技日期:2019年08月21日·优质科技领域创作者

说点大家都能懂的干货。请点赞收藏。

先讲讲来龙去脉

很久以前是没有数据仓库这个概念的,只有数据库,数据库就是很多数据表的集合,这样把存放不同内容的表放在一起,就能满足一些基本的查询了。

比如提取2019年6月18日在淘宝购买Bose耳机的用户,只要几张表关联一下查询就出结果了。

后来在实际工作中人们发现当你在海量数据中做非常复杂的分析的时候,效率就很低了: 比如找到2019年双11和2018年双11这两天,在淘宝下单超过500元且购买了Bose耳机的用户,这两拨用户在最近2两年的平均消费能力差异 。要完成这个查询,首先要关联查询很多表,其次要查询2018和2019年两年的数据,最后你还要从海量的数据中找到符合要求的消费金额和消费者,这三点加起来就让数据提取变成了非常复杂的事儿,而且不一定能立刻查到,往往一个查询任务就要跑好几个小时。

所以随着数据体量增大,查询条件越来越复杂,大家一看不行啊,需要提高效率。所以数据仓库出现了。

数据仓库和数据库相比,有啥特点

1.数据仓库有主题性,有作业流的概念

上面的例子告诉我们,数据仓库是为了某一个/某一类特定的分析任务将数据重新聚合起来的,而数据库只是数据存储表的集合,所以数据仓库有主题性。同时也因为有主题的概念,数据仓库会根据你预设的逻辑,自动化的完成各个作业之间的调度,最终自动化的把结果输出给你。所以数据仓库也会有数据流和作业流的概念。

2.数据仓库让「查询」效率最大化

数据库本质就是很多数据表,所以数据表嘛,就要兼顾增删改查这些操作,但是数据仓库将数据重新组合,是为了让你更高效的查询并且支持你的分析工作的,所以数据库一般只让「查询」的效率最大化,「增删改」的效率不做主要考虑。

3.数据仓库有历史数据,而数据库一般只有近期数据

上面举的例子中,要查询淘宝2018年和2019年两年的双11数据,所以跨度很大。一般数据库只能存近期的数据,太久远的数据放不下,效率也低。但是数据仓库可以将某些维度的历史信息统一抽取出来以更合理的存储结构放到数据仓库中,这样查询跨年的数据时直接查询就行了,效率极大的提升。

4.数据仓库是基于数据库层面的升级

一家公司,一般是现有几张数据表,后来数据表集合成了数据库,再后来数据库不满足需求了,才有了数据仓库。所以数据表,数据库,数据仓库之间是有依赖关系的,不是割裂的。

怎么建立数据仓库

1.需求分析

分析你为了哪个目的建立数据仓库,数据仓库需要哪些维度的数据,这些数据表都在哪里是否能访问。

2.ETL

将你所有需要的数据表都找到,然后根据你的需求将需要的字段都提取出来并对数据格式进行清洗加工转换。保证数据原料是合格可用的

3.数据结构设计

包括维度表,事实表的设计,是否要用列式存储代替行式存储,是否需要将数据分层(详细可查询OLAP方面的数据模型),总之就是要保证数据查询的效率

4.作业调度

每一个你看到的数据背后,都是多个数据表被一系列脚本调用最终计算而成,所以多个作业之间肯定涉及调度关系,过程监控,结果监控等。所以要保证逻辑正确和执行正确。

以上4步完成后,一个数据仓库的雏形就有了,剩下的数据管理,计算管理,元数据等如果有需要可以在此基础上不断添加完善。

回答者:forGoldenAlex日期:2018年07月14日

相对于文件系统而言,数据库是易于查询和修改的格式化数据存储形式。各家软件公司又围绕它制作了管理系统和各种工具。

文件系统很好理解,打开电脑,那些文件夹啊,文件啊就是了。但文件系统不易于做复杂的分析和修改。为了满足这个需求,数据库就出现了。

本质上数据仓库也是数据库,为一种特定需求服务的数据库。服务于数据量大,需要进行复杂分析的场景。数据库还能应用于其他场景。比如事务性场景,如商业交易,买卖的记录和客户资料的存储更新。

希望对你有帮助