教程:已有数据的物理集群转换逻辑集群 场景介绍 大规模数据库集群通常会同时包含很多业务数据,不同业务有不同的数据表,可以通过资源管理功能创建多个资源池来实现不同业务的资源隔离。GaussDB(DWS)支持将不同业务用户分配给不同资源池,以便减少业务之间资源(CPU资源、内存资源、IO
创建和管理GaussDB(DWS) Schema Schema又称作模式,从逻辑上组织一个数据库中的对象和数据。通过管理Schema,允许多个用户使用同一数据库而不相互干扰,同时便于将第三方应用添加到相应的Schema下而不引起冲突。 相同的数据库对象名称可以应用在同一数据库的不同
创建和管理GaussDB(DWS)视图 视图允许用户保存常用的或者复杂的查询。视图在磁盘上并没有被物理存储,当用户访问视图时查询会作为一个子查询运行。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变
加载驱动 在创建数据库连接之前,需要先加载数据库驱动程序。 加载驱动有两种方法: 在代码中创建连接之前任意位置隐含装载:Class.forName("org.postgresql.Driver"); 在JVM启动时参数传递:java -Djdbc.drivers=org.postgresql.Driver
TABLE对象设计规范(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 违反规范的影响: 分布式和分布列选择错误,导致表数据存储倾斜,访问性能下降,严重情况会触发存储和计算资源过载。 方案建议: 创建表时通过DISTRIBUTE BY显式指定分布方式和分布列,分布列选择原则如下表所示
INDEX对象设计规范(重点) 规则2.14 只创建必要的索引,创建索引必须选择合适的列和顺序 违反规范的影响: 冗余索引浪费空间,索引多影响入库效率。 组合索引中列顺序错误,影响查询效率。 最佳实践: 索引的使用需兼顾以下条件: 索引列必须是常用于过滤条件或JOIN关联条件的列。
Join顺序的Hint 功能描述 指明join的顺序,包括内外表顺序。 语法格式 单层圆括号(),仅指定join顺序,不指定内外表顺序。 1 2 leading(join_table_list) leading(@block_name join_table_list) 双层圆括号
Join方式的Hint 功能描述 指明Join使用的方法,可以为Nested Loop,Hash Join和Merge Join。 语法格式 1 [no] nestloop|hashjoin|mergejoin([@block_name] table_list) 参数说明 no表示
Stream方式的Hint 功能描述 指明stream使用的方法,可以为broadcast和redistribute以及指定AGG重分布的分布键。 指定Agg重分布列Hint,仅8.1.3.100及以上集群版本支持。 语法格式 1 [no] broadcast | redistribute
配置参数的hint 功能描述 指明计划生成时配置参数的值,又称作guc hint。 注意事项 如果hint设置的配置参数在语句级别生效,则该hint必须写在顶层查询中,而不能写在子查询中。对于UNION、INTERSECT、EXCEPT和MINUS语句,可以将在语句级别的guc hint
Plan Hint实际调优案例 本节以TPC-DS标准测试的Q24的部分语句为例,在1000X,24DN环境上,说明使用plan hint进行实际调优的过程。示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
GS_WLM_INSTANCE_HISTORY GS_WLM_INSTANCE_HISTORY系统表存储与实例(CN或DN)相关的资源使用相关信息。该系统表里每条记录都是对应时间点某实例资源使用情况,包括:内存、CPU核数、磁盘IO、进程物理IO和进程逻辑IO信息。 表1 GS_WLM_INSTANCE_HISTORY
GS_WLM_OPERATOR_INFO GS_WLM_OPERATOR_INFO系统表显示执行作业结束后的算子相关的记录。此数据是从内核中转储到系统表中的数据。当设置GUC参数enable_resource_record为on时,系统会定时将GS_WLM_OPERATOR_HISTORY
timezone_abbreviations 参数说明:设置服务器接受的时区缩写值。 参数类型:USERSET 取值范围:字符串,可查询视图pg_timezone_names获得。 默认值:Default Default表示通用时区的缩写。
GS_NODE_STAT_RESET_TIME GS_NODE_STAT_RESET_TIME视图提供当前节点的统计信息重置时间,返回带时区的时间戳。 详细含义参考get_node_stat_reset_time()函数。 实例正常运行过程中,内存中的各类统计数值会逐渐累加,以下情况会导致内存中的统计数值被重置为
JDBC接口参考 JDBC接口是一套提供给用户的API方法,本节将对部分常用接口做具体描述,若涉及其他接口可参考JDK1.6(软件包)/JDBC4.0中相关内容。 java.sql.Connection java.sql.Connection是数据库连接接口。 表1 对java.sql.Connection
ODBC开发示例 常用功能示例代码 此示例演示如何通过ODBC方式获取DWS中的数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
GS_WLM_OPERATOR_HISTORY GS_WLM_OPERATOR_HISTORY视图显示的是当前用户在当前CN上执行作业结束后的算子的相关记录。 此视图用于从DWS中查询数据,数据库中的数据会定时被清理。当GUC参数enable_resource_record为on时
历史版本兼容性 DWS介绍数据库的向下兼容性和对外兼容性特性的参数控制。数据库系统的向后兼容性能够为旧版本的数据库应用提供支持。本节介绍的参数主要控制数据库的向后兼容性。 array_nulls 参数说明:控制数组输入解析器是否将未用引用的NULL识别为数组的一个NULL元素。 参数类型
DWS数据脱敏 DWS提供列级别的数据脱敏(Dynamic Data Masking)功能。针对某些敏感信息(如身份证号、手机号、银行卡号等),通过应用脱敏函数进行原始数据的变形改写,实现敏感隐私数据的可靠保护,从而增强产品在数据安全和隐私保护方面的能力。 创建表的数据脱敏策略 DWS