产品功能
本章节为您介绍了DWS支持的主要功能。
购买数据仓库服务
数据仓库服务提供“按需付费”、“包年/包月”和“折扣套餐”购买模式。详情请参见DWS计费概述。
- 按需付费(小时):即开即用,适合前期运行和概念验证、短期使用的客户。
- 包年/包月:客户可通过预付费,以包年/包月模式购买DWS,这种购买方式相对于按需付费提供更大的折扣,对于长期使用者,推荐该计费模式。
- 折扣套餐:按月或按年预先支付OBS热数据存储费用,相比按需计费提供大额折扣,适合计划长期使用DWS 3.0场景的客户。
创建DWS集群
如果用户需要在云上环境中使用数据仓库服务,首先应创建一个DWS集群。用户可根据业务需求选择相应的产品规格和节点规格快速创建集群。详情请参见创建DWS集群 。
DWS集群管理
DWS为用户提供了以下两种方式管理集群:
- 管理控制台方式
使用管理控制台方式访问DWS集群。用户在注册后,可直接登录管理控制台,选择“数据仓库服务”。
有关集群管理的更多内容,请参见DWS集群管理。
- REST API方式
支持使用DWS提供的REST API接口以编程的方式管理集群。如果用户需要将DWS集成到第三方系统,用于二次开发,请使用API方式访问。
详细内容,请参见《数据仓库服务API参考》。
连接DWS集群数据库
创建好集群后,就可以使用SQL编辑器或者JDBC/ODBC等第三方驱动程序连接集群,访问集群数据库。详细内容请参见连接DWS集群。
连接集群步骤如下:
- 获取DWS集群连接地址。
- (可选)使用SSL加密连接方式。
- 连接集群访问集群数据库。您可以选择以下任意一种方式连接集群。
- 使用SQL编辑器连接集群
- 使用SQL客户端工具连接集群:
- 使用Linux gsql客户端连接集群。
- 使用Windows gsql客户端连接集群。
- 使用Data Studio连接集群。
- 使用JDBC、ODBC、psycopg2、PyGreSQL第三方驱动程序连接集群。
支持多种数据库工具
DWS提供了以下几款自研工具,用户可以在DWS管理控制台下载相关的工具包。有关工具的详细指导请参见《数据仓库服务工具指南》。
- SQL编辑器
DWS线上SQL编辑器提供了一站式数据开发、接入、处理等功能,支持直接在DWS管理控制台上连接集群数据库进行SQL编辑执行,以便用户能更好的使用DWS。
- gsql工具
它是一款运行在Linux操作系统的命令行SQL客户端工具,用于连接DWS集群中的数据库,并对数据库进行操作和维护。
- Data Studio工具
它是一款运行在Windows操作系统上的图形界面SQL客户端工具,用于连接DWS集群中的数据库、管理数据库和数据库对象,编辑、运行、调试SQL脚本,查看执行计划等。
- GDS工具
它是DWS提供的数据服务工具,通过和外表机制的配合,实现数据的高速导入导出。
GDS工具包需要安装在数据源文件所在的服务器上,数据源文件所在的服务器称为数据服务器,也称为GDS服务器。
- DSC SQL语法迁移工具
DSC(Database Schema Convertor)是一款运行在Linux或Windows操作系统上的命令行工具,致力于向客户提供简单、快速、可靠的应用程序SQL脚本迁移服务,通过内置的语法迁移逻辑解析源数据库应用程序SQL脚本,并迁移为适用于DWS数据库的应用程序SQL脚本。
DSC支持迁移Teradata、Oracle、Netezza、MySQL和DB2数据库的SQL脚本。
- gs_dump和gs_dumpall
gs_dump支持导出单个数据库或其内的对象,而gs_dumpall支持导出集群中所有数据库或各库的公共全局对象。
通过导入工具将导出的元数据信息导入至需要的数据库,可以完成数据库信息的迁移。
- gs_restore
在数据库迁移场景下,支持使用gs_restore工具将事先使用gs_dump工具导出的文件格式,重新导入DWS集群,实现表定义、数据库对象定义等元数据的导入。
企业级数据仓库
当创建好DWS集群后,用户就可以使用SQL客户端工具连接集群,然后执行创建数据库、管理数据库、导入/导出数据以及查询数据的操作。详细的数据库操作指导,请参见《数据仓库服务开发指南》。
DWS为用户提供了PB(petabyte)级高性能数据库,主要体现在:
- MPP大规模并行处理框架,支持行列混存、向量化执行,实现万亿数据关联分析秒级响应。
- 内存计算,基于Bloom Filter的Hash Join优化,性能提升2~10倍。
- 支持全对称分布式的Active-Active多节点集群架构,系统无单点故障。
- 基于电信技术优化的大规模集群通信,提升计算节点间的传输效率。
- 基于代价的智能优化器,根据集群规模、数据量、生成最优计划,提高执行效率。
DWS数据库开发设计建议
数据开发者在进行数据库开发之前,通过开发设计建议,约定数据库建模和数据库应用程序开发过程中应当遵守的设计规范。依据这些规范进行建模,能够更好的契合DWS的分布式处理架构,输出更高效的业务SQL代码。详细内容请参见DWS数据库对象命名规则。
数据库用户权限管理
DWS提供通过控制台管理数据库用户的功能,可以在控制台创建、删除、更新数据库用户并对其进行权限管理。该特性可使用户无需登录数据库,在console界面就可以进行数据库用户的管理,以及对用户的权限管理。详情请参见创建DWS数据库和用户。
多样化的数据导入方式
DWS提供了灵活的数据入库方式,可以将多种数据源的数据导入到DWS中。详细指导请参见迁移数据到DWS章节。
- 从OBS并行导入数据:支持将存储在OBS上的TXT、CSV、ORC及CARBONDATA格式的数据并行导入到DWS,支持导入后查询数据,也支持远程读OBS上的数据。DWS优先推荐的导入方式。
- 使用GDS从远端服务器导入数据:使用DWS提供的GDS工具,利用多DN并行的方式,将数据从远端服务器导入到DWS。这种方式导入效率高,适用于大批量数据入库。
- 从MRS导入数据到集群:配置一个DWS集群连接到一个MRS集群,然后将数据从MRS的HDFS中读取到DWS。
- 使用gsql元命令\COPY导入数据:DWS的gsql工具提供了元命令\copy进行数据导入。
- 使用COPY FROM STDIN导入数据:这种方式适合数据写入量不太大, 并发度不太高的场景。
- 使用CDM迁移数据到DWS:CDM提供同构/异构数据源之间批量数据迁移的功能,帮助您实现从多种类型的数据源迁移数据到DWS。CDM在迁移数据到DWS时,采用的是Copy方式和GDS并行导入方式。
- 使用DSC工具迁移SQL脚本:DSC是一款运行在Linux或Windows操作系统上的命令行工具,致力于向客户提供简单、快速、可靠的应用程序SQL脚本迁移服务,通过内置的语法迁移逻辑解析源数据库应用程序SQL脚本,并迁移为适用于DWS 数据库的应用程序SQL脚本。
- 使用gs_dump和gs_dumpall命令导出元数据:DWS提供的gs_dump和gs_dumpall工具,能够帮助用户导出需要的数据库对象或其相关信息。
- 使用gs_restore导入数据:在数据库迁移场景下,支持使用gs_restore工具将事先使用gs_dump工具导出的文件格式,重新导入DWS集群,实现表定义、数据库对象定义等元数据的导入。导入数据主要包括以下内容:
- 所有数据库对象定义。
- 单个数据库对象定义。
- 单个schema定义。
- 单张表定义。
- 其他方式:包括INSERT语句、COPY FROM STDIN、gsql元命令导入及第三方ETL工具导入。
导出数据
DWS支持三种方式导出数据。详细指导请参见导出数据章节。
- 使用OBS外表导出:通过OBS外表设置的导出模式、导出数据格式等信息来指定导出的数据文件,DWS推荐此方法。
- 使用GDS导出:使用GDS工具将数据从数据库导出到普通文件系统中,适用于高并发、大量数据导出的场景。
- 使用gs_dump和gs_dumpall命令导出:支持导出单个数据库及其对象,也支持导出集群中所有数据库和公共全局对象。
细粒度策略
在实际业务中,您可能需要给不同角色的用户授予不同的资源操作权限。IAM服务为用户提供了细粒度访问控制功能。在IAM中,IAM管理员用户(即属于admin用户组的用户)通过创建自定义策略,可以自由搭配需要授予的权限集。通过给用户组授予策略,用户组中的用户就能获得策略中定义的权限。IAM通过策略定义的权限内容实现精细的权限管理。为了更精细地控制DWS资源的使用权限,您可以使用IAM的用户管理功能,实现细粒度权限控制,授予不同角色的用户不同的资源操作权限。详情请参见策略语法:细粒度策略。
三权分立
支持SSL安全网络连接、用户权限管理、密码管理等功能,保证数据库在网络层、管理层、应用层和系统层的安全性。通过数据库权限划分,可以有效防止数据库中的对象被任意地增、删、改,DWS支持三权分立,避免多人操作一组数据库对象,从而确保数据库的安全和数据有效。您也可以通过角色、Schema以及私有用户的管理,将权限进一步细分。
详细内容请参见设置SSL连接和设置DWS集群三权分立。
行级访问控制
行级访问控制特性是将数据库访问控制精确到数据表行级别,使数据库达到行级访问控制的能力。不同用户执行相同的SQL查询操作,读取到的结果是不同的。即同一张表,不同用户只能查看自身相关的数据信息,不能查看其他用户的数据信息。详情请参见行级访问控制。
数据脱敏
大数据时代中数据蕴藏的巨大价值同时也带来了隐私信息保护方面的难题,数据脱敏用于实现大数据高效共享的同时对敏感信息的安全保护。客户可结合自身业务场景识别敏感数据并以表的列为单元创建脱敏策略。制定脱敏策略后,只有管理员和表对象的owner才能访问原始数据。适用于涉及敏感信息的行业都对数据脱敏有着天然的需求,例如金融、政府、医疗等。其在应用开发、测试、培训等活动中都需要使用数据,因此都可以使用脱敏功能来避免敏感信息的泄露风险。详情请参见DWS数据脱敏。
修改DWS集群参数
集群创建成功后,用户可以根据实际需要修改集群的数据库参数。在DWS管理控制台,您可以查看或设置一些常用的数据库参数。详情请参见修改DWS集群GUC参数。
DWS快照管理
快照是DWS集群在某一时间点的完整备份,记录了这一时刻指定集群的所有配置数据和业务数据,快照可用于还原某一时刻的集群。用户可以为集群手动创建快照,也可以开启定时创建自动快照。自动快照有保留天数限制,用户可以对自动快照进行复制,生成手动快照以便长期保留。
当您从快照恢复集群时,系统支持将快照数据恢复到新集群或者原集群中。
对于不再需要的快照,可以选择在控制台删除快照(自动快照不支持手动删除),以释放存储空间。
详情请参见备份与恢复DWS集群。
DWS资源负载管理
当您有多个数据库用户同时查询作业时,一些复杂查询可能会长时间占用集群资源,从而影响其他查询的性能。例如一组数据库用户不断提交复杂、耗时的查询,而另一组用户经常提交短查询。在这种情况下,短时查询可能不得不在队列中等待耗时查询完成。为了提高效率,DWS提供了资源管理功能,DWS资源管理以资源池为资源承载,对于不同的业务类型可以创建不同的资源池,为这些资源池配置不同的资源占比,并将数据库用户添加至对应的资源池中,以此来限制这些数据库用户的资源使用。详情请参见DWS资源负载管理。
DWS逻辑集群管理
逻辑集群是基于节点组(Node Group)机制来划分物理节点的一种集群模式,从节点层次将大集群进行划分,和数据库形成交叉。一个数据库中的表可以按逻辑集群来分配到不同的物理节点,而一个逻辑集群也可以包含多个数据库的表。详情请参见DWS逻辑集群管理。
升级DWS集群
DWS升级集群操作默认无需用户操作,8.1.1及以上集群版本支持用户自助通过console下发集群升级操作。详情请参见DWS集群升级。
启停和删除DWS集群
- 重启集群
当集群处于非均衡或不能正常工作时,可能需要通过重启集群进行恢复。当您修改完配置,例如修改集群安全设置、参数修改相关配置,未立即重启集群的情况下,您也可以通过手动重启集群使配置生效。
- 停止集群
当用户的集群不再使用时,可通过停止集群功能来关闭集群,方便业务下线。
- 启动集群
已停止的集群想要恢复集群使用时,可通过启动集群功能触发集群启动,恢复集群业务。
- 删除集群
当用户不再需要使用某个集群时,可以删除集群。详情请参见启停和删除DWS集群。
DWS集群监控
- 在Cloud Eye查看DWS集群监控
DWS与云监控(Cloud Eye)集成,使您能够对集群中的计算节点和数据库进行实时监控。详情请参见监控集群。
- 在监控面板(DMS)查看DWS集群监控
数据库监控(DMS)是为DWS数据库提供多维度监控服务的系统,为客户数据库的快速、稳定运行提供保驾护航的能力。该功能对业务数据库使用的磁盘、网络、OS指标数据以及集群运行关键性能指标数据进行收集、监控、分析。通过综合收集到的多种类型指标,对数据库主机、实例、业务SQL进行诊断,及时暴露数据库中关键故障及性能问题,指导客户进行优化解决。详情请参见在监控面板(DMS)查看DWS集群监控。
事件管理
DWS与消息通知服务对接,使您能够订阅事件并查看触发的各类事件。详情请参见查看并订阅DWS集群事件。
告警管理
告警管理包含查看告警规则、告警规则配置与告警信息订阅功能。其中,告警规则可以提供过去一周的告警信息统计与告警信息明细,方便用户自行查看租户下的告警。该功能以默认告警规则阈值的方式提供常用的DWS告警监控,还允许用户根据自己的业务特点,自定义告警阈值。详情请参见查看并订阅DWS集群告警。
DWS节点管理
用户可查看所创集群的节点列表,在节点管理页面可以清晰的查询各节点的状态、节点规格、是否已使用等信息。若用户需要进行大规模扩容操作时,可通过节点管理功能提前分批次添加准备好用于扩容的节点。例如需要新扩容180个节点,可分3批各添加60个,如果其中有一部分添加失败,可再次添加失败数量的节点,等180个节点添加成功后,再使用这些添加好的节点进行扩容,添加节点过程中不影响集群业务。详情请参见节点管理。
扩容DWS集群
随着业务的增长,现有集群规模可能无法满足业务需要,此时,用户可以扩容集群,为集群增加计算节点。扩容时业务不中断。进行扩容操作时,用户可根据需求选择是否在线扩容和自动重分布。详情请参见集群扩容。
DWS重分布管理
默认情况下,在扩容之后将自动调起重分布任务,为了增强扩容重分布整个流程的可靠性,可以选择在扩容时关闭自动重分布功能,在扩容成功之后再手动使用重分布功能执行重分布任务,数据重分布后将大大提升业务响应速率。当前重分布支持离线重分布、在线重分布两种模式,默认情况下,提交重分布任务时将选择离线重分布模式。详情请参见集群重分布。
缩容DWS集群
当用户需要的计算或者存储资源超出业务需求时,可在管理控制台对已有集群进行缩容操作,以便充分利用DWS提供的计算资源和存储资源。详情请参见集群缩容。
DWS规格变更
DWS支持弹性变更规格功能,相比于扩容节点而言,该功能更适合阶段性峰值或只对计算能力(CPU、内存)变化有诉求的业务场景,在业务峰值来临之前您可以通过弹性变更规格快速提升集群计算能力,在业务峰值过后再快速的将集群配置降低,做到最大程度的节约成本。详情请参见弹性变更规格。
DWS磁盘扩容
随着客户业务的发展,磁盘空间往往最先出现资源瓶颈,在其他资源尚且充足的情况下,执行传统扩容操作不仅耗时久,还伴随着资源浪费问题。通过磁盘扩容可快速缓解存储资源瓶颈现象,操作过程中无需暂停业务,并且不会造成CPU、内存等资源浪费。用户可在没有其他业务情况下选择磁盘扩容操作,扩容成功后如果磁盘空间不够可以继续磁盘扩容,若扩容失败用户可尝试重新进行磁盘扩容操作。详情请参见弹性磁盘扩容。
DWS容灾管理
自动快照结合OBS存储,实现Region内容灾,如果用户生产集群所处的地理位置发生自然灾害,或者集群内部出现了故障从而导致生产集群无法正常对外提供读写服务,那么灾备集群可以切换为生产集群,从而保障业务连续性。详情请参见DWS集群容灾管理。
DWS集群状态异常操作
绑定和解绑弹性负载均衡
用户使用客户端连接DWS集群时,如果用户仅连接一个CN节点地址,通过该CN节点内网IP或弹性公网IP连接时,只能连接到固定的CN节点上,存在CN单点问题。如果通过内网域名连接时,利用域名解析的轮询特点,可以解决此问题。但内网域名仅限内网使用,使用公网域名访问时,还是存在CN单点问题,同时当前也不能在CN故障时进行请求转发,因此引入了弹性负载均衡服务(Elastic Load Balance,简称ELB),解决集群访问的单点问题。详情请参见为DWS集群绑定和解绑弹性负载均衡。
增删DWS集群CN节点
当用户集群创建后,实际需要的CN数量会随着业务需求而发生变化,因此DWS提供了增删CN节点功能,实现用户可以根据实际需求动态调整集群CN数量的要求。详情请参见增删DWS集群CN节点。
Vacuum回收DWS空间
智能运维是DWS常驻运维工具,可帮助用户智能执行运维任务。智能运维会通过集群负载情况,选择合理时间窗、并发度完成用户指定的任务,在运维任务执行过程中,智能运维将时刻关注用户业务的变化,及时调整运维任务执行策略,以减轻对用户业务的影响。智能运维支持周期型和单次型任务的创建,执行时间窗可按照不同用户业务负载定制化。详情请参见Vacuum回收DWS空间。
审计日志
DWS提供数据库审计日志、管理控制台审计日志和其他日志,便于用户进行业务日志查询、问题分析以及掌握产品安全及性能情况。详情请参见DWS集群日志管理。
- DWS与云审计服务集成,使您能够对所有的管理控制台操作及API调用进行审计。
- DWS数据库还会记录所有的SQL操作,包括连接尝试、查询和数据库的变动。
- DWS通过对接云日志服务(Log Tank Service,以下简称LTS),用户可以在LTS云日志服务查看采集的集群日志或进行日志转储。当前支持的日志类型为:CN节点日志、DN节点日志、操作系统messages日志、审计日志、cms日志、gtm日志、roach客户端日志、roach服务端日志、升级日志和扩容日志。
SQL语法
DWS具有完备的SQL能力,详情请参见SQL语法参考。
- 兼容ANSI/ISO标准的SQL92、SQL99和SQL 2003语法标准,支持存储过程,支持GBK和UTF-8字符集,支持SQL标准函数与OLAP分析函数。
- 兼容PostgreSQL/Oracle/Teradata/MySQL数据库生态,与主流第三方数据库ETL,BI(business intelligence)工具厂商对接认证。
- 支持位图roaring bitmap数据类型及对应常见函数,在互联网、零售、教育、游戏等行业,提取用户特征、用户画像等场景有广泛应用。
- 在现有范围分区(Range Partitioning)基础上,新增支持list分区方式:PARTITION BY LIST (partition_key,[...]),满足用户使用习惯。
- HDFS/OBS外表READ ONLY外表支持JSON文件格式。
- 支持标准的SQL语法,支持DDL/DML/DCL语法:
- DDL(Data Definition Language数据定义语言),用于定义或修改数据库中的对象。如:表、索引、视图等。
- DML(Data Manipulation Language数据操作语言),用于对数据库表中的数据进行操作。如:插入、更新、查询、删除。
- DCL(Data Control Language数据控制语言),是用来设置或更改数据库用户或角色权限的语句。
- 支持系统表赋权给普通用户,VACUUM能够单独赋权,以及支持可扩展的预定义权限角色功能。
- 新增表级权限ALTER/DROP/VACUUM。
- 新增Schema级权限ALTER/DROP。
- 新增预置角色role_signal_backend、role_read_all_stats。
Java UDF
DWS支持Java UDF (用户自定义函数) ,它是一种在数据处理系统中扩展功能的方式,允许开发者使用Java语言编写自定义函数,然后在SQL查询或其他数据处理场景中调用这些函数。使用DWS数据库的PL/Java函数,用户可以使用自己喜欢的Java IDE编写Java方法,并将包含这些方法的jar文件安装到DWS数据库中,然后使用该方法。DWS PL/Java基于开源Greenplum PL/Java 1.4.0开发,PL/Java所使用的JDK版本为1.8.0_201。详情请参见DWS PL/Java语言函数。
TopSQL查询
SQL调优
SQL调优的唯一目的是“资源利用最大化”,即CPU、内存、磁盘IO、网络IO四种资源利用最大化。所有调优手段都是围绕资源使用开展的。所谓资源利用最大化是指SQL语句尽量高效,节省资源开销,以最小的代价实现最大的效益。比如做典型点查询的时候,可以用seqscan+filter(即读取每一条元组和点查询条件进行匹配)实现,也可以通过indexscan实现,显然indexscan可以以更小的代价实现相同的效果。详情请参见SQL调优。
PostGIS Extension
DWS提供PostGIS Extension(版本为PostGIS-2.4.2)。PostGIS Extension是PostgreSQL的空间数据库扩展,提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。PostGIS Extension完全遵循OpenGIS规范。详情请参见使用PostGIS Extension。
DWS中PostGIS Extension依赖第三方开源软件如下:
- Geos 3.6.2
- Proj 4.9.2
- Json 0.12.1
- Libxml2 2.7.1
- Gdal 1.11.0
位图roaring bitmap功能
- 在电商行业中,商家在进行营销活动前,需要根据活动的目的,圈选一批满足特定特征的目标用户群体进行广告推送。
- 在教育行业中,需要根据学生不同的特征,推送有针对性的练习题目,帮助学生查漏补缺。
- 在搜索、视频、门户网站中,根据用户关注的热点,推送不同的内容。
列表分区
在现有范围分区(Range Partitioning)基础上,新增支持list分区方式:PARTITION BY LIST (partition_key,[...]),满足用户使用习惯。
列表分区策略分区键支持的数据类型为:TINYINT、SMALLINT、INTEGER、BIGINT、NUMERIC/DECIMAL、TEXT、NVARCHAR2、VARCHAR(n)、CHAR、BPCHAR、TIME、TIME WITH TIMEZONE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、DATE、INTERVAL、SMALLDATETIME。详情请参见CREATE TABLE PARTITION。