华为云用户手册

  • 设置高精度并重新转换模型 在转换模型时,默认采用的精度模式是fp16,如果转换得到的模型和标杆数据的精度差异比较大,可以使用fp32精度模式提升模型的精度(这块无需全换成fp32,fp32相对于fp16性能较差,所以一般检测出来哪个模型精度有问题时,再尝试是否用fp32)。使用fp32精度模式的配置文件如下: 配置文件: # config.ini [ascend_context] precision_mode=enforce_fp32 #使用 fp32
  • 训练网络迁移总结 确保算法在GPU训练时,持续稳定可收敛。避免在迁移过程中排查可能的算法问题,并且要有好的对比标杆。如果是NPU上全新开发的网络参考Pytorch迁移精度调优,排查溢出和精度问题。 理解GPU和NPU的构造以及运行的差别,有助于在迁移过程中问题分析与发挥NPU的能力。由于构造和运行机制的差别,整个迁移过程并非是完全平替,GPU在灵活性上是有其独特的优势的,而NPU上的执行目前还是依赖于算子的下发,对于NPU构造的理解是昇腾训练迁移中必备的知识,只有对于昇腾有基础理解,配合一些诊断工具,面对复杂问题时,才能进行进一步诊断与定位,进而发挥NPU的能力。 性能调优可以先将重点放在NPU不亲和的问题处理上,确保一些已知的性能问题和优化方法得到较好的应用。通用的训练任务调优、参数调优可以通过可观测数据来进行分析与优化,一般来说分段对比GPU的运行性能会有比较好的参考。算子级的调优某些情况下如果是明显的瓶颈或者性能攻坚阶段,考虑到门槛较高,可以联系华为工程师获得帮助。 精度诊断过程当前确实门槛较高,一般还是需要GPU上充分稳定的网络(包含混合精度)再到NPU上排查精度问题。常见的精度调测手段,包含使用全精度FP32,或者关闭算子融合开关等,先进行排查。对于精度问题,系统工程人员需要对算法原理有一定的理解,仅从工程角度分析有时候会非常受限,同时也可联系华为工程师进行诊断与优化。 父主题: 训练业务昇腾迁移通用指导
  • 使用精度对比工具ait debug compare 在模型转换场景,误差的累积和算子溢出等都可能导致转换后的模型存在误差。当识别到模型误差较大时,可以使用一键式全流程精度比对工具ait debug compare对比转换前的onnx模型和转换后的OM模型。 使用该工具对比onnx模型和OM模型,指定onnx模型路径、 OM模型路径、生成文件的路径以及模型输入shape的信息。其中,-o表示对比结果的保存路径,需要是一个已经存在的路径。 #shell ait debug compare -gm ./model.onnx -om ./text_encoder.om -o ./ --input-shape "input_ids:1,77" 执行成功后,会在指定输出目录下输出{timestamp}文件夹,打开对应的文件夹,可以看到result_{timestamp}.csv文件,该文件统计了各个图算子在推理过程中的日志信息。具体各个字段代表的含义可以参考昇腾整网对比文档。 排查精度问题时可以通过检索.csv文件中CosineSimilarity(余弦相似度)和MaxAbsoluteError(最大绝对误差)两列的信息定位第一个发生突变的算子。一般认为余弦相似度小于0.99时算子的精度有偏差,这种情况表明:该突变行对应的Ascend算子和onnx算子的执行结果存在较大差异,从而将排查重点锁定在对应的算子上。 如下图所示,最大绝对误差在Trilu_233这个算子处发生突变(溢出)。如果用户对模型比较了解,可以继续排查模型网络中使用这个算子的地方,否则需要向华为工程师求助。 图3 误差分析 该算子精度问题是由MindSpore Lite 2.1.0版本引入,在华为工程师修复该问题后,端到端的pipeline模型的输出能够对齐。 图4 修复后推理结果
  • 模型转换报错如何查看日志和定位? 通过如下的配置项打开对应的模型转换日志,可以看到更底层的报错。如配置以下的环境变量之后,再重新转换模型,导出对应的日志和dump图进行分析: 报错日志中搜到“not support onnx data type”,表示MindSpore暂不支持该算子。 报错日志中搜到“Convert graph to om failed”,表示CANN模块进行图编译存在保存,需要结合CANN的报错日志和dump图进行具体分析。 配置方式参考如下: 打开DEBUG日志。 设置MindSpore日志环境变量。 export GLOG_v=0 # 0-DEBUG、1-INFO、2-WARNING、3-ERROR 设置CANN日志环境变量。 # 0:表示DEBUG。1:表示INFO。2:表示WARNING。3:表示ERROR。4: 表示NONE。 export ASCEND_GLOBAL_LOG_LEVEL=1 # 表示日志打印 export ASCEND_SLOG_PRINT_TO_STDOUT=1 DUMP模型转换中间图。 设置DUMP中间图环境变量。 # 1:表示dump图全量内容。2:表示不dump权重数据的基础图。3:表示只dump节点关系的精简图。 export DUMP_GE_GRAPH=2 # 1:表示dump图所有图。2:表示dump除子图外的所有图。3:表示只dump最后一张图。 export DUMP_GRAPH_LEVEL=2 父主题: 常见问题
  • 相关操作 关闭TensorBoard方式如下: 方式1:单击下图所示的,进入TensorBoard实例管理界面,该界面记录了所有启动的TensorBoard实例,单击对应实例后面的SHUT DOWN即可停止该实例。 图8 单击SHUT DOWN停该实例 方式2:在开发环境JupyterLab中的.ipynb文件窗口中输入命令,关闭 TensorBoard。PID在启动界面有提示或者通过 ps -ef | grep tensorboard 查看。 !kill PID 方式3:单击下方红框中的按钮可以关闭所有启动的TensorBoard实例。 图9 关闭所有启动的TensorBoard实例 方式4(不推荐):直接在JupyterLab中上关闭TensorBoard窗口,此方式仅关闭可视化窗口,并未关闭后台。
  • Ascend应用样例列表(高阶教程) 针对支持使用Ascend应用的算法,本文档提供了如下几个操作样例,您可以参考如下典型样例,使用ModelArts提供的预置算法(训练管理或AI Gallery),支撑您的业务应用。 表10 Ascend样例列表 样例 镜像 对应功能 场景 说明 开源大模型基于ModelArts的一键推理部署 MindSpore Ascend推理 开源大模型推理部署 此案例介绍如何从AI Gallery中订阅LLaMA系列和ChatGLM系列开源大模型,并在ModelArts上使用昇腾算力进行推理部署。 LLaMA系列模型基于ModelArts的全参数微调训练 MindSpore 订阅算法(AI Gallery)、Ascend训练、Ascend推理 LLaMA系列开源大模型全参微调训练 此案例介绍如何从AI Gallery中订阅LLaMA系列开源大模型算法,并在ModelArts上使用昇腾算力进行微调训练,最终将模型部署为在线服务。 ChatGLM系列模型基于ModelArts的全参微调训练 MindSpore MindSpore 订阅算法(AI Gallery)、Ascend训练、Ascend推理 ChatGLM系列开源大模型全参微调训练 此案例介绍如何从AI Gallery中订阅ChatGLM系列开源大模型算法,并在ModelArts上使用昇腾算力进行微调训练,最终将模型部署为在线服务。 推理业务昇腾迁移通用指导 MindSpore 模型迁移、Ascend推理部署 推理业务迁移 此案例介绍如何将客户已有的推理业务迁移到ModelArts上,使用昇腾算力进行推理部署。
  • AOE的自动性能调优使用上完全没有效果怎么办? 在MindSpore Lite Convertor2.1版本之前可能出现的调优不生效的场景,建议直接使用MindSpore Lite Convertor2.1及以后的版本。配置文件指定选项进行AOE调优。使用转换工具配置config参数,具体如下所示,其中”subgraph tuning”表示子图调优,”operator tuning”表示算子调优。 其中,“ge.op_compiler_cache_mode”在该场景下必须设置为“force”, 表明该场景下要强制刷新缓存,保证AOE调优后的知识库能够命中,实现模型调优。示例如下: # config.ini [ascend_context] aoe_mode="subgraph tuning, operator tuning" [acl_init_options] ge.op_compiler_cache_mode="force" 父主题: 常见问题
  • LoRA适配流是怎么样的? 因为现在pytorch-npu推理速度比较慢(固定shape比mindir慢4倍),在现在pth-onnx-mindir的模型转换方式下,暂时只能把lora合并到unet主模型内,在每次加载模型前lora特性就被固定了(无法做到pytorch每次推理都可以动态配置的能力)。 目前临时的静态方案可参考sd-scripts, 使用其中的“networks/merge_lora.py”把lora模型合入unet和text-encoder模型。 父主题: 常见问题
  • Stable Diffusion WebUI如何适配? WebUI一般可以分为前端和后端实现两部分,后端的实现模式种类多样,并且依赖了多个的第三方库,当前在WebUI适配时,并没有特别好的方式。在对后端实现比较理解的情况下,建议针对具体的功能进行Diffusers模块的适配与替换,然后针对替换上去的Diffusers,对其pipeline进行昇腾迁移适配,进而替代原有WebUI的功能。针对很多参数以及三方加速库(如xformers)的适配,当前没有特别好的处理方案。 父主题: 常见问题
  • 创建自增序列 使用客户端连接DDM实例。 连接成功后,打开目标逻辑库。 输入命令创建自增序列。 create sequence xxxxx ; xxxxx代表序列名。 建议使用bigint型作为自增键的数据类型。tinyint、smallint、mediumint、integer、int数据类型不建议作为自增键的类型,容易越界造成值重复。 通过“show sequences”命令可查看自增序列的使用率。如果使用率已达到或接近100%,请不要再插入数据,联系DDM客服人员进行处理。
  • 使用限制 此HINT只对SELECT/DML/TRUNCATE语句起作用。 此HINT仅在文本协议下工作,Prepare协议下无法使用。 从3.0.6版本开始,不支持/** 开头的注释。/**被识别为DDM内部hint保留关键字。 从3.0.6版本开始,为保证SQL安全性,确保hint的有效性,针对此类hint加强了内容校验。如果此类语句块中不含有效hint,则会产生语法合法性校验报错, 对应SQL语句将执行失败。
  • 语法限制 不支持使用子查询(相关子查询和非相关子查询)。 UPDATE语句中的where_condition不支持计算表达式及其子查询。 不支持在多表更新中修改广播表(广播表中的列不可出现在 SET 中赋值语句的左侧)。 不支持更新逻辑表的拆分键字段,更新拆分键字段可能导致数据重新分布,DDM 暂不支持。 UPDATE操作不支持datetime(YYYY-MM-DD HH:MM:SS)中“YYYY”取值1582年及之前年份。 UPDATE操作不支持更新拆分键值为DEFAULT关键字。 UPDATE不支持在一个语句中对同一字段重复更新。 UPDATE不支持关联更新拆分键。 不支持含有JSON类型字段的二级拆分表进行带子查询的拆分键更新。 UPDATE不支持自关联更新。 关联更新中,不支持在目标列的赋值语句或表达式中引用其它目标列,将造成更新结果不符合预期。 例如: update tbl_1 a,tbl_2 b set a.name=concat(b.name,'aaaa'),b.name=concat(a.name,'bbbb') on a.id=b.id。 关联更新不支持不带关联条件的Join。
  • 操作步骤 登录分布式数据库中间件控制台。 在“实例管理”页面,选择指定的目标实例,单击实例名称。 在实例基本信息页面,单击“实例信息”模块的“版本回滚”。 图1 版本回滚 在版本回滚弹窗中选单击“立即回滚”。 图2 版本回滚确认 确认无误后单击“是”进行版本回滚。 图3 确认回滚 版本回滚时,实例状态将变为“回滚中”。 图4 版本回滚中 版本回滚完成后,实例状态由“回滚中”变为“运行中”,版本将显示回滚后的版本号。 图5 版本回滚完成
  • 在MySQL客户端执行DDL操作 rename table name不支持与其他DDL语句在同一条SQL执行。 TRUNCATE Syntax 示例: TRUNCATE TABLE t1; 表示清空表格t1。 TRUNCATE会将表完全清空,它需要DROP权限。在逻辑上类似于删除所有行的DELETE语句。 ALTER TABLE Syntax 示例: ALTER TABLE t2 DROP COLUMN c, DROP COLUMN d; 表示更改表t2的结构,删除c列和d列。 ALTER可以添加或删除列、创建或销毁索引、更改现有列的类型或重命名列或表本身。还可以更改特性,如用于表或表注释的存储引擎。 DROP INDEX Syntax 示例: DROP INDEX `PRIMARY` ON t; 表示删除表t中的主键。 DROP INDEX即从表tbl_name中删除名为index_name的索引。 CREATE INDEX Syntax 示例: CREATE INDEX part_of_name ON customer (name(10)); 表示使用name列的前10个字符创建索引(假设name具有非二进制字符串类型)。 CREATE INDEX用于向现有表添加索引。
  • 不支持的函数 表5 函数的限制 函数 限制条件 ROW_COUNT() 暂不支持ROW_COUNT()函数。 COMPRESS() DDM 暂不支持COMPRESS()函数。如果无法确认函数是否能下推到RDS,请不要使用该函数。 SHA() DDM 暂不支持SHA()函数。如果无法确认函数是否能下推到RDS,请不要使用该函数。 SHA1() DDM 暂不支持SHA1()函数。如果无法确认函数是否能下推到RDS,请不要使用该函数。 MD5() DDM 暂不支持MD5()函数。如果无法确认函数是否能下推到RDS,请不要使用该函数。 AES_ENCRYPT() DDM 暂不支持AES_ENCRYPT()函数。如果无法确认函数是否能下推到RDS,请不要使用该函数。 AES_DECRYPT() DDM 暂不支持AES_DECRYPT()函数。如果无法确认函数是否能下推到RDS,请不要使用该函数。 YEARWEEK() DDM 暂不支持YEARWEEK()函数。如果无法确认函数是否能下推到RDS,请不要使用该函数。 TIME_FORMAT() DDM暂不支持TIME_FORMAT()函数。如果无法确认函数是否能下推到RDS,请不要使用该函数,建议使用DATE_FORMAT()函数。
  • SNAPSHOT SNAPSHOT系统表记录每次创建性能视图快照的起止时间,设置enable_wdr_snapshot为on后,该表由后台快照线程创建并维护。需要有系统管理员权限才可以访问此系统表。 表1 dbms_om.snapshot字段 名称 类型 描述 snapshot_id name 快照ID(此字段为主键和分布键)。 start_ts timestamp with time zone 快照开始时间。 end_ts timestamp with time zone 快照结束时间。 此系统表的schema是dbms_om。 禁止从外部修改或删除此表,否则可能引起视图快照相关功能异常。 父主题: 系统表
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 --删除EMP表中某部门的所有员工,如果该部门中已没有员工,则在DEPT表中删除该部门。 CREATE TABLE staffs_t1 AS TABLE staffs; CREATE TABLE sections_t1 AS TABLE sections; CREATE OR REPLACE PROCEDURE proc_cursor3() AS DECLARE V_DEPTNO NUMBER(4) := 100; BEGIN DELETE FROM staffs WHERE section_ID = V_DEPTNO; --根据游标状态做进一步处理 IF SQL%NOTFOUND THEN DELETE FROM sections_t1 WHERE section_ID = V_DEPTNO; END IF; END; / CALL proc_cursor3(); --删除存储过程和临时表 DROP PROCEDURE proc_cursor3; DROP TABLE staffs_t1; DROP TABLE sections_t1;
  • PG_STAT_BAD_BLOCK PG_STAT_BAD_BLOCK视图显示自节点启动后,读取数据时出现Page/CU校验失败的统计信息。 表1 PG_STAT_BAD_BLOCK字段 名字 类型 描述 nodename text 节点名称。 databaseid integer 数据库OID。 tablespaceid integer 表空间OID。 relfilenode integer 文件对象ID。 forknum integer 文件类型。 error_count integer 出现校验失败的次数。 first_time timestamp with time zone 第一次出现时间。 last_time timestamp with time zone 最近一次出现时间。 父主题: 系统视图
  • debug_print_plan 参数说明:用于控制打印查询执行结果。 参数类型:SIGHUP 取值范围:布尔型 on表示开启打印结果的功能。 off表示关闭打印结果的功能。 默认值:off 只有当日志的级别为log及以上时,debug_print_parse、debug_print_rewritten和debug_print_plan的调试信息才会输出。当这些选项打开时,调试信息只会记录在服务器的日志中,而不会输出到客户端的日志中。通过设置client_min_messages和log_min_messages参数可以改变日志级别。 在打开debug_print_plan开关的情况下需尽量避免调用gs_encrypt_aes128及gs_decrypt_aes128函数,避免敏感参数信息在日志中泄露的风险。同时建议用户在打开debug_print_plan开关生成的日志中对gs_encrypt_aes128及gs_decrypt_aes128函数的参数信息进行过滤后再提供给外部维护人员定位,日志使用完成后请及时删除。
  • log_error_verbosity 参数说明:控制服务器日志中每条记录的消息写入的详细度。 参数类型:SUSET 取值范围:枚举类型 terse输出不包括DETAIL、HINT、QUERY及CONTEXT错误信息的记录。 verbose输出包括SQLSTATE错误代码 、源代码文件名、函数名及产生错误所在的行号。 default输出包括DETAIL、HINT、QUERY及CONTEXT错误信息的记录,不包括SQLSTATE错误代码 、源代码文件名、函数名及产生错误所在的行号。 默认值:default
  • log_statement 参数说明:控制记录SQL语句。对于使用扩展查询协议的客户端,记录接收到执行消息的事件和绑定参数的值(内置单引号要双写)。 参数类型:SUSET 即使log_statement设置为all,包含简单语法错误的语句也不会被记录,因为仅在完成基本的语法分析并确定了语句类型之后才记录日志。在使用扩展查询协议的情况下,在执行阶段之前(语法分析或规划阶段)同样不会记录。将log_min_error_statement设为ERROR或更低才能记录这些语句。 取值范围:枚举类型 none表示不记录语句。 ddl表示记录所有的数据定义语句,比如CREATE、ALTER和DROP语句。 mod表示记录所有DDL语句,还包括数据修改语句INSERT、UPDATE、DELETE、TRUNCATE和COPY FROM 。 all表示记录所有语句,PREPARE、EXECUTE和EXPLAIN ANALYZE语句也同样被记录。 默认值:none
  • logging_module 参数说明:用于设置或者显示模块日志在服务端的可输出性。该参数属于会话级参数,不建议通过gs_guc工具来设置。 参数类型:USERSET 取值范围:字符串 默认值:所有模块日志在服务端是不输出的,可由SHOW logging_module查看。 设置方法:首先,可以通过SHOW logging_module来查看哪些模块是支持可控制的。例如,查询输出结果为: 1 2 3 4 5 show logging_module; logging_module ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALL,on(),off(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP,ACCELERATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN) (1 row) 支持可控制的模块使用大写来标识,特殊标识ALL用于对所有模块日志进行设置。可以使用on/off来控制模块日志的输出。设置SSL模块日志为可输出,使用如下命令: 1 2 3 4 5 6 7 8 set logging_module='on(SSL)'; SET show logging_module; logging_module ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ALL,on(SSL),off(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP,A CCELERATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN) (1 row) 可以看到模块SSL的日志输出被打开。 ALL标识是相当于一个快捷操作,即对所有模块的日志可输出进行开启或关闭。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 set logging_module='off(ALL)'; SET show logging_module; logging_module ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALL,on(),off(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP, ACCELERATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN) (1 row) set logging_module='on(ALL)'; SET show logging_module; logging_module ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALL,on(DFS,GUC,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,ANALYZE,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,SPACE,OBS,EXECUTOR,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_SUBPLAN,OPT_SETOP,OPT_CARD,OPT_SKEW,SMP,UDF,COOP_ANALYZE,WLMCP,ACCELE RATE,PLANHINT,PARQUET,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,TQUAL,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,INSTR,COMM_IPC,COMM_PARAM,CSTORE,JOB,STREAMPOOL,STREAM_CTESCAN),off() (1 row) 所有模块中,COMM_IPC必须显式的打开/开闭,执行以下命令都可以将该模块的日志打开: 1 2 3 4 set logging_module='on(ALL)'; SET set logging_module='on(COMM_IPC)'; SET 设置成功后,COMM_IPC模块日志不会自动关闭,关闭COMM_IPC模块的日志,必须手动执行关闭命令,以下两条命令都可以将该模块日志关闭: 1 2 3 4 set logging_module='off(ALL)'; SET set logging_module='off(COMM_IPC)'; SET 依赖关系:该参数依赖于log_min_messages参数的设置。
  • log_duration 参数说明:控制记录每个已完成SQL语句的执行时间。对使用扩展查询协议的客户端、会记录语法分析、绑定和执行每一步所花费的时间。 参数类型:SUSET 取值范围:布尔型 设置为off ,该选项与log_min_duration_statement的不同之处在于log_min_duration_statement强制记录查询文本。 设置为on并且log_min_duration_statement大于零,记录所有持续时间,但是仅记录超过阈值的语句。这可用于在高负载情况下搜集统计信息。 默认值:on
  • PG_USER_MAPPING PG_USER_MAPPING系统表存储从本地用户到远程的映射。 需要有系统管理员权限才可以访问此系统表。普通用户可以使用视图PG_USER_MAPPINGS进行查询。 表1 PG_USER_MAPPING字段 名字 类型 引用 描述 oid oid - 行标识符(隐藏属性,必须明确选择才会显示)。 umuser oid PG_AUTHID.oid 被映射的本地用户的OID,如果用户映射是公共的则为0。 umserver oid PG_FOREIGN_SERVER.oid 包含此映射的外部服务器的OID。 umoptions text[] - 用户映射指定选项,使用“keyword=value”格式的字符串。 父主题: 系统表
  • PG_SHDESCRIPTION PG_SHDESCRIPTION系统表存储共享数据库对象的可选注释。可以使用COMMENT命令操作注释的内容,使用gsql的\d命令查看注释内容。 PG_DESCRIPTION提供了类似的功能,它记录了单个数据库中对象的注释。 不同于大多数系统表,PG_SHDESCRIPTION在集群中所有数据库之间共享:每个数据库集群只有一个PG_SHDESCRIPTION,而不是每个数据库一个。 表1 PG_SHDESCRIPTION字段 名字 类型 引用 描述 objoid oid 任意OID属性 此描述所属的对象的OID。 classoid oid PG_CLASS.oid 此对象所在的系统目录的OID。 description text - 作为对该对象描述的任意文本。 父主题: 系统表
  • PG_STATIO_SYS_SEQUENCES PG_STATIO_SYS_SEQUENCES视图显示命名空间中所有系统表为序列的IO状态信息。 表1 PG_STATIO_SYS_SEQUENCES字段 名称 类型 描述 relid oid 序列OID。 schemaname name 序列中模式名。 relname name 序列名。 blks_read bigint 从序列中读取的磁盘块数。 blks_hit bigint 序列缓冲区命中数量。 父主题: 系统视图
  • 原型 1 2 3 4 SQLRETURN SQLSetEnvAttr(SQLHENV EnvironmentHandle SQLINTEGER Attribute, SQLPOINTER ValuePtr, SQLINTEGER StringLength);
  • 参数 表1 SQLSetEnvAttr参数 关键字 参数说明 EnviromentHandle 环境句柄。 Attribute 需设置的环境属性,可为如下值: SQL_ATTR_ODBC_VERSION:指定ODBC版本。 SQL_CONNECTION_POOLING:连接池属性。 SQL_OUTPUT_NTS:指明驱动器返回字符串的形式。 ValuePtr 指向对应Attribute的值。依赖于Attribute的值,ValuePtr可能是32位整型值,或为以空结束的字符串。 StringLength 如果ValuePtr指向字符串或二进制缓冲区,这个参数是*ValuePtr长度,如果ValuePtr指向整型,忽略StringLength。
  • 数据库对象命名 数据库对象命名需要满足约束:长度不超过63个字符,以字母或下划线开头,中间字符可以是字母、数字、下划线、$、#。 【建议】避免使用保留或者非保留关键字命名数据库对象。 可以使用SELECT * FROM pg_get_keywords()查询GaussDB(DWS)的关键字,或者在《SQL语法参考》中“关键字”章节中查看。 【建议】避免使用双引号括起来的字符串来定义数据库对象名称,GaussDB(DWS)中使用双引号将数据库对象名称括起来时表示对大小写敏感。数据库对象名称大小写敏感会使定位问题难度增加。 【建议】数据库对象命名风格务必保持统一。 增量开发的业务系统或进行业务迁移的系统,建议遵守历史的命名风格。 数据库对象名称由字母、数字和下划线组成,并且不能由数字开头。建议使用多个单词组成,以下划线分割。 数据库对象名称最好能够望文知意,尽量避免使用自定义缩写(可以使用通用的术语缩写进行命名)。例如,在命名中可以使用具有实际业务含义的英文词汇或汉语拼音,但规则应该在集群范围内保持一致。 变量名的关键是要具有描述性,即变量名称要有一定的意义,变量名要有前缀标明该变量的类型。 【建议】表对象的命名应该可以表征该表的重要特征。例如,在表对象命名时区分该表是普通表、临时表还是非日志表: 普通表名按照数据集的业务含义命名。 临时表以“tmp_+后缀”命名。 非日志表以“ul_+后缀”命名。 外表以“f_+后缀”命名。 父主题: 开发设计建议
  • USER_TAB_PARTITIONS USER_TAB_PARTITIONS视图存储当前用户下所有分区的信息。当前用户下每个分区表的每个分区在USER_TAB_PARTITIONS中都会有一条记录。 名称 类型 描述 table_owner character varying(64) 分区所在表的所有者。 schema character varying(64) 分区表模式。 table_name character varying(64) 表名。 partition_name character varying(64) 分区的名称。 high_value text 范围分区的上边界,或列表分区的边界值集合。 前向兼容的保留字段,8.1.3集群版本新增pretty_high_value用于记录此信息。 pretty_high_value text 范围分区的上边界,或列表分区的边界值集合。 查询结果为表分区对应边界表达式的即时反编译输出。该字段的输出比high_value的信息更详细,根据实际使用场景可输出collaton、字段数据类型等信息。 tablespace_name name 分区所在表空间的名称。 父主题: 系统视图
共100000条