华为云用户手册

  • 创建外表 创建外表的语法格式如下,详细的描述请参见CREATE FOREIGN TABLE (SQL on Hadoop or OBS)。 1 2 3 4 5 6 7 8 9 10 CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [ { column_name type_name [ { [CONSTRAINT constraint_name] NULL | [CONSTRAINT constraint_name] NOT NULL | column_constraint [...]} ] | table_constraint [, ...]} [, ...] ] ) SERVER dfs_server OPTIONS ( { option_name ' value ' } [, ...] ) DISTRIBUTE BY {ROUNDROBIN | REPLICATION} [ PARTITION BY ( column_name ) [ AUTOMAPPED ] ] ; 例如,创建一个名为"product_info_ext_obs"的外表,对语法中的参数按如下描述进行设置: table_name 外表的表名。 表字段定义 column_name:外表中的字段名。 type_name:字段的数据类型。 多个字段用“,”隔开。 外表的字段个数和字段类型,需要与OBS上保存的数据完全一致。 SERVER dfs_server 外表的外部服务器名称,这个server必须存在。外表通过设置外部服务器连接OBS读取数据。 此处应填写为参照创建外部服务器创建的外部服务器名称。 OPTIONS参数 用于指定外表数据的各类参数,关键参数如下所示。 “format”:表示对应的OBS服务上的文件格式支持"orc"、"parquet"、"carbondata"、"text"、"csv"、"json"。 “foldername”:必选参数。数据源文件的OBS路径,此处仅需要填写“/桶名/文件夹目录层级/”。 可以先通过OBS上的数据准备中的2获取数据源文件的完整的OBS路径,该路径为OBS服务的终端节点(Endpoint)。 “totalrows”:可选参数。该参数不是导入的总行数。由于OBS上文件可能很多,执行analyze可能会很慢,通过“totalrows”参数,让用户来设置一个预估的值,使优化器能通过这个值做大小表的估计。一般预估值与实际值的数量级差不多时,查询效率较高。 “encoding”:外表中数据源文件的编码格式名称,缺省为utf8。对于OBS外表此参数为必选项。 DISTRIBUTE BY: 这个子句是必须的,对于OBS外表,当前只支持ROUNDROBIN分布方式。 表示外表在从数据源读取数据时, GaussDB (DWS)集群每一个节点随机读取一部分数据,并组成完整数据。 语法中的其他参数 其他参数均为可选参数,用户可以根据自己的需求进行设置,在本例中不需要设置。 根据以上信息,创建外表命令如下所示: 建立不包含分区列的OBS外表,表关联的外部服务器为obs_server,表对应的OBS服务上的文件格式为‘orc’,OBS上的数据存储路径为'/mybucket/data/'。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 DROP FOREIGN TABLE IF EXISTS product_info_ext_obs; CREATE FOREIGN TABLE product_info_ext_obs ( product_price integer not null, product_id char(30) not null, product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt integer , product_comment_time date , product_comment_num integer , product_comment_content varchar(200) ) SERVER obs_server OPTIONS ( format 'orc', foldername '/mybucket/demo.db/product_info_orc/', encoding 'utf8', totalrows '10' ) DISTRIBUTE BY ROUNDROBIN; 建立包含分区列的OBS外表,product_info_ext_obs外表使用product_manufacturer字段作为分区键,obs/mybucket/demo.db/product_info_orc/路径下有如下分区目录: 分区目录1:product_manufacturer=10001 分区目录2:product_manufacturer=10010 分区目录3:product_manufacturer=10086 ... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 DROP FOREIGN TABLE IF EXISTS product_info_ext_obs; CREATE FOREIGN TABLE product_info_ext_obs ( product_price integer not null, product_id char(30) not null, product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt integer , product_comment_time date , product_comment_num integer , product_comment_content varchar(200) , product_manufacturer integer ) SERVER obs_server OPTIONS ( format 'orc', foldername '/mybucket/demo.db/product_info_orc/', encoding 'utf8', totalrows '10' ) DISTRIBUTE BY ROUNDROBIN PARTITION BY (product_manufacturer) AUTOMAPPED;
  • session_replication_role 参数说明:控制当前会话与复制相关的触发器和规则的行为。 参数类型:USERSET 设置此参数会丢弃之前所有缓存的执行计划。 取值范围:枚举型 origin表示从当前会话中复制插入、删除、更新等操作。 replica表示从其他地方复制插入、删除、更新等操作到当前会话。 local表示函数执行复制时会检测当前登录数据库的角色并采取相应的操作。 默认值:origin
  • vacuum_freeze_table_age 参数说明:指定VACUUM对全表的扫描冻结元组的时间。如果表的pg_class.relfrozenxid字段的值已经达到了参数指定的时间,VACUUM对全表进行扫描。 参数类型:USERSET 取值范围:整型,0~576 460 752 303 423 487 尽管随时可以将此参数设为零到20亿之间的值,但是,VACUUM将默认其有效值范围限制在autovacuum_freeze_max_age的95%以内。定期的手动VACUUM可以在对此表的反重叠自动清理启动之前运行。 默认值:15000000000
  • gin_pending_list_limit 参数说明:设置当GIN索引启用fastupdate时,pending list容量的最大值。当pending list的容量大于设置值时,会把pending list中数据批量移动到GIN索引数据结构中以进行清理。单个GIN索引可通过更改索引存储参数覆盖此设置值。 参数类型:USERSET 取值范围:整型,64~INT_MAX,单位为KB。 默认值:4MB
  • vacuum_freeze_min_age 参数说明:指定VACUUM在扫描一个表时用于判断是否用FrozenXID替换事务ID的中断寿命(在同一个事务中)。 参数类型:USERSET 取值范围:整型,0~576 460 752 303 423 487 尽管随时可以将此参数设为0到10亿之间的任意值,但是,VACUUM将默认其有效值范围限制在autovacuum_freeze_max_age的50%以内。 默认值:5000000000
  • default_transaction_isolation 参数说明:设置默认的事务隔离级别。 参数类型:USERSET 取值范围:枚举型 read committed:读已提交隔离级别,只能读到已经提交的数据,而不会读到未提交的数据。这是缺省值。 read uncommitted:读未提交隔离级别,GaussDB(DWS)不支持read uncommitted,如果设置了read uncommitted,实际上使用的是read committed。 repeatable read:可重复读隔离级别,仅仅能看到事务开始之前提交的数据,不能看到未提交的数据,以及在事务执行期间由其它并发事务提交的修改。 serializable:事务可序列化,GaussDB(DWS)不支持SERIALIZABLE,如果设置了serializable,实际上使用的是repeatable read。 默认值:read committed
  • default_tablespace 参数说明:当CREATE命令没有明确声明表空间时,所创建对象(表和索引等)的缺省表空间。 值是一个表空间的名字或者一个表示使用当前数据库缺省表空间的空字符串。若指定的是一个非默认表空间,用户必须具有它的CREATE权限,否则尝试创建会失败。 临时表不使用此参数,可以用temp_tablespaces代替。 创建数据库时不使用此参数。默认情况下,一个新的数据库从模板数据库继承表空间配置。 参数类型:USERSET 取值范围:字符串,其中空表示使用默认表空间。 默认值:空
  • default_colversion 参数说明:设置当前默认创建列存表的存储格式版本。 参数类型:SIGHUP 取值范围:枚举类型 1.0表示列存表的每列以一个单独的文件进行存储,文件名以relfilenode.C1.0、relfilenode.C2.0、relfilenode.C3.0等命名。 2.0表示列存表的每列合并存储在一个文件中,文件名以relfilenode.C1.0命名。 默认值:2.0
  • check_function_bodies 参数说明:设置是否在CREATE FUNCTION执行过程中进行函数体字符串的合法性验证。为了避免产生问题(比如避免从转储中恢复函数定义时向前引用的问题),偶尔会禁用验证。 参数类型:USERSET 取值范围:布尔型 on表示在CREATE FUNCTION执行过程中进行函数体字符串的合法性验证。 off表示在CREATE FUNCTION执行过程中不进行函数体字符串的合法性验证。 默认值:on
  • temp_tablespaces 参数说明:当一个CREATE命令没有明确指定一个表空间时,temp_tablespaces指定了创建临时对象(临时表和临时表的索引)所在的表空间。在这些表空间中创建临时文件用来做大型数据的排序工作。 其值是一系列表空间名的列表。如果列表中有多个表空间时,每次临时对象的创建,GaussDB(DWS)会在列表中随机选择一个表空间;如果在事务中,连续创建的临时对象被放置在列表里连续的表空间中。如果选择的列表中的元素是一个空串,GaussDB(DWS)将自动将当前的数据库设为默认的表空间。 参数类型:USERSET 取值范围:字符串。空字符串表示所有的临时对象仅在当前数据库默认的表空间中创建,请参见default_tablespace。 默认值:空
  • search_path 参数说明:当一个被引用对象没有指定模式时,此参数设置模式搜索顺序。它的值由一个或多个模式名构成,不同的模式名用逗号隔开。 参数类型:USERSET 当前会话存放临时表的模式时,可以使用别名pg_temp将它列在搜索路径中,如'pg_temp,public' 。 存放临时表的模式始终会作为第一个被搜索的对象,排在pg_catalog和search_path中所有模式的前面,即具有第一搜索优先级。建议用户不要在search_path中显示设置pg_temp。如果在search_path中指定了pg_temp,但不是在最前面,系统会提示设置无效,pg_temp仍被优先搜索。通过使用别名pg_temp,系统只会在存放临时表的模式中搜索表、视图和数据类型这样的数据库对象,不会在里面搜索函数或运算符这样的数据库对象。 系统表所在的模式pg_catalog,总是排在search_path中指定的所有模式前面被搜索,即具有第二搜索优先级(pg_temp具有第一搜索优先级)。建议用户不要在search_path中显式设置pg_catalog。如果在search_path中指定了pg_catalog,但不是在最前面,系统会提示设置无效,pg_catalog仍被第二优先搜索。 当没有指定一个特定模式而创建一个对象时,它们被放置到以search_path为命名的第一个有效模式中。当搜索路径为空时,会报错误。 通过SQL函数current_schema可以检测当前搜索路径的有效值。这和检测search_path的值不尽相同,因为current_schema显示search_path中首位有效的模式名称。 取值范围:字符串 设置为"$user",public时,支持共享数据库(没有用户具有私有模式和所有共享使用public),用户私有模式和这些功能的组合使用。可以通过改变默认搜索路径来获得其他效果,无论是全局化的还是私有化的。 设置为空串('')的时候,系统会自动转换成一对双引号。 设置的内容中包含双引号,系统会认为是不安全字符,会将每个双引号转换成一对双引号。 默认值:"$user",public $user表示与当前会话用户名同名的模式名,如果这样的模式不存在,$user将被忽略。
  • default_storage_nodegroup 参数说明:设置当前的默认建表所在的Node Group,目前只适用普通表。 参数类型:USERSET 取值范围:字符串 installation,表示默认建表在安装的Node Group上。 random_node_group,表示默认建表在随机选择的NodeGroup上,该配置8.1.2及以上版本支持,仅用于测试环境。 roach_group,表示默认建表在所有节点上,该值为roach工具预留,不能用于其他场景。 取值为其他字符串,表示默认建表在设置的Node Group上。 默认值:installation
  • 应用示例 查询当前视图,统计OBS读流量和平均读带宽,统计结果按10分钟聚集。 1 2 3 4 5 select * from gs_obs_read_traffic; nodename | hostname | traffic_mb | bandwidth_mb_per_s | reqcount | logtime ----------+------------------+------------------+--------------------+----------+------------------------ dn_1 | rhel_10_90_45_56 | 101.959338188171 | 5.14830159670447 | 23 | 2022-11-26 09:50:00+08 (1 row)
  • GS_BLOCKLIST_QUERY GS_BLOCKLIST_QUERY系统表存储作业黑名单信息和异常信息,该表以unique_sql_id作为唯一索引,进行作业异常信息统计和黑名单记录,可通过与GS_WLM_SESSION_INFO进行关联获取作业的query字段和执行信息。 GaussDB(DWS)同时提供了GS_BLOCKLIST_QUERY视图用于查询作业黑名单和异常信息,该视图可直接显示query字段信息,不过因为该视图与GS_WLM_SESSION_INFO为依赖关系,因此在GS_WLM_SESSION_INFO表较大的情况下,查询可能需要消耗较长的时间。 表1 GS_BLOCKLIST_QUERY字段 名字 类型 引用 描述 unique_sql_id bigint - 基于查询解析树生成的查询唯一ID。 block_list boolean - 查询作业是否属于黑名单。 except_num integer - 查询作业异常次数。 except_time timestamp - 查询作业最近一次异常时间。 此系统表的schema为dbms_om。 此系统表包含唯一索引,使用哈希分布方式分布在DN上,分布列为unique_sql_id。 此系统表仅限在gaussdb数据库中查询,其它数据库中查询会直接报错。 GS_BLOCKLIST_QUERY视图存储在pg_catalog下。 通常对于DML语句,在计算Unique SQL ID的过程中会忽略常量值。但对于DDL、DCL以及设置参数等语句,常量值不可以忽略。因此一个unique_sql_id可能会对应一个或多个查询。 父主题: 系统表
  • 处理数据导入错误 根据获取的错误信息,请对照下表,处理数据导入错误。 表2 处理数据导入错误 错误信息 原因 解决办法 missing data for column "r_reason_desc" 数据源文件中的列数比外表定义的列数少。 对于TEXT格式的数据源文件,由于转义字符(\)导致delimiter(分隔符)错位或者quote(引号字符)错位造成的错误。 示例:目标表存在3列字段,导入的数据如下所示。由于存在转义字符“\”,分隔符“|”被转义为第二个字段的字段值,导致第三个字段值缺失。 BE|Belgium\|1 由于列数少导致的报错,选择下列办法解决: 在数据源文件中,增加列“r_reason_desc”的字段值。 在创建外表时,将参数“fill_missing_fields”设置为“on”。即当导入过程中,若数据源文件中一行数据的最后一个字段缺失,则把最后一个字段的值设置为NULL,不报错。 对由于转义字符导致的错误,需检查报错的行中是否含有转义字符(\)。若存在,建议在创建外表时,将参数“noescaping”(是否不对'\'和后面的字符进行转义)设置为true。 extra data after last expected column 数据源文件中的列数比外表定义的列数多。 在数据源文件中,删除多余的字段值。 在创建外表时,将参数“ignore_extra_data”设置为“on”。即在导入过程中,若数据源文件比外表定义的列数多,则忽略行尾多出来的列。 invalid input syntax for type numeric: "a" 数据类型错误。 在数据源文件中,修改输入字段的数据类型。根据此错误信息,请将输入的数据类型修改为numeric。 null value in column "staff_id" violates not-null constraint 非空约束。 在数据源文件中,增加非空字段信息。根据此错误信息,请增加“staff_id”列的值。 duplicate key value violates unique constraint "reg_id_pk" 唯一约束。 删除数据源文件中重复的行。 通过设置关键字“DISTINCT”,从SELECT结果集中删除重复的行,保证导入的每一行都是唯一的。 1 INSERT INTO reasons SELECT DISTINCT * FROM foreign_tpcds_reasons; value too long for type character varying(16) 字段值长度超过限制。 在数据源文件中,修改字段值长度。根据此错误信息,字段值长度限制为VARCHAR2(16)。
  • 应用示例 在容灾集群上查看备表回放状态: 1 2 3 4 5 SELECT * FROM pg_fine_dr_info; relid | lastcsn | lastxmin | lastxmax | laststarttime | lastendtime -------+---------+----------+----------+-------------------------------+------------------------------- 21132 | 1251610 | 1251609 | 1251611 | 2023-01-04 20:51:58.375136+08 | 2023-01-04 20:51:58.393986+08 (1 row)
  • PG_RLSPOLICY PG_RLSPOLICY系统表存储行级访问控制策略的信息。 表1 PG_RLSPOLICY字段 名称 类型 描述 polname name 行访问控制策略名称。 polrelid oid 行访问控制策略的表OID。 polcmd char 行访问控制策略影响的SQL操作,包括:*(ALL)、r(SELECT)、w(UPDATE)、d(DELETE)。 polpermissive boolean 行访问控制策略的类型。 说明: polpermissive的取值: true表示PERMISSIVE,表示行访问控制策略是宽容性策略。 false表示RESTRICTIVE,表示行访问控制策略是限制性策略。 polroles oid[] 行访问控制策略影响的数据库用户OID。 polqual pg_node_tree 行访问控制策略的SQL条件表达式。 父主题: 系统表
  • PG_TIMEZONE_NAMES PG_TIMEZONE_NAMES视图提供了显示了所有能够被SET TIMEZONE识别的时区名及其缩写、UTC偏移量、是否夏时制。 表1 PG_TIMEZONE_NAMES字段 名称 类型 描述 name text 时区名。 abbrev text 时区名缩写。 utc_offset interval 相对于UTC的偏移量。 is_dst boolean 如果当前正处于夏令时范围则为TRUE,否则为FALSE。 父主题: 系统视图
  • 锁定用户 ALTER USER语句中ACCOUNT LOCK | ACCOUNT UNLOCK参数用于锁定或者解锁用户,被锁定的用户不允许登录。若管理员发现某帐户被盗、非法访问等异常情况,可手动锁定该帐户;当管理员认为帐户恢复正常后,可手动解锁该帐户。 示例: 锁定用户u1: 1 ALTER USER u1 ACCOUNT LOCK; 解锁用户u1: 1 ALTER USER u1 ACCOUNT UNLOCK;
  • 创建用户 CREATE USER语句用于创建新的GaussDB(DWS)用户。创建新用户后,可以使用该用户连接数据库。 创建普通用户u1,并设置用户拥有CREATEDB属性。 1 CREATE USER u1 WITH CREATEDB PASSWORD '{Password}'; 创建系统管理员mydbadmin,需指定参数SYSADMIN 。 1 CREATE USER mydbadmin sysadmin PASSWORD '{Password}'; 通过视图PG_USER查看已创建的用户。 1 SELECT * FROM pg_user; 要查看用户属性,请查询系统表PG_AUTHID。 1 SELECT * FROM pg_authid;
  • 删除用户 DROP USER语句用于删除一个或多个GaussDB(DWS)用户。当确认帐户不再使用,管理员可以删除用户帐户。用户删除后不可恢复。 同时删除多个用户时,用","隔开。 成功删除用户后,该用户的所有权限也会被一同删除。 当删除的用户正处于活动状态时,此会话状态不会立马断开,用户在会话状态断开后才会被完全删除。 DROP USER语句指定CASCADE时,可级联删除依赖用户的表等对象。即删除owner是该用户的对象,并清理掉其他对象对该用户的授权信息。 示例: 删除用户u1: 1 DROP USER u1; 级联删除帐户u2: 1 DROP USER u2 CASCADE;
  • 数据文件 假设有数据文件product_info.txt,示例数据如下所示: 100,XHDK-A-1293-#fJ3,2017-09-01,A,2017 Autumn New Shirt Women,red,M,328,2017-09-04,715,good 205,KDKE-B-9947-#kL5,2017-09-01,A,2017 Autumn New Knitwear Women,pink,L,584,2017-09-05,406,very good! 300,JODL-X-1937-#pV7,2017-09-01,A,2017 autumn new T-shirt men,red,XL,1245,2017-09-03,502,Bad. 310,QQPX-R-3956-#aD8,2017-09-02,B,2017 autumn new jacket women,red,L,411,2017-09-05,436,It's really super nice 150,ABEF-C-1820-#mC6,2017-09-03,B,2017 Autumn New Jeans Women,blue,M,1223,2017-09-06,1200,The seller's packaging is exquisite 200,BCQP-E-2365-#qE4,2017-09-04,B,2017 autumn new casual pants men,black,L,997,2017-09-10,301,The clothes are of good quality. 250,EABE-D-1476-#oB1,2017-09-10,A,2017 autumn new dress women,black,S,841,2017-09-15,299,Follow the store for a long time. 108,CDXK-F-1527-#pL2,2017-09-11,A,2017 autumn new dress women,red,M,85,2017-09-14,22,It's really amazing to buy 450,MMCE-H-4728-#nP9,2017-09-11,A,2017 autumn new jacket women,white,M,114,2017-09-14,22,Open the package and the clothes have no odor 260,OCDA-G-2817-#bD3,2017-09-12,B,2017 autumn new woolen coat women,red,L,2004,2017-09-15,826,Very favorite clothes 980,ZKDS-J-5490-#cW4,2017-09-13,B,2017 Autumn New Women's Cotton Clothing,red,M,112,2017-09-16,219,The clothes are small 98,FKQB-I-2564-#dA5,2017-09-15,B,2017 autumn new shoes men,green,M,4345,2017-09-18,5473,The clothes are thick and it's better this winter. 150,DMQY-K-6579-#eS6,2017-09-21,A,2017 autumn new underwear men,yellow,37,2840,2017-09-25,5831,This price is very cost effective 200,GKLW-l-2897-#wQ7,2017-09-22,A,2017 Autumn New Jeans Men,blue,39,5879,2017-09-25,7200,The clothes are very comfortable to wear 300,HWEC-L-2531-#xP8,2017-09-23,A,2017 autumn new shoes women,brown,M,403,2017-09-26,607,good 100,IQPD-M-3214-#yQ1,2017-09-24,B,2017 Autumn New Wide Leg Pants Women,black,M,3045,2017-09-27,5021,very good. 350,LPEC-N-4572-#zX2,2017-09-25,B,2017 Autumn New Underwear Women,red,M,239,2017-09-28,407,The seller's service is very good 110,NQAB-O-3768-#sM3,2017-09-26,B,2017 autumn new underwear women,red,S,6089,2017-09-29,7021,The color is very good 210,HWNB-P-7879-#tN4,2017-09-27,B,2017 autumn new underwear women,red,L,3201,2017-09-30,4059,I like it very much and the quality is good. 230,JKHU-Q-8865-#uO5,2017-09-29,C,2017 Autumn New Clothes with Chiffon Shirt,black,M,2056,2017-10-02,3842,very good
  • PG_STAT_XACT_USER_TABLES PG_STAT_XACT_USER_TABLES视图显示命名空间中用户表的事务状态信息。 表1 PG_STAT_XACT_USER_TABLES字段 名称 类型 描述 relid oid 表的OID。 schemaname name 此表的模式名。 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 热更新行数(即不需要单独的索引更新)。 父主题: 系统视图
  • 参数 表1 SQLAllocHandle参数 关键字 参数说明 HandleType 由SQLAllocHandle分配的句柄类型。必须为下列值之一: SQL_HANDLE_ENV(环境句柄) SQL_HANDLE_DBC(连接句柄) SQL_HANDLE_STMT(语句句柄) SQL_HANDLE_DESC(描述句柄) 申请句柄顺序为,先申请环境句柄,再申请连接句柄,最后申请语句句柄,后申请的句柄都要依赖它前面申请的句柄。 InputHandle 将要分配的新句柄的类型。 如果HandleType为SQL_HANDLE_ENV,则这个值为SQL_NULL_HANDLE。 如果HandleType为SQL_HANDLE_DBC,则这一定是一个环境句柄。 如果HandleType为SQL_HANDLE_STMT或SQL_HANDLE_DESC,则它一定是一个连接句柄。 OutputHandlePtr 输出参数:一个缓冲区的指针,此缓冲区以新分配的数据结构存放返回的句柄。
  • 注意事项 当分配的句柄并非环境句柄时,如果SQLAllocHandle返回的值为SQL_ERROR,则它会将OutputHandlePtr的值设置为SQL_NULL_HDBC、SQL_NULL_HSTMT或SQL_NULL_HDESC。之后,通过调用带有适当参数的SQLGetDiagRec,其中HandleType和Handle被设置为IntputHandle的值,可得到相关的SQLSTATE值,通过SQLSTATE值可以查出调用此函数的具体信息。
  • GS_ALL_CONTROL_GROUP_INFO GS_ALL_CONTROL_GROUP_INFO视图显示数据库内所有的控制组信息。 表1 GS_ALL_CONTROL_GROUP_INFO字段 名称 类型 描述 name text 控制组的名称。 type text 控制组的类型。 gid bigint 控制组ID。 classgid bigint Workload所属Class的控制组ID。 class text Class控制组。 workload text Workload控制组。 shares bigint 控制组分配的CPU资源配额。 limits bigint 控制组分配的CPU资源限额。 wdlevel bigint Workload控制组层级。 cpucores text 控制组使用的CPU核的信息。 父主题: 系统视图
  • 获取源数据的OBS路径并设置读取权限 登录OBS管理控制台。 单击“服务列表”,选择“ 对象存储服务 ”,打开OBS管理控制台页面。 获取数据源文件的OBS路径。 数据源文件在上传到OBS桶之后,会生成全局唯一的访问路径。在创建外表时需要指定数据源文件的OBS路径。 如何查看OBS路径,请参见《对象存储服务控制台指南》的通过对象URL访问对象章节。 例如,在本例中,查看到数据文件的OBS路径分别为: https://obs.cn-north-1.myhuaweicloud.com/mybucket/demo.db/product_info_orc/product_info.0 https://obs.cn-north-1.myhuaweicloud.com/mybucket/demo.db/product_info_orc/product_info.1 为用户设置OBS桶的读取权限。 在使用SQL on OBS功能时,执行该功能的用户需要取得数据源文件所在OBS桶的读取权限。通过配置桶的ACL权限,可以将读取权限授予指定的用户帐号。 具体请参见《对象存储服务控制台指南》中的配置桶ACL章节。
  • 操作场景 使用SQL on OBS功能查询OBS数据之前: 已将ORC数据存储在OBS上。 例如,在使用Hive或Spark等组件时创建了ORC表,其表数据已经存储在OBS上的场景。 假设有2个ORC数据文件“product_info.0”和“product_info.1”,其原始数据如原始数据所示,都已经存储在OBS桶“mybucket”的“demo.db/product_info_orc/”目录中。 如果数据文件已经在OBS上了,请执行获取源数据的OBS路径并设置读取权限中的步骤。 本小节以导入ORC格式为例,PARQUET、CARBONDATA、JSON数据的导入方法与ORC格式相似。 该方式同样也支持导入TEXT、 CS V格式文件,但由于该方式不支持错误表,因此推荐使用从OBS导入CSV、TEXT数据(方式一)的导入方式。
  • DBA_TAB_COLUMNS DBA_TAB_COLUMNS视图存储关于表和视图的字段的信息。数据库里每个表的每个字段都在DBA_TAB_COLUMNS里有一行。需要有系统管理员权限才可以访问。 名称 类型 描述 owner character varying(64) 表或视图的所有者。 table_name character varying(64) 表名或视图名。 column_name character varying(64) 列名。 data_type character varying(128) 列的数据类型。 column_id integer 创建表或视图时列的序号。 data_length integer 列的字节长度。 comments text 注释。 avg_col_len numeric 列的平均长度(单位字节)。 nullable bpchar 该列是否允许为空,对于主键约束和非空约束,该值为n。 data_precision integer 数据类型的精度,对于numeric数据类型有效,其他类型为NULL。 data_scale integer 小数点右边的位数,对于numeric数据类型有效,其他类型为0。 char_length numeric 列的长度(以字符计),只对varchar,nvarchar2, bpchar,char类型有效。 schema character varying(64) 包含该表或视图的命名空间。 kind text 当前记录所属的种类,如果此列属于表,则此字段显示为table;如果此列属于视图,则此字段显示为view。 父主题: 系统视图
  • 创建外表 当完成创建外部服务器后,在GaussDB(DWS)数据库中创建一个OBS/HDFS只写外表,用来访问存储在OBS/HDFS上的数据。此外表是只写的,只能用于导出操作。 创建外表的语法格式如下,详细的描述请参见CREATE FOREIGN TABLE (SQL on OBS or Hadoop)章节。 1 2 3 4 5 6 7 8 9 10 11 CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [ { column_name type_name [ { [CONSTRAINT constraint_name] NULL | [CONSTRAINT constraint_name] NOT NULL | column_constraint [...]} ] | table_constraint [, ...]} [, ...] ] ) SERVER dfs_server OPTIONS ( { option_name ' value ' } [, ...] ) [ {WRITE ONLY }] DISTRIBUTE BY {ROUNDROBIN | REPLICATION} [ PARTITION BY ( column_name ) [ AUTOMAPPED ] ] ; 例如,创建一个名为"product_info_ext_obs"的外表,对语法中的参数按如下描述进行设置: table_name 外表的表名。 表字段定义 column_name:外表中的字段名。 type_name:字段的数据类型。 多个字段用“,”隔开。 SERVER dfs_server 外表的外部服务器名称,这个server必须存在。外表通过设置外部服务器连接OBS/HDFS读取数据。 此处应填写为参照创建外部服务器创建的外部服务器名称。 OPTIONS参数 用于指定外表数据的各类参数,关键参数如下所示。 “format”:表示导出的数据文件格式,支持“orc”格式。 “foldername”:必选参数。外表中数据源文件目录。OBS:数据源文件的OBS路径,此处仅需要填写“/桶名/文件夹目录层级/”。HDFS:HDFS文件系统上的路径。此选项对WRITE ONLY外表为必选项。 “encoding”:外表中数据源文件的编码格式名称,缺省为utf8。 “filesize” 指定WRITE ONLY外表的文件大小,单位为MB。此选项为可选项,不指定该选项默认分布式文件系统配置中文件大小的配置值。此语法仅对WRITE ONLY的外表有效。 取值范围:[1, 1024]的整数。 filesize参数只对ORC格式的WRITE ONLY的HDFS外表有效。 “compression” 指定ORC格式文件的压缩方式,此选项为可选项。 取值范围:zlib,snappy,lz4。缺省值为snappy。 “version” 指定ORC格式的版本号,此选项为可选项。此语法仅对WRITE ONLY的外表有效。 取值范围:目前仅支持0.12。缺省值为0.12。 “dataencoding” 在数据库编码与数据表的数据编码不一致时,该参数用于指定导出数据表的数据编码。比如数据库编码为Latin-1,而导出的数据表中的数据为UTF-8编码。此选项为可选项,如果不指定该选项,默认采用数据库编码。此语法仅对HDFS的WRITE ONLY外表有效。 取值范围:该数据库编码支持转换的数据编码。 dataencoding参数只对ORC格式的WRITE ONLY的HDFS外表有效。 语法中的其他参数 其他参数均为可选参数,用户可以根据自己的需求进行设置,在本例中不需要设置。 根据以上信息,创建外表命令如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 DROP FOREIGN TABLE IF EXISTS product_info_ext_obs; ---建立不包含分区列的OBS外表,表关联的外部服务器为obs_server,表对应的OBS服务上的文件格式为‘orc’,OBS上的数据存储路径为'/mybucket/data/'。 CREATE FOREIGN TABLE product_info_ext_obs ( product_price integer , product_id char(30) , product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt integer , product_comment_time date , product_comment_num integer , product_comment_content varchar(200) ) SERVER obs_server OPTIONS ( format 'orc', foldername '/mybucket/demo.db/product_info_orc/', compression 'snappy', version '0.12' ) Write Only; 父主题: 导出ORC数据到OBS(方式二)
共100000条