华为云用户手册

  • gs_delete_workload_rule(rule_id) 描述:删除一条SQL限流规则。需要具有sysadmin权限的用户才可执行。只支持在CN节点上执行。 参数:rule_id,要更新的限流规则ID,类型为int8。 返回值类型:BOOLEAN 示例: 1 2 3 4 5 gaussdb=# SELECT gs_delete_workload_rule(3); gs_delete_workload_rule ------------------------- t (1 row)
  • gs_add_workload_rule(rule_type, rule_name, databases, start_time, end_time, max_workload, option_val) 描述:创建一条SQL限流规则。需要具有sysadmin权限的用户才可执行。只支持在CN节点上执行。 参数:参数介绍请参见表1 gs_add_workload_rule参数说明。 返回值类型:int8 表1 gs_add_workload_rule参数说明 参数名称 类型 描述 取值范围 rule_type text 限流规则类型,不区分大小写。 “sqlid”:根据Unique SQL ID进行限流。 “select”、“insert”、“update”、“delete”、“merge”:根据查询类型和关键字进行限流。 “resource”:根据系统资源利用率进行实例级别的限流。 rule_name name 限流规则名称,用于检索限流规则。 任意字符串,可以为NULL。 databases name[] 限流规则生效的数据库名称数组,区分大小写。 数据库名列表,必须为已创建的数据库名。可以为NULL,表示所有数据库生效。 目前只有指定rule_type为查询类型时,数据库列表才生效,因为Unique SQL ID本身是与库进行绑定的,其只属于某个库;而根据资源利用率的限流规则是对实例生效的,即对所有库生效。 start_time timestamptz 限流规则生效的开始时间。 可以为NULL,表示从当前时间开始生效。 end_time timestamptz 限流规则生效的结束时间。 可以为NULL或'',表示规则一直生效。 max_workload int8 限流规则设置的最大并发数。 - option_val text[] 限流规则的补充信息。 与rule_type匹配,具体匹配关系如下: “sqlid”:要限流的Unique SQL ID,以及慢SQL管控规则,格式为'{id=1234, time_limit=100, max_execute_time=500, max_iops=1}',其中id值为Unique SQL ID,为必选项,可通过dbe_perf.statement或者pg_stat_activity视图获取。其他选项非必选,其含义参考慢SQL管控规则的Hint。 “select”、“insert”、“update”、“delete”、“merge” :要限流的关键字序列,不区分大小写,可以为NULL。 “resource” :要限流的资源阈值,形式为'{cpu-80, memory-70}'。当前cpu和memory无论设置为多少,都当成"0"处理。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# SELECT gs_add_workload_rule('sqlid', 'rule for one query', '{}', now(), NULL, 20, '{id=32413214}'); gs_add_workload_rule ---------------------- 1 (1 row) gaussdb=# CEEATE database db1; gaussdb=# CREATE database db2; gaussdb=# SELECT gs_add_workload_rule('select', 'rule for select', '{db1, db2}', NULL, NULL, 100, '{tb1, tb2}'); gs_add_workload_rule ---------------------- 2 (1 row) gaussdb=# SELECT gs_add_workload_rule('resource', 'rule for resource', '{}', NULL, NULL, 20, '{cpu-80}'); gs_add_workload_rule ---------------------- 3 (1 row)
  • PG_CONVERSION PG_CONVERSION系统表描述编码转换信息。 表1 PG_CONVERSION字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 conname name - 转换名称(在一个名称空间里是唯一的)。 connamespace oid PG_NAMESPACE.oid 包含这个转换的名称空间的OID。 conowner oid PG_AUTHID.oid 编码转换的属主。 conforencoding integer - 源编码ID。 contoencoding integer - 目的编码ID。 conproc regproc PG_PROC.proname 转换过程。 condefault boolean - 如果这是缺省转换则为真,否则为假。 父主题: 其他系统表
  • 示例 重命名视图。 --创建test_tbl表。 gaussdb=# CREATE TABLE test_tb1(col1 INT,col2 INT); --创建视图。 gaussdb=# CREATE VIEW abc AS SELECT * FROM test_tb1; --设置视图列的默认值为100。 gaussdb=# ALTER VIEW IF EXISTS abc ALTER COLUMN col1 SET DEFAULT 100; --取消视图列的默认值。 gaussdb=# ALTER VIEW IF EXISTS abc ALTER COLUMN col1 DROP DEFAULT; --重命名视图。 gaussdb=# ALTER VIEW IF EXISTS abc RENAME TO test_v1; --查看视图。 gaussdb=# \dv List of relations Schema | Name | Type | Owner | Storage --------+---------+------+-------+--------- public | test_v1 | view | omm | (1 row) 修改视图所有者。 --创建用户。 gaussdb=# CREATE ROLE role_test PASSWORD '********'; --修改视图所有者。 gaussdb=# ALTER VIEW IF EXISTS test_v1 OWNER TO role_test; --查看视图信息。 gaussdb=# \dv List of relations Schema | Name | Type | Owner | Storage --------+---------+------+-----------+--------- public | test_v1 | view | role_test | (1 row) 设置视图所属模式。 --创建模式。 gaussdb=# CREATE SCHEMA tcpds; --修改视图所属模式。 gaussdb=# ALTER VIEW test_v1 SET SCHEMA tcpds; --查看视图信息。 gaussdb=# \dv tcpds.test_v1; List of relations Schema | Name | Type | Owner | Storage --------+---------+------+-----------+--------- tcpds | test_v1 | view | role_test | (1 row) 设置与重置视图选项。 --修改视图选项。 gaussdb=# ALTER VIEW tcpds.test_v1 SET (security_barrier = TRUE); ALTER VIEW --查看。 gaussdb=# \dv tcpds.test_v1 List of relations Schema | Name | Type | Owner | Storage --------+---------+------+-----------+------------------------- tcpds | test_v1 | view | role_test | {security_barrier=true} (1 row) --修改check_option选项。 gaussdb=# ALTER VIEW tcpds.test_v1 SET (check_option = 'LOCAL'); --查看。 gaussdb=# \dv tcpds.test_v1 List of relations Schema | Name | Type | Owner | Storage --------+---------+------+-----------+-------------------------------------------- tcpds | test_v1 | view | role_test | {security_barrier=true,check_option=LOCAL} (1 row) --重置视图选项。 gaussdb=# ALTER VIEW tcpds.test_v1 RESET (security_barrier); ALTER VIEW gaussdb=# ALTER VIEW tcpds.test_v1 RESET (check_option); ALTER VIEW --查看。 gaussdb=# \dv tcpds.test_v1 List of relations Schema | Name | Type | Owner | Storage --------+---------+------+-----------+--------- tcpds | test_v1 | view | role_test | (1 row) --删除视图test_v1。 gaussdb=# DROP VIEW tcpds.test_v1; DROP VIEW --删除表test_tb1。 gaussdb=# DROP TABLE test_tb1; DROP TABLE --删除用户。 gaussdb=# DROP ROLE role_test; DROP ROLE --删除schema。 gaussdb=# DROP SCHEMA tcpds; DROP SCHEMA
  • 参数说明 IF EXISTS 使用这个选项,如果视图不存在时不会产生错误,仅会有一个提示信息。 view_name 视图名称,可以用模式修饰。 取值范围:字符串,已经存在的视图名。 column_name 字段名称。 取值范围:字符串,已经存在的视图的字段名。 SET/DROP DEFAULT 设置或删除一个列的缺省值,该参数暂无实际意义。 new_owner 视图新所有者的用户名称。 new_name 视图的新名称。 new_schema 视图的新模式。 view_option_name [ = view_option_value ] 该子句为视图指定一个可选的参数。 security_barrier:设置视图是否提供行级安全。取值范围为Boolean类型。缺省值为true。 check_option:控制更新视图的行为。支持参数值为CASCADED或LOCAL。该参数取值不可缺省。 expression 常量、函数或SQL表达式。
  • 语法格式 设置视图列的默认值。 1 2 ALTER VIEW [ IF EXISTS ] view_name ALTER [ COLUMN ] column_name SET DEFAULT expression; 取消列视图列的默认值。 1 2 ALTER VIEW [ IF EXISTS ] view_name ALTER [ COLUMN ] column_name DROP DEFAULT; 修改视图的所有者。 1 2 ALTER VIEW [ IF EXISTS ] view_name OWNER TO new_owner; 重命名视图。 1 2 ALTER VIEW [ IF EXISTS ] view_name RENAME TO new_name; 设置视图的所属模式。 1 2 ALTER VIEW [ IF EXISTS ] view_name SET SCHEMA new_schema; 设置视图的选项。 1 2 ALTER VIEW [ IF EXISTS ] view_name SET ( { view_option_name [ = view_option_value ] } [, ... ] ); 重置视图的选项。 1 2 ALTER VIEW [ IF EXISTS ] view_name RESET ( view_option_name [, ... ] );
  • 注意事项 只有视图的所有者或者被授予了视图ALTER权限的用户才可以执行ALTER VIEW命令,三权分立开关关闭时,系统管理员默认拥有该权限。针对所要修改属性的不同,对其还有以下权限约束: 修改视图的模式,当前用户必须是视图的所有者或者系统管理员,且要有新模式的CREATE权限。三权分立开关打开时,系统管理员不能修改视图模式。 修改视图的所有者,当前用户必须是视图的所有者或者系统管理员,且该用户必须是新所有者角色的成员,并且此角色必须有视图所在模式的CREATE权限。三权分立开关打开时,系统管理员不能修改视图的所有者。 禁止修改视图中列的类型。
  • GLOBAL_STAT_XACT_USER_TABLES 显示各节点Schema中用户表的事务状态信息(在CN节点使用,不同节点下相同表名的事务状态信息不进行汇总),如表1所示。 表1 GLOBAL_STAT_XACT_USER_TABLES字段 名称 类型 描述 node_name name 节点名称。 relid oid 表的OID。 schemaname name 该表所在的Schema名。 relname name 表名。 seq_scan bigint 该表发起的顺序扫描数。 seq_tup_read bigint 顺序扫描抓取的活跃行数。 idx_scan bigint 该表发起的索引扫描数。 idx_tup_fetch bigint 索引扫描抓取的活跃行数。 n_tup_ins bigint 插入行数。 n_tup_upd bigint 更新行数。 n_tup_del bigint 删除行数。 n_tup_hot_upd bigint HOT更新行数(即没有更新索引列的行数)。 父主题: Object
  • PV_TOTAL_MEMORY_DETAIL PV_TOTAL_MEMORY_DETAIL视图显示当前数据库节点使用内存的信息,单位为MB。具体字段信息如表1所示。 表1 PV_TOTAL_MEMORY_DETAIL字段 名称 类型 描述 nodename text 节点名称。 memorytype text 内存类型,包括以下几种: max_process_memory: GaussDB 集群实例所占用的内存大小。 process_used_memory:GaussDB进程所使用的内存大小。 max_dynamic_memory:最大动态内存。 dynamic_used_memory:已使用的动态内存。 dynamic_peak_memory:内存的动态峰值。 dynamic_used_shrctx:最大动态共享内存上下文。 dynamic_peak_shrctx:共享内存上下文的动态峰值。 max_backend_memory:使用HA端口执行业务可使用的最大内存上限。 backend_used_memory:使用HA端口执行业务已使用的内存。 max_shared_memory:最大共享内存。 shared_used_memory:已使用的共享内存。 max_sctpcomm_memory:通信库所允许使用的最大内存。 sctpcomm_used_memory:通信库已使用的内存大小。 sctpcomm_peak_memory:通信库的内存峰值。 other_used_memory:其他已使用的内存大小。 llvm_used_memory:当前系统中 Codegen 执行生成的且查询未释放的表达式 IR 所占用内存大小。 memorymbytes integer 内存类型分配内存的大小。 父主题: 其他系统视图
  • PG_PARTITION PG_PARTITION系统表存储数据库内所有分区表(partitioned table)、分区(table partition)和分区索引(index partition)三类对象的信息。分区表索引(partitioned index)的信息不在PG_PARTITION系统表中保存。由于分区表(partitioned table)没有实际的物理文件,所以在pg_partition中不会记录其relfilenode、relpages、reltuples、reltoastrelid、reltoastidxid等信息。 表1 PG_PARTITION字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 relname name 分区表、分区、分区上toast表和分区索引的名称。 parttype "char" 对象类型: 'r':partitioned table 'p':table partition 'x':index partition parentid oid 当对象为分区表或分区时,此字段表示分区表在PG_CLASS中的OID。 当对象为index partition时,此字段表示所属分区表索引(partitioned index)的OID。 rangenum integer 保留字段。 intervalnum integer 保留字段。 partstrategy "char" 分区表分区策略,现在仅支持: 'r':范围分区。 'l':list分区。 'h':hash分区。 'n':无分区策略,该对象不是表分区。 relfilenode oid table partition、index partition、分区上toast表的物理存储位置。 reltablespace oid table partition、index partition、分区上toast表所属表空间的OID。 relpages double precision 统计信息:table partition、index partition的数据页数量。 reltuples double precision 统计信息:table partition、index partition的元组数。 relallvisible integer 统计信息:table partition、index partition的可见数据页数。 reltoastrelid oid table partition所对应toast表的OID。 reltoastidxid oid table partition所对应toast表的索引的OID。 indextblid oid index partition对应table partition的OID。 indisusable boolean 分区索引是否可用。 t(true):表示可用。 f(false):表示不可用。 relfrozenxid xid32 冻结事务ID号。 为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 intspnum integer 间隔分区所属表空间的个数。 partkey int2vector 分区键的列号。 intervaltablespace oidvector 间隔分区所属的表空间,间隔分区以round-robin方式落在这些表空间内。 interval text[] 间隔分区的间隔值。 boundaries text[] 范围分区和间隔分区的上边界。 transit text[] 间隔分区的跳转点。 reloptions text[] 设置partition的存储属性,与pg_class.reloptions的形态一样,用"keyword=value"格式的字符串来表示,目前用于在线扩容的信息搜集。 relfrozenxid64 xid 冻结事务ID号。 relminmxid xid 冻结多事务ID号。 partitionno integer 用于维护分区表中的分区Map结构。 当对象为分区时,此字段表示分区ID,从1开始自增。 当对象为分区表时,此字段表示分区ID的最大值,并使用负值来特殊标记,该值会随着部分分区DDL语法不断递增。 当对象为其他类型时,此字段为空值,没有任何含义。 partitionno是一个永久自增列,可以通过语法ALTER TABLE t_name RESET PARTITION命令重置/回收。 subpartitionno integer 保留字段。 父主题: 分区表
  • 分区查询 查询指定分区的数据。 以下示例作为一个典型的分区查询,展示在指定的表中对信息进行分区操作,并根据指定分区进行查询的操作。 --创建范围分区表。 gaussdb=# CREATE TABLE test_range1( id INT, info VARCHAR(20) ) PARTITION BY RANGE (id) ( PARTITION p1 VALUES LESS THAN (200), PARTITION p2 VALUES LESS THAN (400), PARTITION p3 VALUES LESS THAN (600), PARTITION p4 VALUES LESS THAN (800), PARTITION pmax VALUES LESS THAN (MAXVALUE) ); --插入1000数据。 gaussdb=# INSERT INTO test_range1 VALUES(GENERATE_SERIES(1,1000),'abcd'); --查询p1分区有多少条数据。 gaussdb=# SELECT COUNT(*) FROM test_range1 PARTITION (p1); count ------- 199 (1 row) --删除。 gaussdb=# DROP TABLE test_range1; 父主题: SELECT
  • ai_watchdog_parameters 表1 ai_watchdog_parameters参数 参数 类型 描述 name text 参数名称,包括如下常用参数: enable_ai_watchdog:是否开启本功能。 ai_watchdog_max_consuming_time_ms:最大耗时。 ai_watchdog_used_memory_kb:本功能当前内存使用。 ai_watchdog_detection_times:已检测次数。 enable_self_healing:发现问题后是否可以自愈。 oom_detected_times:已检测到的OOM次数。 hang_detected_times:已检测到的hang次数。 enable_oom_detection:是否自动启动了OOM探测功能。 in_wait_time:是否处于等待时间。 other_used_memory_has_risk:其他内存使用部分是否存在风险。 shared_used_mem_has_risk:共享内存上下文使用是否存在风险。 dynamic_used_shrctx_has_risk:动态内存使用是存在风险。 value text 参数值。 父主题: AI Watchdog
  • MY_IND_SUBPARTITIONS MY_IND_SUBPARTITIONS描述了当前用户拥有的二级分区表Local索引的索引分区信息(不包含分区表全局索引)。所有用户都可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。分布式暂不支持二级分区,该表字段目前全置NULL。 表1 MY_IND_SUBPARTITIONS字段 名称 类型 描述 index_owner character varying(128) 暂不支持,值为NULL。 index_name character varying(128) 暂不支持,值为NULL。 partition_name character varying(128) 暂不支持,值为NULL。 subpartition_name character varying(128) 暂不支持,值为NULL。 high_value text 暂不支持,值为NULL。 high_value_length numeric 暂不支持,值为NULL。 partition_position numeric 暂不支持,值为NULL。 subpartition_position numeric 暂不支持,值为NULL。 status character varying(8) 暂不支持,值为NULL。 tablespace_name character varying(30) 暂不支持,值为NULL。 pct_free numeric 暂不支持,值为NULL。 ini_trans numeric 暂不支持,值为NULL。 max_trans numeric 暂不支持,值为NULL。 initial_extent numeric 暂不支持,值为NULL。 next_extent numeric 暂不支持,值为NULL。 min_extent numeric 暂不支持,值为NULL。 max_extent numeric 暂不支持,值为NULL。 max_size numeric 暂不支持,值为NULL。 pct_increase numeric 暂不支持,值为NULL。 freelists numeric 暂不支持,值为NULL。 freelist_groups numeric 暂不支持,值为NULL。 logging character varying(7) 暂不支持,值为NULL。 compression character varying(13) 暂不支持,值为NULL。 blevel numeric 暂不支持,值为NULL。 leaf_blocks numeric 暂不支持,值为NULL。 distinct_keys numeric 暂不支持,值为NULL。 avg_leaf_blocks_per_key numeric 暂不支持,值为NULL。 avg_data_blocks_per_key numeric 暂不支持,值为NULL。 clustering_factor numeric 暂不支持,值为NULL。 num_rows numeric 暂不支持,值为NULL。 sample_size numeric 暂不支持,值为NULL。 last_analyzed date 暂不支持,值为NULL。 buffer_pool character varying(7) 暂不支持,值为NULL。 flash_cache character varying(7) 暂不支持,值为NULL。 cell_flash_cache character varying(7) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 global_stats character varying(3) 暂不支持,值为NULL。 interval character varying(3) 暂不支持,值为NULL。 segment_created character varying(3) 暂不支持,值为NULL。 domidx_opstatus character varying(6) 暂不支持,值为NULL。 parameters character varying(1000) 暂不支持,值为NULL。 父主题: 分区表
  • _PG_FOREIGN_SERVERS 显示外部服务器的信息,如表1所示。该视图只有sysadmin权限可以查看。 表1 _PG_FOREIGN_SERVERS字段 名称 类型 描述 oid oid 外部服务器的oid。 srvoptions text[] 外部服务器指定选项,使用“keyword=value”格式的字符串。 foreign_server_catalog information_schema.sql_identifier 外部服务器所在database名称(永远为当前数据库)。 foreign_server_name information_schema.sql_identifier 外部服务器名称。 foreign_data_wrapper_catalog information_schema.sql_identifier 外部数据封装器所在database名称(永远为当前数据库)。 foreign_data_wrapper_name information_schema.sql_identifier 外部数据封装器名称。 foreign_server_type information_schema.character_data 外部服务器的类型。 foreign_server_version information_schema.character_data 外部服务器的版本。 authorization_identifier information_schema.sql_identifier 外部服务器的所有者的角色名称。 父主题: Information Schema
  • 示例 -- 创建adt1策略。 gaussdb=# CREATE AUDIT POLICY adt1 PRIVILEGES CREATE; CREATE AUDIT POLICY --删除审计策略adt1。 gaussdb=# DROP AUDIT POLICY adt1; DROP AUDIT POLICY --删除一个不存在的审计策略adt0,提示删除失败,该审计策略不存在。 gaussdb=# DROP AUDIT POLICY adt0; ERROR: adt0 policy does not exist, drop failed
  • 示例 -- 环境准备。 gaussdb=# CREATE DATABASE test_load WITH DBCOMPATIBILITY = 'MYSQL'; gaussdb=# \c test_load gaussdb=# SET b_format_version='5.7'; gaussdb=# SET b_format_dev_version='s2'; -- 准备待导入的文件。 gaussdb=# CREATE TABLE load_data_tmp1(a int, b int); gaussdb=# INSERT INTO load_data_tmp1 VALUES(1,1),(2,2),(3,3); gaussdb=# \copy load_data_tmp1 to '/home/omm/load1.csv'; gaussdb=# CREATE TABLE load_data_tmp2(a int, b int); gaussdb=# INSERT INTO load_data_tmp2 VALUES(1,2); gaussdb=# \copy load_data_tmp2 to '/home/omm/load2.csv'; gaussdb=# CREATE TABLE load_data_tmp3(a int, b int); gaussdb=# INSERT INTO load_data_tmp3 VALUES(4,4),(5,5); gaussdb=# \copy load_data_tmp3 to '/home/omm/load3.csv'; gaussdb=# CREATE TABLE load_data_tmp4(a char(50)); gaussdb=# INSERT INTO load_data_tmp4 VALUES('"load test quote"'), ('\'load test single_quote\''); gaussdb=# \copy load_data_tmp4 to '/home/omm/load4.csv'; -- 创建表。 gaussdb=# CREATE TABLE load_data_tbl1(load_col1 INT UNIQUE, load_col2 INT, load_col3 CHAR(10)); --向表中插入一条数据。 gaussdb=# INSERT INTO load_data_tbl1 VALUES(0,0,'load0'); -- 从文件/home/omm/load1.csv中复制数据到load_data_tbl表,指定列名,设置.load_col3列值统一为"load"。 gaussdb=# LOAD DATA INFILE '/home/omm/load1.csv' INTO TABLE load_data_tbl1(load_col1, load_col2) SET load_col3 = 'load'; --后面导入数据load_col3列值均为'load' gaussdb=# SELECT * FROM load_data_tbl1 ORDER BY load_col1; load_col1 | load_col2 | load_col3 -----------+-----------+----------- 0 | 0 | load0 1 | 1 | load 2 | 2 | load 3 | 3 | load (4 rows) -- 从文件/home/omm/load2.csv中复制数据到load_data_tbl表,指定IGNORE忽略冲突。 gaussdb=# LOAD DATA INFILE '/home/omm/load2.csv' IGNORE INTO TABLE load_data_tbl1; -- 表load_data_tbl1中数据不变,冲突数据跳过。 gaussdb=# SELECT * FROM load_data_tbl1 ORDER BY load_col1; load_col1 | load_col2 | load_col3 -----------+-----------+----------- 0 | 0 | load0 1 | 1 | load 2 | 2 | load 3 | 3 | load (4 rows) -- 创建分区表。 gaussdb=# CREATE TABLE load_data_tbl2 ( load_col_col1 INT, load_col_col2 INT ) PARTITION BY RANGE (load_col_col2) ( PARTITION load_p1 VALUES LESS THAN(3), PARTITION load_p2 VALUES LESS THAN(9), PARTITION load_p3 VALUES LESS THAN(MAXVALUE) ); -- 从文件/home/omm/load3.csv中复制数据到load_data_tbl2表,指定PARTITION。 gaussdb=# LOAD DATA INFILE '/home/omm/load3.csv' INTO TABLE load_data_tbl2 PARTITION (load_p2); --数据导入到load_data_tbl2表中指定分区 gaussdb=# SELECT * FROM load_data_tbl2; load_col_col1 | load_col_col2 ---------------+--------------- 4 | 4 5 | 5 (2 rows) -- 创建表。 gaussdb=# CREATE TABLE load_data_tbl3(load_col_col1 CHAR(30)); -- 从文件/home/omm/load4.csv中复制数据到load_data_tbl3表,指定FIELDS ENCLOSED BY。 gaussdb=# LOAD DATA INFILE '/home/omm/load4.csv' INTO TABLE load_data_tbl3 FIELDS ENCLOSED BY '"'; -- 数据"load test quote"双引号被去掉,'load test single_quote'单引号保留。 gaussdb=# select * from load_data_tbl3; load_col_col1 -------------------------------- load test quote 'load test single_quote' (2 rows) -- 删除表。 gaussdb=# DROP TABLE load_data_tmp1; gaussdb=# DROP TABLE load_data_tmp2; gaussdb=# DROP TABLE load_data_tmp3; gaussdb=# DROP TABLE load_data_tmp4; gaussdb=# DROP TABLE load_data_tbl1; gaussdb=# DROP TABLE load_data_tbl2; gaussdb=# DROP TABLE load_data_tbl3;
  • 语法格式 LOAD DATA [LOCAL] INFILE 'file_name' [REPLACE | IGNORE] INTO TABLE tbl_name [PARTITION (partition_name [, partition_name] ...)] [CHARACTER SET charset_name] [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char'] ] [LINES [STARTING BY 'string'] [TERMINATED BY 'string'] ] [IGNORE number {LINES | ROWS}] [(col_name_or_user_var [, col_name_or_user_var] ...)] [SET col_name={expr | DEFAULT} [, col_name={expr | DEFAULT}] ...]
  • 参数说明 LOCAL 指定导入文件的位置。 不指定LOCAL时,若file_name为相对路径,则默认导入路径为数据目录。 若指定LOCAL参数则需要指定file_name为绝对路径,当指定为相对路径时默认导入路径为数据库二进制所在路径,即$GAUSSHOME/bin/。 当导入数据与表中数据冲突或文件中字段数小于指定表中字段数时,指定LOCAL与指定IGNORE作用一致。 REPLACE | IGNORE 当导入数据与表中原有数据冲突时,若指定REPLACE,则替换冲突行数据;若指定IGNORE,则跳过冲突行数据,继续导入。若数据冲突但不指定REPLACE、IGNORE或LOCAL中任意一个,则终止导入并报错。 若文件字段数小于指定表列数,指定LOCAL或IGNORE参数会为剩余列赋默认值。不指定IGNORE或LOCAL参数会报错。 PARTITION 当导入表为分区表时,此参数用来指定分区。若数据与指定分区范围不一致,则报错。 CHARACTER SET 指定数据文件的编码格式名称,缺省为当前客户端编码格式。 FIELDS | COLUMNS TERMINATED BY 指定两列之间分隔符,缺省为“\t”。 指定换行符不能与分隔符相同。 [OPTIONALLY] ENCLOSED BY 指定引号字符,缺省为''。 OPTIONALLY参数为可选参数,无实际作用。 引号符仅支持单字符,不支持字符串。 ESCAPED BY 指定转义符,缺省为“\”。 转义字符仅支持单字符,不支持字符串。 LINES STARTING BY 指定导入数据文件起始字段样式。 TERMINATED BY 指定导入数据文件换行符样式。 IGNORE 指定数据导入时,跳过数据文件的前number行。 col_name_or_user_var 可选的待复制字段列表。 取值范围:如果没有声明字段列表,将使用所有字段。 指定列参数不支持重复指定列。 LOAD DATA语法指定列时,col_name_or_user_var仅支持指定为表中存在列,不支持指定为用户变量。 SET 指定列值,可以指定为表达式或DEFAULT。 表达式中不支持列名。 若表达式结果类型与被赋值列对应类型之间不存在隐式转换函数则报错。
  • 注意事项 LOAD DATA语法仅在MYSQL兼容模式(sql_compatibility = 'MYSQL')下支持。 LOAD DATA语法仅在开启b_format_version='5.7'和b_format_dev_version='s2'参数后与MYSQL功能一致。 LOAD DATA语法权限相关GUC参数与COPY FROM语法注意事项一致。 LOAD DATA语法需要拥有表的INSERT和DELETE权限。 执行LOAD DATA语法写入表中的数据若无法转换为表中数据类型格式时,将导致导入失败。 LOAD DATA只能用于表,不能用于视图。
  • ADM_PART_COL_STATIS TICS ADM_PART_COL_STATISTI CS 视图显示数据库中所有表分区的列统计信息和直方图信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_PART_COL_STATISTICS字段 名称 类型 描述 owner character varying(128) 分区表的所有者。 table_name character varying(128) 表名。 partition_name character varying(128) 表分区名称。 column_name character varying(4000) 列名。 num_distinct numeric 暂不支持,值为NULL。 low_value raw 暂不支持,值为NULL。 high_value raw 暂不支持,值为NULL。 density numeric 暂不支持,值为NULL。 num_nulls numeric 暂不支持,值为NULL。 num_buckets numeric 暂不支持,值为NULL。 sample_size numeric 暂不支持,值为NULL。 last_analyzed date 暂不支持,值为NULL。 global_stats character varying(3) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 notes character varying(63) 暂不支持,值为NULL。 avg_col_len numeric 暂不支持,值为NULL。 histogram character varying(15) 暂不支持,值为NULL。 schema character varying(64) 列所属的名称空间的名称。 父主题: 分区表
  • GLOBAL_TRANSACTIONS_RUNNING_XA CTS 显示集群中各个CN和DN节点运行事务的信息,如表1所示。 表1 GLOBAL_TRANSACTIONS_RUNNING_XACTS字段 名称 类型 描述 handle integer 事务在GTM对应的句柄。 gxid xid 事务id号。 state tinyint 事务状态(3:prepared或者0:starting)。 node text 节点名称。 xmin xid 节点上当前数据涉及的最小事务号xmin。 vacuum boolean 标志当前事务是否是lazy vacuum事务(lazy vacuum是一种vacuum机制,在需要时进行vacuum)。 true:表示是。 false:表示否。 timeline bigint 标志数据库重启次数。 prepare_xid xid 处于prepared状态的事务的id号,若不在prepared状态,值为0。 pid bigint 事务对应的线程id。 next_xid xid CN传给DN的事务id号。 dbid oid 事务对应的数据库id。 父主题: Transaction
  • 变量声明 变量声明语法如图1所示。 图1 declare_variable::= 对以上语法格式的解释如下: variable_name,为变量名。 type,为变量类型。 value,是该变量的初始值(如果不给定初始值,则初始为NULL)。value也可以是表达式。 示例 1 2 3 4 5 6 gaussdb=# DECLARE emp_id INTEGER := 7788; --定义变量并赋值 BEGIN emp_id := 5*7784; --变量赋值 END; /
  • 变量作用域 变量的作用域表示变量在代码块中的可访问性和可用性。只有在它的作用域内,变量才有效。 变量必须在declare部分声明,即必须建立BEGIN-END块。块结构也强制变量必须先声明后使用,即变量在过程内有不同作用域、不同的生存期。 同一变量可以在不同的作用域内定义多次,内层的定义会覆盖外层的定义。 在外部块定义的变量,可以在嵌套块中使用。但外部块不能访问嵌套块中的变量。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 gaussdb=# DECLARE emp_id INTEGER :=7788; --定义变量并赋值 outer_var INTEGER :=6688; --定义变量并赋值 BEGIN DECLARE emp_id INTEGER :=7799; --定义变量并赋值 inner_var INTEGER :=6688; --定义变量并赋值 BEGIN dbe_output.print_line('inner emp_id ='||emp_id); --显示值为7799 dbe_output.print_line('outer_var ='||outer_var); --引用外部块的变量 END; dbe_output.print_line('outer emp_id ='||emp_id); --显示值为7788 END; /
  • PV_FILE_STAT PV_FILE_STAT视图通过对数据文件I/O的统计,反映数据的I/O性能,用以发现I/O操作异常等性能问题。具体字段信息如表1所示。 表1 PV_FILE_STAT字段 名称 类型 描述 filenum oid 文件标识。 dbid oid 数据库标识。 spcid oid 表空间标识。 phyrds bigint 读物理文件的数目。 phywrts bigint 写物理文件的数目。 phyblkrd bigint 读物理文件块的数目。 phyblkwrt bigint 写物理文件块的数目。 readtim bigint 读文件的总时长,单位微秒。 writetim bigint 写文件的总时长,单位微秒。 avgiotim bigint 读写文件的平均时长,单位微秒。 lstiotim bigint 最后一次读文件时长,单位微秒。 miniotim bigint 读写文件的最小时长,单位微秒。 maxiowtm bigint 读写文件的最大时长,单位微秒。 父主题: 其他系统视图
  • SUMMARY_STATIO_USER_INDEXES SUMMARY_STATIO_USER_INDEXES视图显示集群命名空间中所有用户关系表上索引的I/O状态汇总信息,如表1所示。 表1 SUMMARY_STATIO_USER_INDEXES字段 名称 类型 描述 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read numeric 从索引中读取的磁盘块数。 idx_blks_hit numeric 索引命中缓存数。 父主题: Cache/IO
  • MY_ROLE_PRIVS MY_ROLE_PRIVS视图显示授予当前用户角色(包括public角色)的权限的信息。默认所有用户都可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 MY_ROLE_PRIVS字段 名称 类型 描述 grantee character varying(128) 被授予权限的用户或角色名称。 granted_role character varying(128) 被授予的角色。 admin_option character varying(3) 该授权是否包含ADMIN选项。 YES:包含ADMIN选项。 NO:不包含ADMIN选项。 delegate_option character varying(3) 暂不支持,值为NULL。 default_role character varying(3) 暂不支持,值为NULL。 os_granted character varying(3) 暂不支持,值为NULL。 common character varying(3) 暂不支持,值为NULL。 inherited character varying(3) 暂不支持,值为NULL。 父主题: 用户和权限管理
  • 示例 --创建角色role2。 gaussdb=# CREATE ROLE role2 IDENTIFIED BY '********'; --根据名称创建schema。 gaussdb=# CREATE SCHEMA schema1 AUTHORIZATION role2; CREATE SCHEMA --删除schema。 gaussdb=# DROP SCHEMA schema1 CASCADE; --删除用户。 gaussdb=# DROP USER role2 CASCADE;
  • 参数说明 IF EXISTS 如果指定的模式不存在,发出一个notice而不是抛出一个错误。 schema_name 模式的名称。 取值范围:已存在模式名。 CASCADE | RESTRICT CASCADE:自动删除包含在模式中的对象。 RESTRICT:如果模式包含任何对象,则删除失败(缺省行为)。 不要随意删除pg_temp或pg_toast_temp开头的模式,这些模式是系统内部使用的,如果删除,可能导致无法预知的结果。 无法删除当前模式。如果要删除当前模式,须切换到其他模式下。
  • V$LOCK V$LOCK视图显示各打开事务所持有的锁信息。默认只有系统管理员权限才可以访问此系统视图,普通用户若要访问需要得到授权。该视图同时存在于PG_CATALOG和SYS Schema下。具体字段信息如表1所示。 表1 V$LOCK字段 名称 类型 描述 addr raw 暂不支持,值为NULL。 kaddr raw 暂不支持,值为NULL。 sid numeric 拥有锁的sessionid。 type character varying(2) TM或TX。 TM对应pg_locks中的relation锁。 TX对应其余锁。 id1 numeric TM锁:对象号对应relationId。 TX锁:暂不支持,值为0。 id2 numeric TM锁:默认为0。 TX锁:暂不支持,值为0。 lmode numeric 具体信息如表2所示。 request numeric 具体信息如表2所示。 ctime numeric 暂不支持,值为NULL。 block numeric 是否被其余session阻塞,1表示阻塞,0表示未阻塞。 con_id numeric 暂不支持,值为NULL。 blocksid bigint 当前线程阻塞的另一个线程ID。 表2 锁模式 级别 GaussDB - NULL 0 INVALID 1 AccessShare 2 RowShare 3 RowExclusive 4 ShareUpdateExclusive 5 Share 6 ShareRowExclusive 7 Exclusive 8 AccessExclusive 父主题: 其他系统视图
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 --开启一个事务。 gaussdb=# START TRANSACTION; --设置事务的隔离级别为READ COMMITTED,访问模式为READ ONLY。 gaussdb=# SET LOCAL TRANSACTION ISOLATION LEVEL READ COMMITTED READ ONLY; --查看当前事务的隔离级别。 gaussdb=# SHOW transaction_isolation; transaction_isolation ----------------------- read committed (1 row) --提交事务。 gaussdb=# COMMIT;
共100000条
提示

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