为什么要使用数据仓库?
现状和需求
大量的企业经营性数据(订单,库存,原料,付款等)在企业的业务运营系统以及其后台的(事务型)数据库中产生的。
企业的决策者需要及时地对这些数据进行归类分析,从中获得企业运营的各种业务特征,为下一步的经营决策提供数据支撑。
困难
对数据的归类分析往往涉及到对多张数据库表数据的同时访问, 即需要同时锁住多张可能正在被不同事务更新的表单。这对业务繁忙的数据库系统来说可能是一件非常困难的事情 。
- 一方面很难把多张表同时锁住,造成复杂查询的时延增加。
- 另一方面如果锁住了多张表,又会阻挡数据库表单更新的事务,造成业务的延时甚至中断。
解决方案
数据仓库主要适用于企业数据的关联和聚合等分析场景, 并从中发掘出数据背后的商业信息供决策者参考。这里的数据发掘主要指涉及多张表的大范围的数据聚合和关联的复杂查询。
使用数据仓库,通过某个数据转换(ETL)的过程,业务运营数据库的数据可以被拷贝到数据仓库中供分析计算使用。同时支持把多个业务运营系统的数据汇集到一个数据仓库中。这样数据可以被更好地关联和分析,从而产生更大的价值。
数据仓库一般来说采用了一些和标准的面向事务的数据库(Oracle,MS SQL Server,MySQL等)不一样的设计,特别是针对数据的聚合性和关联性做了特别的优化,有些时候为了这些优化甚至可能会牺牲掉一些标准数据库的事务或者数据增删改的功能或者性能。因此,数据仓库和数据库的使用场景还是有所不同的。事务型数据库专注于事务处理(企业的业务运营),而数据仓库更擅长于复杂的数据分析。各司其职,互不干扰。简单一句话可以把它理解为,数据库主要负责数据更新,数据仓库主要负责数据分析。
数据仓库和Hadoop大数据平台有什么差别?
广义上来说,Hadoop大数据平台也可以看做是新一代的数据仓库系统, 它也具有很多现代数据仓库的特征,也被企业所广泛使用。因为MPP架构的可扩展性,基于MPP的数据仓库系统有时候也被划分到大数据平台类产品。
但是数据仓库和Hadoop平台还是有很多显著的不同。针对不同的使用场景其发挥的作用和给用户带来的体验也不尽相同。用户可以根据下表简单判断什么场景更适合用什么样的产品。
数据仓库和Hadoop大数据平台特性比较
特性 | Hadoop | Data Warehouse |
---|---|---|
计算节点数 | 可到数千个 | 一般在256个以内 |
数据量 | 支持大于10PB | 一般不大于10PB |
数据类型 | 关系型,半关系型,无结构化,语音,图像,视频 | 关系型 |
时延 | 中/高 | 低 |
应用生态 | 创新型/人工智能 | 传统数据库型/BI类 |
应用开发接口 | SQL,MR,丰富的编程语言接口 | 标准数据库SQL |
可扩展性 | 无穷的可能,完整的编程接口 | 有限扩展能力,主要通过UDF支持 |
事务支持 | 有限 | 完整 |
数据仓库和Hadoop平台互为补充,立足于满足客户在不同使用场景下的业务需求。数据仓库服务DWS 能够无缝地接入到Hadoop平台MRS服务上,支持SQL-over-Hadoop的这个特性,提供跨平台, 跨服务的数据共享。让用户在充分享受Hadoop带来的开放,便捷,创新的同时,继续使用熟悉的数据仓库方式管理和使用自己的海量数据。继续使用传统的数据仓库的上层应用,特别是商业智能BI类的应用。
为什么要使用数据仓库服务DWS ?
传统的数据仓库售价昂贵,设备系统选型,采购周期长,扩容复杂,整体运行成本十分高昂,因此很难为中小企业所采纳。
数据仓库服务DWS与传统的数据仓库相比,主要有以下特点与显著优势:
- 一款分布式MPP数据仓库云化服务,具备开放,高效,兼容,可扩展,易运维等特点。
- 基于FusionInsight LibrA数据仓库产品内核,以云上数据仓库服务的形式将FusionInsight LibrA的能力提供给云平台上的企业用户,打造云上云下一致的数据仓库用户体验。
FusionInsight LibrA是具有自主知识产权的新一代分布式数据仓库系统。目前已经被广泛地应用在政府,金融,运营商等行业当中。该产品不仅兼容主流开源Postgres系列数据库,而且特别针对Oracle和Teradata的SQL语法进行了兼容性增强,在很多场合都可以替代同类型产品。
我们的数据仓库服务工程师重点设计实现了基于行列混存的数据仓库内核,在支持海量数据快速分析的同时也很好地兼顾了业务运作系统对数据增删改的需求。引入了基于代价的查询优化器,以及当前数据仓库系统所流行的一些黑科技,包括机器码级别的向量计算,算子间和算子内的并行,节点内和节点间并行,使用LLVM优化编译查询计划的本机代码等。这些黑科技极大地提高了数据查询和分析的性能,为用户带来了更好的体验,解决了特定场景当中的业务痛点。
- DWS 服务即开即用
相比以前动辄长达数月的数据仓库选型采购过程,在云平台上开通使用数据仓库服务只需要数分钟时间简化了企业用户的搭建过程,使用数据仓库的方式,降低使用数据仓库的代价和门槛,让数据仓库实实在在地走进千万家大中小企业,让数据为企业的发展和决策提供其应有的价值。
如何选择DWS或者RDS?
DWS和RDS都让您能够在云中运行传统的关系数据库,同时转移数据库管理负载。您可将RDS数据库用于联机事务处理(OLTP) ,报告和分析,对于大量数据的读(一般是复杂的只读类型查询)支持不足。DWS 利用多节点的规模和资源并使用各种优化法( 列存,向量引擎,分布式框架等 ),专注于联机分析处理(OLAP),为传统数据库对大型数据集的分析及报告工作负荷提供了数量级改善。
当您的数据及查询的复杂性增加时,或者在您要防止报告和分析处理对OLTP工作负荷造成干扰时,DWS 可提供横向扩展能力。
您可以根据下表简单判断什么场景更适合用DWS 或RDS。
OLTP和OLAP特性比较
特性 | OLTP | OLAP |
---|---|---|
用户 | 操作人员,低层管理人员 | 决策人员,高级管理人员 |
功能 | 日常操作处理 | 分析决策 |
设计 | 面向应用 | 面向主题 |
数据 | 最新的,细节的,二维的,分立的 | 历史的,集成的,多维的,统一的 |
存取 | 读/写数十条记录 | 读上百万条记录 |
工作范围 | 简单的读写 | 复杂的查询 |
数据库大小 | 百GB | TB-PB级别 |
DWS和MRS分别应在何时使用?
如果需要使用自定义代码通过大数据处理框架 (如Apache Spark、Hadoop或HBase) 来处理和分析超大数据集,则应该使用MRS。MRS让您能够控制集群的配置和集群上安装的软件。
DWS这类数据仓库是专为不同类型的分析而设计的。数据仓库旨在将来自多个不同来源 (如库存、财务和零售销售系统)的数据汇集在一起。为了确保整个公司的报告具有一致的准确性,数据仓库采用一种高度结构化的方式来存储数据。这种结构可将数据一致性规则直接构建到数据库的表中。同时对标准SQL,事务支持传统数据库语法有很好的兼容性。
当您需要对大量结构化数据执行复杂查询并获得超快性能时,DWS 就是理想的服务选择。
DWS与Hive在功能上有哪些差别?
DWS与Hive在功能上存在一定的差异,主要体现在以下几个方面:
1.Hive是基于Hadoop MapReduce的数据仓库,DWS是基于Postgres的MPP的数据仓库。
2.Hive的数据在HDFS中存储,DWS的数据可以在本地存储,也可以通过外表的形式通过OBS进行存储。
3.Hive不支持索引,DWS支持索引,所以查询速度DWS 更快。
4.Hive不支持存储过程,DWS支持存储过程,使用场景更广泛。
5.DWS 比Hive对SQL的支持更丰富,包括函数、自定义函数、存储过程。
6.Hive不支持事务,DWS支持完整事务。
7.在数据可靠性方面,Hive和DWS 均支持副本,可靠性基本一致。
- 在性能上,DWS极大地优于Hive。
DWS和Hive基于各自的功能特点,在应用场景上,Hive仅用于离线分析场景,DWS适用于在线分析场景及AD-Hoc(即席查询)场景。
什么是用户配额?
云服务对用户的资源数量和容量做了限制。如果资源配额限制满足不了用户的使用需求,可以通过工单系统来提交您的申请,并告知您申请提高配额的理由。在通过我们的审理之后,我们会更新您的配额并进行通知。
如何获取Access Key ID(AK)和 Secret Access Key(SK)?
用户可以登录管理控制台创建访问密钥,如果您已经创建过了,也可以使用已有的访问密钥。
1.登录管理控制台。
2.将鼠标移到右上角的用户名,单击“我的凭证”。
3.再单击“管理访问密钥”页签,可以查看已有的访问密钥,也可以单击“新增访问密钥”进行创建。
访问密钥是 IAM 身份认证的重要凭证,只有在新增访问密钥时,用户才可以下载到含有 Access Key ID(AK)和 Secret Access Key(SK)的密钥文件,在管理控制台只能查看到 Access Key ID,如果您未曾下载过该密钥文件,请联系您的管理员进行获取,或者重新创建。
说明每个用户最多可创建 2 个访问密钥,有效期为永久。为了帐号安全性,建议您定期更换并妥善保 存访问密钥。
用户和角色是什么关系?
用户和角色在整个集群范围内是共享的,但是其数据并不共享。即用户可以连接任何数据库,但当连接成功后,任何用户都只能访问连接请求里声明的那个数据库。
- 角色(ROLE)本质上是一组权限的集合,通常情况下使用ROLE来组织权限,使用用户进行权限的管理和业务操作。
- 角色之间的权限可以继承,用户组的所有用户可自动继承对应角色的权限。
- 数据库中USER与ROLE的关系为:USER的权限来自于ROLE。
- 用户组包含了具有相同权限的用户集合。
- 用户可以看作是具有登录权限的角色。
- 角色可以看作是没有登录权限的用户。
DWS提供的权限包括“管控面”各组件的操作维护权限,在实际应用时需根据业务场景为各用户分别配置不同权限。为了提升权限管理的易用性,“管控面”引入角色的功能,通过选取指定的权限并统一授予角色,以权限集合的形式实现了权限集中查看和管理。
集中权限管理中权限、角色和用户的关系如下图所示。
DWS提供多种权限,根据业务场景实际需要选择指定的权限授予不同角色,可能是一个或者多个权限对应一个角色。
通过GRANT把角色授予用户后,用户即具有了角色的所有权限。推荐使用角色进行高效权限分配。只对自己的表有所有权限,对其他用户放在属于各自模式下的表无权限。
- 角色A:授予操作权限A和B,用户A和用户B通过分配角色A取得对应的权限。
- 角色B:授予操作权限C,用户C通过分配角色B取得对应的权限。
- 角色C:授予操作权限D和E,用户C通过分配角色C取得对应的权限。
如何查看数据库用户的创建时间?
方式一:
在创建DWS数据库用户时,如果指定了用户的生效时间(VALID BEGIN)与用户创建时间一致,且之后未修改过该用户生效时间的情况下,就可以使用视图PG_USER查看用户列表,并通过valbegin字段查看该用户的生效时间,即该用户的创建时间。
示例:
创建用户jerry指定生效时间为当前创建时间。
CREATE USER jerry PASSWORD 'password' VALID BEGIN '2022-05-19 10:31:56';
通过查询视图PG_USER查看用户列表。valbegin字段显示了jerry的生效时间,即jerry的创建时间。
SELECT * FROM PG_USER;
usename | usesysid | usecreatedb | usesuper | usecatupd | userepl | passwd | valbegin | valuntil | respool | parent | spacelimit | useconfig | nodegroup | tempspacelimit |
spillspacelimit
---------+----------+-------------+----------+-----------+---------+----------+------------------------+----------+--------------+--------+------------+-----------+-----------+----------------+
-----------------
Ruby | 10 | t | t | t | t | ******** | | | default_pool | 0 | | | | |
dbadmin | 16393 | f | f | f | f | ******** | | | default_pool | 0 | | | | |
jack | 451897 | f | f | f | f | ******** | | | default_pool | 0 | | | | |
emma | 451910 | f | f | f | f | ******** | | | default_pool | 0 | | | | |
jerry | 457386 | f | f | f | f | ******** | 2022-05-19 10:31:56+08 | | default_pool | 0 | | | | |
(5 rows)
方式二:
通过系统表PG_AUTH_HISTORY的passwordtime字段查看用户最初的密码创建时间,即该用户的创建时间。需要有系统管理员权限才可以访问此系统表。
select roloid, min(passwordtime) as create_time from pg_auth_history group by roloid order by roloid;
示例:
通过查询视图PG_USER获取用户jerry的OID为457386, 查询passwordtime字段获取到用户jerry的创建时间为2022-05-19
10:31:56。
select roloid, min(passwordtime) as create_time from pg_auth_history group by roloid order by roloid;
roloid | create_time
--------+-------------------------------
10 | 2022-02-25 09:53:38.711785+08
16393 | 2022-02-25 09:55:17.992932+08
451897 | 2022-05-18 09:42:26.897855+08
451910 | 2022-05-18 09:46:33.152354+08
457386 | 2022-05-19 10:31:56.037706+08
(5 rows)
数据在数据仓库服务中是否安全?
安全。在大数据时代,数据是用户的核心资产。将继续秉承多年来向社会做出的“上不碰应用,下不碰数据”的承诺,保证用户核心资产的安全。这是我们对用户和社会的承诺,也是云平台及其伙伴商业成功的保障和基石。
我们的数据仓库服务工程师对整个数据仓库系统进行了电信系统级别的安全增强,大量地采用了多年来在电信行业里积累的各种经验和知识,特别是针对数据安全,用户隐私方面的技术和专利。因此,数据仓库服务是一款符合电信级质量要求的产品,满足各级政府,金融机构,电信运营商对数据安全和用户隐私的要求,并在以上各行业被广泛使用。数据仓库服务还获得了如下安全认证:
- 网络安全实验室ICSL的认证:该认证是遵从英国当局颁布的网络安全标准设立的。
- 隐私和安全管理当局PSA的官方认证:该认证满足欧盟对数据安全和隐私的要求。
业务数据安全
数据仓库服务构建在云平台的基础软件设施之上,包括云主机弹性云主机和对象存储服务OBS。
DWS用户的业务数据是直接存放在集群的云主机当中,集群的云主机对DWS用户本身不可见,只向用户提供数据仓库访问服务,用户以及云平台的运维管理员均无法登录DWS集群云主机进行操作。
DWS集群云主机操作系统进行了严格的安全加固,包括内核安全加固,系统最新补丁,权限控制,端口管理,协议与端口防攻击等。
DWS提供完整的密码策略、身份认证、会话管理、用户权限管理和数据库审计等安全措施。
快照数据安全
DWS的备份数据是以快照的形式存储在OBS上 。OBS已通过中国数据中心联盟的可信云安全认证。OBS上的数据支持访问权限控制,密匙访问,数据加密。DWS的快照数据仅用于数据的备份和恢复,无法被外界任何用户访问操作,包括DWS用户本身。DWS系统管理员可以通过DWS Console的快照管理和账单看到快照数据在OBS的空间使用情况。
网络访问安全
DWS的如下网络安全部署设计使租户之间实现100%的二三层网络隔离,满足政务,金融用户的高等级安全隔离需要。
- DWS部署在租户专属的云主机环境中,不和任何其他租户共享,从物理上隔绝了数据因为计算资源共享而被泄露的可能性。
- DWS集群的虚拟机通过虚拟私有云隔离,避免被其他租户发现和入侵。
- 网络划分为业务平面和管理平面,两个平面采用物理隔离的方式进行部署,保证业务、管理各自网络的安全性。
- 安全组规则保护,租户可以通过自定义安全组的功能,配置安全域的访问规则,提供灵活的网络安全性配置。
- 外部应用软件访问数据仓库服务支持SSL网络安全协议。
- 支持数据从OBS导入的加密传输。
数据仓库使用哪些安全防护?
数据仓库服务使用IAM和虚拟私有云来控制用户、集群的网络安全隔离。用户对集群的访问则采用了SSL安全连接和安全算法套件,支持双向数字证书认证。
同时在每个集群中对节点的操作系统进行安全加固,仅允许合法地访问操作系统文件,提高数据安全性。
可以修改DWS集群的安全组吗?
可以修改当前安全组。DWS集群一旦创建成功,其安全组将不能更改为其他安全组,但是您可以编辑和修改当前的安全组,在当前的安全组中添加、删除或修改安全组规则。
您可以通过如下步骤编辑集群的安全组:
1.登录DWS 管理控制台。
2.在左侧导航树,单击“集群管理”。
3.在集群列表中找到所需要的集群,然后单击集群名称。
4.在“集群详情”页面中,找到“安全组”参数,单击安全组名称进入安全组详情页面,您可以对安全组进行设置。
数据库、数据仓库、数据湖、湖仓一体分别是什么?
如今随着互联网以及物联网等技术的不断发展,越来越多的数据被生产出来,数据管理工具也得到了飞速的发展,大数据相关概念如雨后春笋一般应运而生,如从数据库、数据仓库、数据湖、湖仓一体等。这些概念分别指的是什么,又有着怎样的联系,同时,对应的产品与方案又是什么呢?本文将一一进行对比介绍。
什么是数据库?
数据库是“按照数据结构来组织、存储和管理数据的仓库”。
广义上的数据库,在20世纪60年代已经在计算机中应用了。但这个阶段的数据库结构主要是层次或网状的,且数据和程序之间具备非常强的依赖性,应用较为有限。
现在通常所说的数据库指的是关系型数据库。关系数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,具有结构化程度高,独立性强,冗余度低等优点。1970年关系型数据库的诞生,真正彻底把软件中的数据和程序分开来,成为主流计算机系统不可或缺的组成部分。关系型数据库已经成为目前数据库产品中最重要的一员,几乎所有的数据库厂商新出的数据库产品都支持关系型数据库,即使一些非关系数据库产品也几乎都有支持关系数据库的接口。
关系型数据库的主要用于联机事务处理OLTP(On-Line Transaction Processing)主要进行基本的、日常的事务处理,例如银行交易等场景。
什么是数据仓库?
随着数据库的大规模应用,使信息行业的数据爆炸式的增长。为了研究数据之间的关系,挖掘数据隐藏的价值,人们越来越多的需要使用联机分析处理OLAP(On-Line Analytical Processing)进行数据分析,探究一些深层次的关系和信息。但是不同的数据库之间很难做到数据共享,数据之间的集成与分析也存在非常大的挑战。
为解决企业的数据集成与分析问题,数据仓库之父比尔·恩门于1990年提出数据仓库(Data Warehouse)。数据仓库主要功能是将OLTP经年累月所累积的大量数据,通过数据仓库特有的数据储存架构进行OLAP,最终帮助决策者能快速有效地从大量数据中,分析出有价值的信息,提供决策支持。自从数据仓库出现之后,信息产业就开始从以关系型数据库为基础的运营式系统慢慢向决策支持系统发展。
数据仓库相比数据库,主要有以下两个特点:
- 数据仓库是面向主题集成的。数据仓库是为了支撑各种业务而建立的,数据来自于分散的操作型数据。因此需要将所需数据从多个异构的数据源中抽取出来,进行加工与集成,按照主题进行重组,最终进入数据仓库。
- 数据仓库主要用于支撑企业决策分析,所涉及的数据操作主要是数据查询。因此数据仓库通过表结构优化、存储方式优化等方式提高查询速度、降低开销。
数据仓库与数据库的对比
维度 | 数据仓库 | 数据库 |
---|---|---|
应用场景 | OLAP | OLTP |
数据来源 | 多数据源 | 单数据源 |
数据标准化 | 非标准化Schema | 高度标准化的静态Schema |
数据读取优势 | 针对读操作进行优化 | 针对写操作进行优化 |
什么是数据湖?
在企业内部,数据是一类重要资产已经成为了共识。随着企业的持续发展,数据不断堆积,企业希望把生产经营中的所有相关数据都完整保存下来,进行有效管理与集中治理,挖掘和探索数据价值。
数据湖就是在这种背景下产生的。数据湖是一个集中存储各类结构化和非结构化数据的大型数据仓库,它可以存储来自多个数据源、多种数据类型的原始数据,数据无需经过结构化处理,就可以进行存取、处理、分析和传输。数据湖能帮助企业快速完成异构数据源的联邦分析、挖掘和探索数据价值。
数据湖的本质,是由“数据存储架构+数据处理工具”组成的解决方案。
- 数据存储架构:要有足够的扩展性和可靠性,可以存储海量的任意类型的数据,包括结构化、半结构化和非结构化数据。
- 数据处理工具,则分为两大类:
- 第一类工具,聚焦如何把数据“搬到”湖里。包括定义数据源、制定数据同步策略、移动数据、编制数据目录等。
- 第二类工具,关注如何对湖中的数据进行分析、挖掘、利用。数据湖需要具备完善的数据管理能力、多样化的数据分析能力、全面的数据生命周期管理能力、安全的数据获取和数据发布能力。如果没有这些数据治理工具,元数据缺失,湖里的数据质量就没法保障,最终会由数据湖变质为数据沼泽。
随着大数据和AI的发展,数据湖中数据的价值逐渐水涨船高,价值被重新定义。数据湖能给企业带来多种能力,例如实现数据的集中式管理,帮助企业构建更多优化后的运营模型,也能为企业提供其他能力,如预测分析、推荐模型等,这些模型能刺激企业能力的后续增长。
对于数据仓库与数据湖的不同之处,可以类比为仓库和湖泊的区别:仓库存储着来自特定来源的货物;而湖泊的水来自河流、溪流和其他来源,并且是原始数据。
数据湖与数据仓库的对比
维度 | 数据湖 | 数据仓库 |
---|---|---|
应用场景 | 可以探索性分析所有类型的数据,包括机器学习、数据发现、特征分析、预测等 | 通过历史的结构化数据进行数据分析 |
使用成本 | 起步成本低,后期成本较高 | 起步成本高,后期成本较低 |
数据质量 | 包含大量原始数据,使用前需要清洗和标准化处理 | 质量高,可作为事实依据 |
适用对象 | 数据科学家、数据开发人员为主 | 业务分析师为主 |
什么是湖仓一体?
虽然数据仓库和数据湖的应用场景和架构不同,但它们并不是对立关系。数据仓库存储结构化的数据,适用于快速的BI和决策支撑,而数据湖可以存储任何格式的数据,往往通过挖掘能够发挥出数据的更大作为,因此在一些场景上二者的并存可以给企业带来更多收益。
湖仓一体,又被称为Lake House,其出发点是通过数据仓库和数据湖的打通和融合,让数据流动起来,减少重复建设。Lake House架构最重要的一点,是实现数据仓库和数据湖的数据/元数据无缝打通和自由流动。湖里的“显性价值”数据可以流到仓里,甚至可以直接被数仓使用;而仓里的“隐性价值”数据,也可以流到湖里,低成本长久保存,供未来的数据挖掘使用。
数据智能方案
数据治理中心DataArts Studio为大型政企客户量身定制跨越孤立系统、感知业务的数据资源智能管理解决方案,实现全域数据入湖,帮助政企客户从多角度、多层次、多粒度挖掘数据价值,实现数据驱动的数字化转型。
数据治理中心DataArts Studio的核心主要是智能数据湖FusionInsight,包含数据库、数据仓库、数据湖等各计算引擎平台,提供了数据使能的全套能力,支持数据的采集、汇聚、计算、资产管理、数据开放服务的全生命周期管理。
拥有强大的湖、仓、库引擎技术,比如数据湖敏捷构建、GaussDB数据库快速迁移,数仓的实时分析等,对应服务如下:
- 数据库:
−关系型数据库包括:云数据库RDS、云数据库GaussDB(for MySQL)、云数据库GaussDB(for openGauss)、云数据库PostgreSQL、云数据库SQL Server等。
- −非关系型数据库包括:文档数据库服务DDS,云数据库 GaussDB NoSQL(包含Influx、Redis、Mongo、Cassandra)等。
- 数据仓库:数据仓库服务DWS。
- 数据湖\湖仓一体:云原生大数据MRS,数据湖探索DLI等。
- 数据治理中心:数据治理中心DataArts Studio。