检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
执行导出 导出操作语法 执行数据导出语法: 1 INSERT INTO [foreign table 表名] SELECT * FROM [源表名]; 执行导出数据示例 示例1:将表product_info_output的数据通过外表product_info_output_ext导出到数据文件中。
DWS SQL编写规则 DDL 【建议】在DWS中,建议DDL(建表、comments等)操作统一执行,在批处理作业中尽量避免DDL操作。避免大量并发事务对性能的影响。 【建议】在非日志表(unlogged table)使用完后,立即执行数据清理(truncate)操作。因为在异
VIEW对象设计规范 建议2.16 视图的嵌套需避免超过三层 违反规范的影响: 视图嵌套过深导致执行计划不稳定、耗时不稳定。 视图依赖的对象重建风险高,锁冲突发生概率增大。 方案建议: 创建视图直接基于物理表查询,不建议嵌套视图。 父主题: DWS对象设计规范
TABLESPACE对象设计规范 规则2.8 禁止自定义TABLESPACE表空间 违反规则的影响: 分布式场景建表使用自定义表空间,导致表数据无法按照各DN分布式存储,出现存储倾斜。 方案建议: 创建表对象使用内置默认表空间。 父主题: DWS对象设计规范
管理DWS数据库连接 操作场景 数据库默认支持一定数量的连接,管理员用户可以通过管理数据库的连接,了解当前数据库的连接性能或增加连接限制,使更多用户或应用程序可以同时连接到数据库。 支持的连接数规格 集群支持的连接数与集群节点规格有关: 表1 支持连接数规格 参数 参数描述 CN连接数
数字操作函数 abs(x) 描述:绝对值。 返回值类型:和输入相同。 示例: 1 2 3 4 5 SELECT abs(-17.4); abs ------ 17.4 (1 row) acos(x) 描述:反余弦。 返回值类型:double precision 示例: 1 2
删除残留文件函数 pg_rm_residualfiles(filepath) 描述:用于删除当前实例中指定残留文件列表中的文件。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。 参数类型:text 返回值类型:record 函数返回字段如下: 表1 pg_rm_
行数估算过小,优化器选择走NestLoop导致性能下降 问题现象 查询语句执行慢,卡住无法返回结果。SQL语句的特点是2~3张表left join,然后通过SELECT查询结果,执行计划如下: 原因分析 优化器在选择执行计划时,对结果集评估较小,导致执行计划走了NestLoop,性能下降。
数字操作函数 abs(x) 描述:绝对值。 返回值类型:和输入相同。 示例: 1 2 3 4 5 SELECT abs(-17.4); abs ------ 17.4 (1 row) acos(x) 描述:反余弦。 返回值类型:double precision 示例: 1 2
范围操作符 = 描述:等于 示例: 1 2 3 4 5 SELECT int4range(1,5) = '[1,4]'::int4range AS RESULT; result -------- t (1 row) <> 描述:不等于 示例: 1 2 3 4 5 SELECT
DWS唯一约束和唯一索引有什么区别? 唯一约束和唯一索引概念上不同 唯一约束确保一列或者一组列中包含的数据对于表中所有的行都是唯一的。 如果没有声明DISTRIBUTE BY REPLICATION,则唯一约束的列集合中必须包含分布列。 唯一索引用于限制索引字段值的唯一性,或者是多个字段组合值的唯一性。CREATE
序列号生成函数 generate_series()函数根据指定的开始值(start)、结束值(stop)和步长(step)返回一个基于系列的集合。 generate_series()函数的入参中,当step是正数且start大于stop,则返回零行。相反,当step是负数且sta
验证残留文件函数 pg_verify_residualfiles(filepath) 描述:用于验证参数指定文件中记录的文件是否为残留文件。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。 参数类型:text 返回值类型:bool 函数返回字段如下: 表1 pg
GOTO语句 GOTO语句可以实现从GOTO位置到目标语句的无条件跳转。GOTO语句会改变原本的执行逻辑,因此应该慎重使用,或者也可以使用EXCEPTION处理特殊场景。当执行GOTO语句时,目标Label必须是唯一的。 语法 label declaration ::= goto
DWS JDBC配置规则 目前,DWS相关的第三方工具可以通过JDBC进行连接的,此部分将介绍工具配置时的注意事项。 连接参数 【关注】第三方工具通过JDBC连接DWS时,JDBC向DWS发起连接请求,会默认添加以下配置参数,详见JDBC代码ConnectionFactoryImpl类的实现。
UPDATE&DELETE操作规范 建议3.5 避免并发UPDATE/DELETE行存表的同一行 违反规范的影响: 并发UPDATE/DELETE行存表可能导致行锁阻塞和分布式死锁风险,导致业务报错和性能下降。 方案建议: 按主键或分布列进行分组UPDATE/DELETE,组间并行,组内串行。
案例:选择合适的分布列 分布列用于将数据分布到不同的节点上,划分均衡可以避免数据倾斜。 在进行关联查询时,尽量选择查询中的关联条件作为分布键。当关联条件作为分布键时,相关数据都分布在DN本地,将减少DN之间的数据流动代价,提升查询速度。 优化前 将a作为t1和t2的分布列,表定义如下:
SCHEMA对象设计规范 建议2.7 不在其他USER的私有SCHEMA下创建对象 私有SCHEMA是指创建USER时自带的同名SCHEMA,该SCHEMA为该USER私有。 违反规则的影响: 在其他用户私有SCHEMA下创建对象,对象权限不受创建者控制,OWNER也非创建者。 方案建议:
业务语法转换迁移 假设Oracle有原业务SQL如下,将其保存成query.sql格式文件。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -- HAVING子句必须出现在GROUP BY子句后面,而Oracle允许HAVING在GROUP
处理导入错误 操作场景 当数据导入发生错误时,请根据本文指引信息进行处理,错误表只能记录数据格式错误。 查询错误信息 数据导入过程中发生的错误,一般分为数据格式错误和非数据格式错误。 数据格式错误 在创建外表时,通过设置参数“LOG INTO error_table_name”,