华为云用户手册

  • PG_AUTH_MEMBERS PG_AUTH_MEMBERS系统表存储显示角色之间的成员关系。 表1 PG_AUTH_MEMBERS字段 名称 类型 描述 roleid oid 拥有成员的角色ID。 member oid 属于ROLEID角色的一个成员的角色ID。 grantor oid 赋予此成员关系的角色ID。 admin_option boolean 如果MEMBER可以把ROLEID角色的成员关系赋予其他角色,则为真,不可以则为假。 父主题: 系统表
  • 语法格式 修改用户的权限等信息。 1 ALTER USER user_name [ [ WITH ] option [ ... ] ]; 其中option子句为。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 { CREATEDB | NOCREATEDB } | { CREATEROLE | NOCREATEROLE } | { INHERIT | NOINHERIT } | { AUDITADMIN | NOAUDITADMIN } | { SYSADMIN | NOSYSADMIN } | {MONADMIN | NOMONADMIN} | {OPRADMIN | NOOPRADMIN} | {POLADMIN | NOPOLADMIN} | { USEFT | NOUSEFT } | { LOG IN | NOLOGIN } | { REPLICATION | NOREPLICATION } | {VCADMIN | NOVCADMIN} | {PERSISTENCE | NOPERSISTENCE} | CONNECTION LIMIT connlimit | [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' [EXPIRED] | DISABLE | EXPIRED } | [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' | EXPIRED ] | DISABLE } | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | USER GROUP 'groupuser' | PERM SPACE 'spacelimit' | TEMP SPACE 'tmpspacelimit' | SPILL SPACE 'spillspacelimit' | NODE GROUP logic_cluster_name | PGUSER 修改用户名。 1 2 ALTER USER user_name RENAME TO new_name;
  • 执行信息 在SQL调优过程中经常需要执行EXPLAIN ANALYZE或EXPLAIN PERFORMANCE查看SQL语句实际执行信息,通过对比实际执行与优化器的估算之间的差别来为优化提供依据。EXPLAIN PERFORMANCE相对于EXPLAIN ANALYZE增加了每个DN上的执行信息。 以如下SQL语句为例: select count(1) from tb1; 执行EXPLAIN PERFORMANCE输出为: 图中显示执行信息分为以下7个部分 以表格的形式将计划显示出来,包含有11个字段,分别是:id、operation、A-time、A-rows、E-rows、E-distinct、Peak Memory、E-memory、A-width、E-width和E-costs。其中计划类字段(id、operation以及E开头字段)的含义与执行EXPLAIN时的含义一致,详见执行计划小节中的说明。A-time、A-rows、E-distinct、Peak Memory、A-width的含义说明如下: A-time:当前算子执行完成时间,一般DN上执行的算子的A-time是由[]括起来的两个值,分别表示此算子在所有DN上完成的最短时间和最长时间。 A-rows:表示当前算子的实际输出元组数。 E-distinct:表示hashjoin算子的distinct估计值。 Peak Memory:此算子在每个DN上执行时使用的内存峰值。 A-width:表示当前算子每行元组的实际宽度,仅对于重内存使用算子会显示,包括:(Vec)HashJoin、(Vec)HashAgg、(Vec) HashSetOp、(Vec)Sort、(Vec)Materialize算子等,其中(Vec)HashJoin计算的宽度是其右子树算子的宽度,会显示在其右子树上。 Predicate Information (identified by plan id): 这一部分主要显示的是静态信息,即在整个计划执行过程中不会变的信息,主要是一些join条件和一些filter信息。 Memory Information (identified by plan id): 这一部分显示的是整个计划中会将内存的使用情况打印出来的算子的内存使用信息,主要是Hash、Sort算子,包括算子峰值内存(peak memory),控制内存(control memory),估算内存使用(operator memory),执行时实际宽度(width),内存使用自动扩展次数(auto spread num),是否提前下盘(early spilled),以及下盘信息,包括重复下盘次数(spill Time(s)),内外表下盘分区数(inner/outer partition spill num),下盘文件数(temp file num),下盘数据量及最小和最大分区的下盘数据量(written disk IO [min, max] )。 Targetlist Information (identified by plan id) 这一部分显示的是每一个算子输出的目标列。 DataNode Information (identified by plan id): 这一部分会将各个算子的执行时间、CPU、buffer的使用情况全部打印出来。 User Define Profiling 这一部分显示的是CN和DN、DN和DN建连的时间,以及存储层的一些执行信息。 ====== Query Summary =====: 这一部分主要打印总的执行时间和网络流量,包括了各个DN上初始化和结束阶段的最大最小执行时间、CN上的初始化、执行、结束阶段的时间,以及当前语句执行时系统可用内存、语句估算内存等信息。 A-rows和E-rows的差异体现了优化器估算和实际执行的偏差度。一般来说,偏差越大,越可以认为优化器生成的计划越不可信,人工干预调优的必要性越大。 A-time中的两个值偏差越大,表明此算子的计算偏斜(在不同DN上执行时间差异)越大,人工干预调优的必要性越大。 Max Query Peak Memory经常用来估算SQL语句耗费内存,也被用来作为SQL语句调优时运行态内存参数设置的重要依据。一般会以EXPLAIN ANALYZE或EXPLAIN PERFORMANCE的输出作为进一步调优的输入。
  • GLOBAL_CANDIDATE_STATUS GLOBAL_CANDIDATE_STATUS视图显示整个数据库所有实例候选buffer个数、buffer淘汰信息。 表1 GLOBAL_GET_BGWRITER_STATUS字段 名称 类型 描述 node_name text 节点名称。 candidate_slots integer 当前Normal Buffer Pool候选buffer链中页面个数。 get_buf_from_list bigint Normal Buffer Pool,buffer淘汰从候选buffer链中获取页面的次数。 get_buf_clock_sweep bigint Normal Buffer Pool,buffer淘汰从原淘汰方案中获取页面的次数。 seg_candidate_slots integer 当前Segment Buffer Pool候选buffer链中页面个数。 seg_get_buf_from_list bigint Segment Buffer Pool,buffer淘汰从候选buffer链中获取页面的次数。 seg_get_buf_clock_sweep bigint Segment Buffer Pool,buffer淘汰从原淘汰方案中获取页面的次数。 父主题: Utility
  • 注意事项 只有数据库所有者或者被授予了数据库DROP权限的用户有权限执行DROP DATABASE命令,系统管理员默认拥有此权限。 不能对系统默认安装的三个数据库(POSTGRES、TEMPLATE0和TEMPLATE1)执行删除操作,系统做了保护。如果想查看当前服务中有哪几个数据库,可以用gsql的\l命令查看。 如果有用户正在与要删除的数据库连接,则删除操作失败。如果要查看当前存在哪些数据库连接,可以通过视图DV_SESSIONS查看。 不能在事务块中执行DROP DATABASE命令。 确定删除数据库前需要执行“CLEAN CONNECTION TO ALL FORCE FOR DATABASE XXXX;”命令,用于强制停止当前已有的用户连接及后台线程,防止因为有后台线程未完全退出而导致的删库失败问题。此处需要注意,强制停止后台线程可能导致当前数据库数据一致性问题,此命令仅在确定删库阶段执行。 如果执行DROP DATABASE失败,事务回滚,需要再次执行一次DROP DATABASE IF EXISTS。 DROP DATABASE一旦执行将无法撤销,请谨慎使用。
  • java.sql.PreparedStatement java.sql.PreparedStatement是预处理语句接口。 表1 对java.sql.PreparedStatement的支持情况 方法名 返回值类型 支持JDBC 4 clearParameters() void Yes execute() Boolean Yes executeQuery() ResultSet Yes excuteUpdate() int Yes executeLargeUpdate() long No getMetaData() ResultSetMetaData Yes getParameterMetaData() ParameterMetaData Yes setArray(int parameterIndex, Array x) void Yes setAsciiStream(int parameterIndex, InputStream x, int length) void Yes setBinaryStream(int parameterIndex, InputStream x) void Yes setBinaryStream(int parameterIndex, InputStream x, int length) void Yes setBinaryStream(int parameterIndex, InputStream x, long length) void Yes setBlob(int parameterIndex, InputStream inputStream) void Yes setBlob(int parameterIndex, InputStream inputStream, long length) void Yes setBlob(int parameterIndex, Blob x) void Yes setCharacterStream(int parameterIndex, Reader reader) void Yes setCharacterStream(int parameterIndex, Reader reader, int length) void Yes setClob(int parameterIndex, Reader reader) void Yes setClob(int parameterIndex, Reader reader, long length) void Yes setClob(int parameterIndex, Clob x) void Yes setDate(int parameterIndex, Date x, Calendar cal) void Yes setNull(int parameterIndex, int sqlType) void Yes setNull(int parameterIndex, int sqlType, String typeName) void Yes setObject(int parameterIndex, Object x) void Yes setObject(int parameterIndex, Object x, int targetSqlType) void Yes setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength) void Yes setSQLXML(int parameterIndex, SQLXML xmlObject) void Yes setTime(int parameterIndex, Time x) void Yes setTime(int parameterIndex, Time x, Calendar cal) void Yes setTimestamp(int parameterIndex, Timestamp x) void Yes setTimestamp(int parameterIndex, Timestamp x, Calendar cal) void Yes setUnicodeStream(int parameterIndex, InputStream x, int length) void Yes setURL(int parameterIndex, URL x) void Yes setBoolean(int parameterIndex, boolean x) void Yes setBigDecimal(int parameterIndex, BigDecimal x) void Yes setByte(int parameterIndex, byte x) void Yes setBytes(int parameterIndex, byte[] x) void Yes setDate(int parameterIndex, Date x) void Yes setDouble(int parameterIndex, double x) void Yes setFloat(int parameterIndex, float x) void Yes setInt(int parameterIndex, int x) void Yes setLong(int parameterIndex, long x) void Yes setShort(int parameterIndex, short x) void Yes setString(int parameterIndex, String x) void Yes setNString(int parameterIndex, String x) void Yes addBatch() void Yes executeBatch() int[] Yes addBatch()、execute()必须在clearBatch()之后才能执行。 调用executeBatch()方法并不会清除batch。用户必须显式使用clearBatch()清除 。 在添加了一个batch的绑定变量后,用户若想重用这些值(再次添加一个batch),无需再次使用set*()方法 。 以下方法是从java.sql.Statement继承而来:close,execute,executeQuery,executeUpdate,getConnection,getResultSet,getUpdateCount,isClosed,setMaxRows,setFetchSize。 executeLargeUpdate()方法必须在JDBC4.2及以上使用。 父主题: JDBC接口参考
  • PGXC_COMM_RECV_STREAM PGXC_COMM_RECV_STREAM视图展示所有DN上的通信库接收流状态。 表1 PGXC_COMM_RECV_STREAM字段 名称 类型 描述 node_name text 节点名称。 local_tid bigint 使用此通信流的线程ID。 remote_name text 连接对端节点名称。 remote_tid bigint 连接对端线程ID。 idx integer 通信对端DN在本DN内的标识编号。 sid integer 通信流在物理连接中的标识编号。 tcp_sock integer 通信流所使用的tcp通信socket。 state text 通信流当前的状态。 UNKNOWN:表示当前逻辑连接状态未知。 READY:表示逻辑连接已就绪。 RUN:表示逻辑连接发送报文正常。 HOLD:表示逻辑连接发送报文等待中。 CLOSED:表示关闭逻辑连接。 TO_CLOSED:表示将会关闭逻辑连接。 query_id bigint 通信流对应的debug_query_id编号。 pn_id integer 通信流所执行查询的plan_node_id编号。 send_smp integer 通信流所执行查询send端的smpid编号。 recv_smp integer 通信流所执行查询recv端的smpid编号。 recv_bytes bigint 通信流接收的数据总量,单位Byte。 time bigint 通信流当前生命周期使用时长,单位ms。 speed bigint 通信流的平均接收速率,单位Byte/s。 quota bigint 通信流当前的通信配额值,单位Byte。 buff_usize bigint 通信流当前缓存的数据大小,单位Byte。 父主题: 系统视图
  • PG_STAT_ACTIVITY PG_STAT_ACTIVITY视图显示和当前用户查询相关的信息,字段保存的是上一次执行的信息。 表1 PG_STAT_ACTIVITY字段 名称 类型 描述 datid oid 用户会话在后台连接到的数据库OID。 datname name 用户会话在后台连接到的数据库名称。 pid bigint 后台线程ID。 sessionid bigint 会话ID。 usesysid oid 登录该后台的用户OID。 usename name 登录该后台的用户名。 application_name text 连接到该后台的应用名。 client_addr inet 连接到该后台的客户端的IP地址。 如果该字段取值是null,表明是通过服务器机器上UNIX套接字连接客户端或者这是内部线程,如autovacuum。 client_hostname text 客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。 client_port integer 客户端用于与后台通讯的TCP端口号,如果使用UNIX套接字,则为-1。 backend_start timestamp with time zone 该会话开始的时间,即客户端连接服务器的时间。 xact_start timestamp with time zone 当前活跃事务开始的时间,如果没有事务是活跃的,则为null。如果当前查询是首个事务,则这列等同于query_start列。 query_start timestamp with time zone 当前活跃查询开始的时间,如果state的值不是active,则这个值是上一个查询的开始时间。如果是存储过程、函数、PACKAGE,则显示的是第一个查询时间,不会随着存储过程内语句运行而改变。 state_change timestamp with time zone 上次状态改变的时间。 waiting boolean 如果后台当前正等待锁则为true。否则为false。 enqueue text 语句当前排队状态。可能值是: waiting in queue:表示语句在排队中。 空:表示语句正在运行。 state text 该后台当前总体状态。可能值是: active:后台正在执行一个查询。 idle:后台正在等待一个新的客户端命令。 idle in transaction:后台在事务中,但事务中没有语句在执行。 idle in transaction (aborted):后台在事务中,但事务中有语句执行失败。 fastpath function call:后台正在执行一个fast-path函数。 disabled:如果后台禁用track_activities,则报告这个状态。 说明: 普通用户只能查看到自己账户所对应的会话状态。即其他账户的state信息为空。例如以judy用户连接数据库后,在pg_stat_activity中查看到的普通用户joe及初始用户omm的state信息为空: SELECT datname, usename, usesysid, state,pid FROM pg_stat_activity; datname | usename | usesysid | state | pid ----------+---------+----------+--------+----------------- testdb | omm | 10 | | 139968752121616 testdb | omm | 10 | | 139968903116560 db_tpcds | judy | 16398 | active | 139968391403280 testdb | omm | 10 | | 139968643069712 testdb | omm | 10 | | 139968680818448 testdb | joe | 16390 | | 139968563377936 (6 rows) resource_pool name 用户使用的资源池。 query_id bigint 查询语句的ID。 query text 该后台的最新查询。如果state状态是active(活跃的),此字段显示当前正在执行的查询。所有其他情况表示上一个查询。 connection_info text json格式字符串,记录当前连接数据库的驱动类型、驱动版本号、当前驱动的部署路径、进程属主用户等信息。 global_sessionid text 全局的会话ID。 unique_sql_id bigint 语句的unique sql id。 trace_id text 驱动传入的trace id,与应用的一次请求相关联。 父主题: 系统视图
  • Retry管理 Retry是数据库在SQL或存储过程(包含匿名块)执行失败时,在数据库内部进行重新执行的过程,以提高执行成功率和用户体验。数据库内部通过检查发生错误时的错误码及Retry相关配置,决定是否进行重试。 失败时回滚之前执行的语句,并重新执行存储过程进行Retry。 示例: 1 2 3 4 5 6 7 8 openGauss=# CREATE OR REPLACE PROCEDURE retry_basic ( IN x INT) AS BEGIN INSERT INTO t1 (a) VALUES (x); INSERT INTO t1 (a) VALUES (x+1); END; / openGauss=# CALL retry_basic(1); 父主题: 存储过程
  • PGXC_SLICE PGXC_SLICE表是针对range范围分布和list分布创建的系统表,用来记录分布具体信息,当前不支持range interval自动扩展分片,不过在系统表中预留。 表1 PGXC_SLICE字段 名称 类型 描述 relname name 表名或者分片名,通过type区分。 type "char" 't':relname是表名。 's':relname是分片的名字。 strategy "char" 'r':为range分布表。 'l':为list分布表。 后续interval分片会扩展该值。 relid oid 该tuple隶属的分布表oid。 referenceoid oid 所参考分布表的oid,用于slice reference建表语法。 sindex integer 当为list分布表时,表示当前boundary在某个分片内的位置。 interval text[] 预留字段。 transitboundary text[] 预留字段。 transitno integer 预留字段。 nodeoid oid 当relname为分片名时,表示该分片的数据存放在哪个DN上,nodeoid表示这个DN的oid。 boundaries text[] 当relname为分片名时,对应该分片的边界值。 specified boolean 当前分片对应的DN是否是用户在DDL中显示指定的。 sliceorder integer 用户定义分片的顺序。 父主题: 系统表
  • 现象描述 查询与销售部所有员工的信息: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 --建表 CREATE TABLE staffs (staff_id NUMBER(6) NOT NULL, first_name VARCHAR2(20), last_name VARCHAR2(25), employment_id VARCHAR2(10), section_id NUMBER(4), state_name VARCHAR2(10), city VARCHAR2(10)); CREATE TABLE sections(section_id NUMBER(4), place_id NUMBER(4), section_name VARCHAR2(20)); CREATE TABLE states(state_id NUMBER(4)); CREATE TABLE places(place_id NUMBER(4), state_id NUMBER(4)); --优化前查询 EXPLAIN SELECT staff_id,first_name,last_name,employment_id,state_name,city FROM staffs,sections,states,places WHERE sections.section_name='Sales' AND staffs.section_id = sections.section_id AND sections.place_id = places.place_id AND places.state_id = states.state_id ORDER BY staff_id; --创建索引 CREATE INDEX loc_id_pk ON places(place_id); CREATE INDEX state_c_id_pk ON states(state_id); --优化后查询 EXPLAIN SELECT staff_id,first_name,last_name,employment_id,state_name,city FROM staffs,sections,states,places WHERE sections.section_name='Sales' AND staffs.section_id = sections.section_id AND sections.place_id = places.place_id AND places.state_id = states.state_id ORDER BY staff_id;
  • PV_INSTANCE_TIME 提供当前节点下的各种时间消耗信息,主要分为以下类型: DB_TIME: 作业在多核下的有效时间花销。 CPU_TIME:CPU的时间花销。 EXECUTION_TIME:执行器内的时间花销。 PARSE_TIME:SQL解析的时间花销。 PLAN_TIME:生成Plan的时间花销。 REWRITE_TIME:SQL重写的时间花销。 PL_EXECUTION_TIME :PL/SQL(存储过程)执行的时间花销. PL_COMPILATION_TIME:PL/SQL(存储过程)编译的时间花销。 NET_SEND_TIME:网络上的时间花销。 DATA_IO_TIME:I/O上的时间花销。 表1 PV_INSTANCE_TIME字段 名称 类型 描述 stat_id integer 统计编号。 stat_name text 类型名称。 value bigint 时间值(单位:微秒)。 父主题: 系统视图
  • ADM_VIEWS ADM_VIEWS视图显示数据库中视图的信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_VIEWS字段 名称 类型 描述 owner character varying(64) 视图的所有者。 view_name character varying(64) 视图名称。 父主题: 系统视图
  • 示例 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 34 35 36 37 38 39 40 --创建jim和tom用户。 openGauss=# CREATE USER jim PASSWORD '********'; openGauss=# CREATE USER tom PASSWORD '********'; --创建一个GBK编码的数据库music(本地环境的编码格式必须也为GBK)。 openGauss=# CREATE DATABASE music ENCODING 'GBK' template = template0; --创建数据库music2,并指定所有者为jim。 openGauss=# CREATE DATABASE music2 OWNER jim; --用模板template0创建数据库music3,并指定所有者为jim。 openGauss=# CREATE DATABASE music3 OWNER jim TEMPLATE template0; --设置music数据库的连接数为10。 openGauss=# ALTER DATABASE music CONNECTION LIMIT= 10; --将music名称改为music4。 openGauss=# ALTER DATABASE music RENAME TO music4; --将数据库music2的所属者改为tom。 openGauss=# ALTER DATABASE music2 OWNER TO tom; --删除数据库。 openGauss=# DROP DATABASE music2; openGauss=# DROP DATABASE music3; openGauss=# DROP DATABASE music4; --删除jim和tom用户。 openGauss=# DROP USER jim; openGauss=# DROP USER tom; --创建兼容TD格式的数据库。 openGauss=# CREATE DATABASE td_compatible_db DBCOMPATIBILITY 'TD'; --创建兼容ORA格式的数据库。 openGauss=# CREATE DATABASE ora_compatible_db DBCOMPATIBILITY 'ORA'; --删除兼容TD、ORA格式的数据库。 openGauss=# DROP DATABASE td_compatible_db; openGauss=# DROP DATABASE ora_compatible_db;
  • 参数说明 database_name 数据库名称。 取值范围:字符串,要符合标识符命名规范。 OWNER [ = ] user_name 数据库所有者。缺省时,新数据库的所有者是当前用户。 取值范围:已存在的用户名。 TEMPLATE [ = ] template 模板名。即从哪个模板创建新数据库。 GaussDB 采用从模板数据库复制的方式来创建新的数据库。初始时,GaussDB包含两个模板数据库template0、template1,以及一个默认的用户数据库postgres。 取值范围:仅template0。 ENCODING [ = ] 'encoding' 指定数据库使用的字符编码,可以是字符串(如'SQL_ASCII')、整数编号。 不指定时,默认使用模板数据库的编码。模板数据库template0和template1的编码默认与操作系统环境相关。template1不允许修改字符编码,因此若要变更编码,请使用template0创建数据库。 常用取值:GBK、UTF8、Latin1、GB18030等,具体支持的字符集如下。 表1 支持的字符集 名称 描述 语言 是否服务器端? ICU(International Components for Unicode)? 字节/字符 别名 BIG5 Big Five 繁体中文 否 否 1-2 WIN950, Windows950 EUC_CN 扩展UNIX编码-中国 简体中文 是 是 1-3 - EUC_JP 扩展UNIX编码-日本 日文 是 是 1-3 - EUC_JIS_2004 扩展UNIX编码-日本, JIS X 0213 日文 是 否 1-3 - EUC_KR 扩展UNIX编码-韩国 韩文 是 是 1-3 - EUC_TW 扩展UNIX编码-中国台湾 繁体中文 是 是 1-3 - GB18030 国家标准 中文 是 否 1-4 - GBK 扩展国家标准 简体中文 是 否 1-2 WIN936, Windows936 ISO_8859_5 ISO 8859-5, ECMA 113 拉丁语/西里尔语 是 是 1 - ISO_8859_6 ISO 8859-6, ECMA 114 拉丁语/阿拉伯语 是 是 1 - ISO_8859_7 ISO 8859-7, ECMA 118 拉丁语/希腊语 是 是 1 - ISO_8859_8 ISO 8859-8, ECMA 121 拉丁语/希伯来语 是 是 1 - JOHAB JOHAB 韩语 否 否 1-3 - KOI8R KOI8-R 西里尔语(俄语) 是 是 1 KOI8 KOI8U KOI8-U 西里尔语(乌克兰语) 是 是 1 - LATIN1 ISO 8859-1, ECMA 94 西欧 是 是 1 ISO88591 LATIN2 ISO 8859-2, ECMA 94 中欧 是 是 1 ISO88592 LATIN3 ISO 8859-3, ECMA 94 南欧 是 是 1 ISO88593 LATIN4 ISO 8859-4, ECMA 94 北欧 是 是 1 ISO88594 LATIN5 ISO 8859-9, ECMA 128 土耳其语 是 是 1 ISO88599 LATIN6 ISO 8859-10, ECMA 144 日耳曼语 是 是 1 ISO885910 LATIN7 ISO 8859-13 波罗的海 是 是 1 ISO885913 LATIN8 ISO 8859-14 凯尔特语 是 是 1 ISO885914 LATIN9 ISO 8859-15 带欧罗巴和口音的LATIN1 是 是 1 ISO885915 LATIN10 ISO 8859-16, ASRO SR 14111 罗马尼亚语 是 否 1 ISO885916 MULE_INTERNAL Mule内部编码 多语种编辑器 是 否 1-4 - SJIS Shift JIS 日语 否 否 1-2 Mskanji, ShiftJIS, WIN932, Windows932 SHIFT_JIS_2004 Shift JIS, JIS X 0213 日语 否 否 1-2 - SQL_ASCII 未指定(见文本) 任意 是 否 1 - UHC 统一韩语编码 韩语 否 否 1-2 WIN949, Windows949 UTF8 Unicode, 8-bit 所有 是 是 1-4 Unicode WIN866 Windows CP866 西里尔语 是 是 1 ALT WIN874 Windows CP874 泰语 是 否 1 - WIN1250 Windows CP1250 中欧 是 是 1 - WIN1251 Windows CP1251 西里尔语 是 是 1 WIN WIN1252 Windows CP1252 西欧 是 是 1 - WIN1253 Windows CP1253 希腊语 是 是 1 - WIN1254 Windows CP1254 土耳其语 是 是 1 - WIN1255 Windows CP1255 希伯来语 是 是 1 - WIN1256 Windows CP1256 阿拉伯语 是 是 1 - WIN1257 Windows CP1257 波罗的海 是 是 1 - WIN1258 Windows CP1258 越南语 是 是 1 ABC, TCVN, TCVN5712, VSCII 需要注意并非所有的客户端API都支持上面列出的字符集。 SQL_ASCII设置与其他设置表现存下差异。如果服务器字符集是SQL_ASCII,服务器把字节值0-127根据 ASCII标准解释,而字节值128-255则当作无法解析的字符。如果设置为SQL_ASCII,就不会有编码转换。因此,这个设置基本不是用来声明所使用的指定编码, 因为这个声明会忽略编码。在大多数情况下,如果使用了任何非ASCII数据,那么请不要再使用SQL_ASCII进行设置,因为数据库无法转换或者校验非ASCII字符。 指定新的数据库字符集编码必须与所选择的本地环境中(LC_COLLATE和LC_CTYPE)的设置兼容。 当指定的字符编码集为GBK时,部分中文生僻字无法直接作为对象名。这是因为GBK第二个字节的编码范围在0x40-0x7E之间时,字节编码与ASCII字符@A-Z[\]^_`a-z{|}重叠。其中@[\]^_'{|}是数据库中的操作符,直接作为对象名时,会语法报错。例如“侤”字,GBK16进制编码为0x8240,第二个字节为0x40,与ASCII“@”符号编码相同,因此无法直接作为对象名使用。如果确实要使用,可以在创建和访问对象时,通过增加双引号来规避这个问题。 若客户端编码为A,服务器端编码为B,则需要满足数据库中存在编码格式A与B的转换。数据库能够支持的所有的编码格式转换详见系统表PG_CONVERSION(若无法转换,则建议客户端编码与服务器端编码保持一致,客户端编码可通过GUC参数client_encoding修改)。 LC_COLLATE [ = ] 'lc_collate' 指定新数据库使用的字符集。例如,通过lc_collate = 'zh_CN.gbk'设定该参数。 该参数的使用会影响到对字符串的排序顺序(如使用ORDER BY执行,以及在文本列上使用索引的顺序)。默认是使用模板数据库的字符集。 取值范围:操作系统支持的字符集。 LC_CTYPE [ = ] 'lc_ctype' 指定新数据库使用的字符分类。例如,通过lc_ctype = 'zh_CN.gbk'设定该参数。该参数的使用会影响到字符的分类,如大写、小写和数字。默认是使用模板数据库的字符分类。 取值范围:操作系统支持的字符分类。 对于lc_collate和lc_ctype参数的取值范围,取决于本地环境支持的字符集。例如:在Linux操作系统上,可通过locale -a命令获取操作系统支持的字符集列表,在应用lc_collate和lc_ctype参数时可从中选择用户需要的字符集和字符分类。 DBCOMPATIBILITY [ = ] 'compatibilty_type' 指定兼容的数据库的类型,默认兼容MySQL。 取值范围:MYSQL、TD、ORA、PG。分别表示兼容MySQL、TD(Teradata)、Oracle和PostgreSQL。 ORA兼容性下,数据库将空字符串作为NULL处理,数据类型DATE会被替换为TIMESTAMP(0) WITHOUT TIME ZONE。 将字符串转换成整数类型时,如果输入不合法,MYSQL兼容性会将输入转换为0,而其它兼容性则会报错。 PG兼容性下,CHAR和VARCHAR以字符为计数单位,其它兼容性以字节为计数单位。例如,对于UTF-8字符集,CHAR(3)在PG兼容性下能存放3个中文字符,而在其它兼容性下只能存放1个中文字符。 TABLESPACE [ = ] tablespace_name 指定数据库对应的表空间。 取值范围:已存在表空间名。 CONNECTION LIMIT [ = ] connlimit 数据库可以接受的并发连接数。 系统管理员不受此参数的限制。 connlimit每个CN单独统计,集群整体的连接数 = connlimit * 当前正常CN节点个数。 取值范围:[-1, 2^31-1]的整数。默认值为-1,表示没有限制。 有关字符编码的一些限制: 若区域设置为C(或POSIX),则允许所有的编码类型,但是对于其他的区域设置,字符编码必须和区域设置相同。 编码和区域设置必须匹配模板数据库,除了将template0当作模板。 因为其他数据库可能会包含不匹配指定编码的数据,或者可能包含排序顺序受LC_COLLATE和LC_CTYPE影响的索引。复制这些数据会导致在新数据库中的索引失效。template0是不包含任何会受到影响的数据或者索引。
  • 语法格式 1 2 3 4 5 6 7 8 9 CREATE DATABASE database_name [ [ WITH ] { [ OWNER [=] user_name ] | [ TEMPLATE [=] template ] | [ ENCODING [=] 'encoding' ] | [ LC_COLLATE [=] 'lc_collate' ] | [ LC_CTYPE [=] 'lc_ctype' ] | [ DBCOMPATIBILITY [=] 'compatibilty_type' ] | [ TABLESPACE [=] tablespace_name ] | [ CONNECTION LIMIT [=] connlimit ]}[...] ];
  • GUC参数设置 GaussDB提供了六类GUC参数,具体分类和设置方式请参考表1: 表1 GUC参数分类 参数类型 说明 设置方式 INTERNAL 固定参数,在创建数据库的时候确定,用户无法修改,只能通过show语法或者pg_settings视图进行查看。 无 POSTMASTER 数据库服务端参数,在数据库启动时确定,可以通过配置文件指定。 支持表2中的方式一。 SIGHUP 数据库全局参数,可在数据库启动时设置或者在数据库启动后,发送指令重新加载。 支持表2中的方式一、方式二。 BACKEND 会话连接参数。在创建会话连接时指定,连接建立后无法修改。连接断掉后参数失效。内部使用参数,不推荐用户设置。 支持表2中的方式一、方式二。 说明: 设置该参数后,下一次建立会话连接时生效。 SUSET 数据库管理员参数。可在数据库启动时、数据库启动后或者数据库管理员通过SQL进行设置。 支持表2中的方式一、方式二或由数据库管理员通过方式三设置。 USERSET 普通用户参数。可被任何用户在任何时刻设置。 支持表2中的方式一、方式二或方式三设置。 说明: 设置USERSET类型的参数时,ALTER DATABASE设置的参数值优先级高于gs_guc设置。如果想要gs_guc设置的参数值生效,则需要执行“alter database xxx reset xxx”进行重置。 GaussDB提供了三种方式来修改GUC参数,具体操作请参考表2: 表2 GUC参数设置方式 序号 设置方法 方式一 登录管理控制台。 在“实例管理”页面,选择指定的实例,单击实例名称,进入实例基本信息页面。 在左侧导航栏单击“参数修改”,进入参数修改页面,在该页面修改参数。 如果需要修改的参数在管理该控制台无法修改,请提前评估风险后再联系客服进行修改。 重启数据库使参数生效。 说明: 重启数据库集群操作会导致用户执行操作中断,请在操作之前规划好合适的执行窗口。 方式二 登录管理控制台。 在“实例管理”页面,选择指定的实例,单击实例名称,进入实例基本信息页面。 在左侧导航栏单击“参数修改”,进入参数修改页面,在该页面修改参数。 如果需要修改的参数在管理该控制台无法修改,请提前评估风险后再联系客服进行修改。 方式三 修改会话级别的参数。 设置会话级别的参数 1 openGauss=# SET paraname TO value; 修改本次会话中的取值。退出会话后,设置将失效。 使用方式一和方式二设置参数时,若所设参数不属于当前环境,数据库会提示参数不在支持范围内的相关信息。 使用方式三设置参数时,若参数值为int整型,则会将整数前导零过滤掉,例如SET paraname TO 008192与SET paraname TO 8192效果相同。
  • 背景信息 GaussDB提供了多种修改GUC参数的方法,用户可以方便地针对数据库、用户、会话进行设置。 参数名称不区分大小写。 参数取值有整型、浮点型、字符串、布尔型和枚举型五类。 布尔值可以是(on,off)、(true,false)、(yes,no)或者(1,0),且不区分大小写。 枚举类型的取值是在系统表pg_settings的enumvals字段取值定义的。 对于有单位的参数,在设置时请指定单位,否则将使用默认的单位。 参数的默认单位在系统表pg_settings的unit字段定义的。 内存单位有:KB(千字节)、MB(兆字节)和GB(吉字节)。 时间单位:ms(毫秒)、s(秒)、min(分钟)、h(小时)和d(天)。 CN和DN参数可以同时进行设置,其他类型的参数不能同时进行设置。 具体参数说明请参见GUC参数说明。
  • ADM_INDEXES ADM_INDEXES视图显示数据库下所有索引的信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_INDEXES字段 名称 类型 描述 owner character varying(64) 索引的所有者。 index_name character varying(64) 索引名称。 table_name character varying(64) 索引对应的表名。 uniqueness text 表示该索引是否为唯一索引。 partitioned character(3) 表示该索引是否具有分区表的性质。 generated character varying(1) 表示该索引的名称是否为系统生成。 父主题: 系统视图
  • 操作步骤 登录MetaStudio控制台。 单击“声音制作”下方的“开始创建”,进入声音制作页面。 图1 定制声音 在“华为模型”页签,配置声音制作参数。 界面操作详情,如表1所示。 表1 界面操作说明 区域 说明 声音制作方式 选择“基础版声音制作”,音频格式为WAV或MP3文件。需整段录制,每句之间有2~3秒的停顿。音频时长3~10分钟,建议5分钟。 请完善声音信息 输入声音名称,示例:欢快女声。 请制作声音 使用“语料上传”的方式,直接上传一个已录制好的长音频WAV或MP3文件,无需压缩,无需携带文案txt文件。 请选择声音性别 选择声音的性别,示例:女生。 原始输入语言 选择上传语料所使用的语言,示例:中文。 选择声音标签 声音的标签。请根据所选文案样例,选择相应的标签,如下所示: 营销:营销宣传风格文案 新闻:新闻播报风格文案 声音授权 单击“授权书模板”,下载授权书模板后打印。用户手写相关信息后,重新生成签署后的pdf文件,或者拍摄成jpg或png格式的图片后上传。 授权书内容,可参考授权书。 单击“提交制作”。 弹出“资源消耗提示”对话框。提示用户目前声音制作服务剩余数量,本次将消耗1个资源。 如果用户确认无误,单击“确认提交”。声音制作任务提交成功后,界面提示“制作任务提交成功”。 声音制作任务提交成功后,需要等待1天左右的时间审核。任务审核通过后,启动声音制作。 图2 制作任务提交成功 用户可以单击“查看制作任务列表”,查看声音制作任务审核进展。 当状态变更为“系统审核完成”,自动启动算法训练。如果系统存在多个算法训练任务,可能会存在排队和延迟的现象,请耐心等待。 确认声音制作任务已训练完成后,在左侧导航栏中,单击“我的创作”。 选择“声音”,找到已生成的声音,单击声音卡片中的头像,即可试听声音效果。 图3 声音
  • 摘要文件样例 摘要文件均包含前一小时内提交到OBS桶事件文件的名称、事件文件的哈希值以及前一摘要文件的数字签名。同时摘要文件的数字签名存储在摘要文件对象的元数据属性中。 摘要文件样例如下: 样例中的字段说明请参考表1。 { "project_id": "3cfb09080bd944d0b4cdd72ef2685712", "digest_start_time": "2017-03-28T01-09-17Z", "digest_end_time": "2017-03-28T02-09-17Z", "digest_bucket": "bucket", "digest_object": "CloudTraces/cn-north-01/2017/3/28/Digest/EVS/mylog_CloudTrace-Digest_cn-north-01/_2017-03-28T02-09-17Z.json.gz", "digest_signature_algorithm": "SHA256withRSA", "digest_end": false, "previous_digest_bucket": "bucket", "previous_digest_object": "CloudTraces/cn-north-01/2017/3/28/Digest/EVS/mylog_CloudTrace-Digest_cn-north-01/_2017-03-28T01-09-17Z.json.gz", "previous_digest_hash_value": "5e08875de01b894eda5d1399d7b049fe", "previous_digest_hash_algorithm": "MD5", "previous_digest_signature": "7af7cbef4f3c78eab5048030d402810841400cf70eb22f93d4fedd13b13a8208a5dc04ce2f8bd0a4918f933ca3fcb17595ae59386a2dc3e3046fa97688a9815a2d036fa10193534c0ebbecff67221e22ac9cf8b781cbae3a81eaccfc0a2bd1a99081b1e4fe99b19caa771876ba7cce16d002feb4578cd89bc6f1faaca639ab48f3cb56007bcc5e248968f4a17a95b8cdbc7d8bbd7c63630da878cd4d471fc75c60bac5f730d94fefe8fdd2f2fa8accd62dbe100eab7773e7915e91be4474291b9dacea63a8267390bcb4855b5825554ebb07d4a29ce077c364213c575c461d1e9fafa0c29fde1c6de1d5630e015200821b2f3ae91e53cd8591433dd7c0b4c8bc", "previous_digest_end": false, "log_files": [{ "bucket": "bucket", "object": "CloudTraces/cn-north-01/2017/3/28/E CS /mylog_CloudTrace_cn-north-01/_2017-03-28T02-09-17Z_0faa86bc40071242.json.gz", "log_hash_value": "633a8256ae7996e21430c3a0e9897828", "log_hash_algorithm": "MD5" }] }
  • 摘要文件签名 摘要文件的签名信息位于摘要文件对象的两个元数据属性中。每个摘要文件都有如下两个元数据项: meta-signature 摘要文件签名的十六进制编码值。下面是示例签名: 7af7cbef4f3c78eab5048030d402810841400cf70eb22f93d4fedd13b13a8208a5dc04ce2f8bd0a4918f933ca3fcb17595ae59386a2dc3e3046fa97688a9815a2d036fa10193534c0ebbecff67221e22ac9cf8b781cbae3a81eaccfc0a2bd1a99081b1e4fe99b19caa771876ba7cce16d002feb4578cd89bc6f1faaca639ab48f3cb56007bcc5e248968f4a17a95b8cdbc7d8bbd7c63630da878cd4d471fc75c60bac5f730d94fefe8fdd2f2fa8accd62dbe100eab7773e7915e91be4474291b9dacea63a8267390bcb4855b5825554ebb07d4a29ce077c364213c575c461d1e9fafa0c29fde1c6de1d5630e015200821b2f3ae91e53cd8591433dd7c0b4c8bc meta-signature-algorithm 摘要文件签名的算法。下面是示例算法: SHA256withRSA
  • 摘要文件注意事项 启动摘要文件 启动事件文件完整性校验时,将生成一个启动摘要文件。在启动摘要文件中,与前一摘要文件相关的以下字段将为空: previous_digest_bucket previous_digest_object previous_digest_hash_value previous_digest_hash_algorithm previous_digest_signature “空”摘要文件 即使在摘要文件记录的一小时时间段内您的账户中没有事件活动, 云审计 也将提交摘要文件,该摘要文件内容最后的log_files:[]字段将为空。如果需要确定在摘要文件记录的一小时内未提交事件文件,这非常有用。 摘要文件链 摘要文件包含前一摘要文件(如果存在)的数字签名及哈希值,这样可实现一个“链”,在指定时间范围内的摘要文件可以从最近开始往前连续校验。 摘要文件桶 摘要文件提交到和事件文件相同的与跟踪器关联的OBS桶中。 摘要文件存储文件夹 摘要文件存放在与事件文件不同的文件夹中,分开放置便于您执行细粒度安全策略。
  • 摘要文件结构 表1 摘要文件的关键字段 字段名称 是否必选 类型 描述 project_id 是 String 摘要文件记录的事件的用户ID。 digest_start_time 是 String 摘要文件记录的事件文件的起始UTC时间。 digest_end_time 是 String 摘要文件记录的事件文件的结束UTC时间。 digest_bucket 是 String 摘要文件提交到的OBS桶的名称。 digest_object 是 String 摘要文件存储在OBS桶中的位置。 digest_signature_algorithm 是 String 用于对摘要文件进行签名的算法。 digest_end 是 Boolean 该摘要文件是否为摘要结束文件。 previous_digest_bucket 否 String 前一摘要文件提交到的OBS桶的名称。 previous_digest_object 否 String 前一摘要文件存储在OBS桶中的位置。 previous_digest_hash_value 否 String 前一摘要文件的十六进制编码哈希值。 previous_digest_hash_algorithm 否 String 用于对前一摘要文件进行哈希处理的哈希算法。 previous_digest_signature 否 String 前一摘要文件的数字签名。 previous_digest_end 是 Boolean 前一摘要文件是否为摘要结束文件。 log_files 否 Array 摘要文件记录的事件文件列表。 bucket 是 String 事件文件提交到的OBS桶的名称。 object 是 String 事件文件存储在OBS桶中的位置。 log_hash_value 是 String 事件文件的十六进制编码哈希值。 log_hash_algorithm 是 String 用于对事件文件进行哈希处理的哈希算法。
  • 摘要文件简介及存储路径 摘要文件均包含前一小时内提交到OBS桶事件文件的名称、事件文件的哈希值以及前一摘要文件的数字签名。同时摘要文件的数字签名存储在摘要文件对象的元数据属性中。 OBS桶名/CloudTraces/地区标示/时间标示:年/时间标示:月/时间标示:日/trackername/Digest/服务类型目录 例如:User Define/CloudTraces/region/2016/5/19/system/Digest/ECS
  • 使用限制 使用组织(Organizations)云服务的服务控制策略(Service Control Policy,SCP)管理成员账号时,该场景需要配置Action:GetBucketAcl、Action:HeadBucket和Action:ListBucket。其他场景仅需配置Action:HeadBucket和Action:ListBucket。配置服务控制策略的详细操作,请参考如何通过Organizations服务的服务控制策略,限制OBS桶的转储范围?
  • 在运行finetune_ds.sh 时遇到报错 在运行finetune_ds.sh 时遇到报错 pydantic_core._pydantic_core.ValidationError: 1 validation error for DeepSpeedZeroConfig stage3_prefetch_bucket_size Input should be a valid integer, got a number with a fractional part [type=int_from_float, input_value=15099494.4, input_type=float] 将deepspeed配置文件的 stage3_prefetch_bucket_size 参数值从 auto 改成 整数15099494 父主题: 常见错误原因和解决方法
  • 网卡名称错误 当训练开始时提示网卡名称错误。或者通信超时。可以使用ifconfig命令检查网卡名称配置是否正确。 比如,ifconfig看到当前机器IP对应的网卡名称为enp67s0f5,则可以设置环境变量指定该值。 export GLOO_SOCKET_IFNAME=enp67s0f5 # 多机之间使用gloo通信时需要指定网口名称, export TP_SOCKET_IFNAME=enp67s0f5 # 多机之间使用TP通信时需要指定网口名称 export HCCL_SOCKET_IFNAME=enp67s0f5 # 多机之间使用HCCL通信时需要指定网口名称 关于环境变量的解释可以参考:Distributed communication package - torch.distributed — PyTorch 2.3 documentation 父主题: 常见错误原因和解决方法
  • 不同模型推荐的参数与NPU卡数设置 表1 不同模型推荐的参数与NPU卡数设置 模型 Template 模型参数量 训练策略类型 序列长度cutoff_len 梯度累积值 优化工具 (Deepspeed) 规格与节点数 Qwen-VL Qwen-VL 7B full 2048 gradient_accumulation_steps: 16 ZeRO-3 1*节点 & 8*Ascend lora gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 8*Ascend 父主题: 训练脚本说明
  • 查看日志和性能 单击作业详情页面,则可查看训练过程中的详细信息。 图1 查看训练作业 在作业详情页的日志页签,查看最后一个节点的日志,其包含“elapsed time per iteration (ms)”数据,可换算为tokens/s/p的性能数据。 吞吐量(tokens/s/p):global batch size×seq_length/(总卡数×elapsed time per iteration)×1000,其global batch size(GBS)、seq_len(SEQ_LEN)为训练时设置的参数。 loss收敛情况:日志里存在lm loss参数 ,lm loss参数随着训练迭代周期持续性减小,并逐渐趋于稳定平缓。 图2 查看日志和性能 父主题: Qwen-VL模型基于Standard+OBS适配PyTorch NPU训练指导(6.3.912)
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全