华为云用户手册

  • obj_description(object_oid, catalog_name) 描述:获取一个数据库对象的注释。 返回类型:text 备注:带有两个参数的obj_description返回一个数据库对象的注释,该对象是通过其OID和其所属的系统表名字声明。比如,obj_description(123456,'pg_class')将返回OID为123456的表的注释。只带一个参数的obj_description只要求对象OID。 obj_description不能用于表字段,因为字段没有自己的OID。
  • col_description(table_oid, column_number) 描述:获取一个表字段的注释。 返回类型:text 备注:col_description返回一个表中字段的注释,通过表OID和字段号来声明。 示例:查询pg_class系统表获取表OID,查询INFORMATION_SCHEMA.COLUMNS系统视图获取column_number。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 SELECT COLUMN_NAME,ORDINAL_POSITION FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't' AND COLUMN_NAME = 'a'; column_name | ordinal_position -------------+------------------ a | 1 (1 row) SELECT oid FROM pg_class WHERE relname='t'; oid ------- 44020 (1 row) SELECT col_description(44020,1); col_description ----------------------- This is a test table. (1 row)
  • 路径 路径由一系列连接的点组成。路径可能是开放的,也就是认为列表中第一个点和最后一个点没有连接,也可能是闭合的,这时认为第一个和最后一个点连接起来。 用下面的语法描述path的数值: [ ( x1 , y1 ) , ... , ( xn , yn ) ] ( ( x1 , y1 ) , ... , ( xn , yn ) ) ( x1 , y1 ) , ... , ( xn , yn ) ( x1 , y1 , ... , xn , yn ) x1 , y1 , ... , xn , yn 点表示组成路径的线段的端点。方括弧([])表明一个开放的路径,圆括弧(())表明一个闭合的路径。当最外层的括号被省略,如在第三至第五语法,会假定一个封闭的路径。 路径的输出使用第一种或第二种语法输出。
  • 多边形 多边形由一系列点代表(多边形的顶点)。多边形可以认为与闭合路径一样,但是存储方式不一样而且有自己的一套支持函数。 用下面的语法描述polygon的数值: ( ( x1 , y1 ) , ... , ( xn , yn ) ) ( x1 , y1 ) , ... , ( xn , yn ) ( x1 , y1 , ... , xn , yn ) x1 , y1 , ... , xn , yn 点表示多边形的端点。 多边形输出使用第一种语法。
  • 功能描述 为当前事务做两阶段提交的准备。 在命令之后,事务就不再和当前会话关联了;它的状态完全保存在磁盘上,它被提交成功的可能性非常高,即使是在请求提交之前数据库发生了崩溃也如此。 一旦准备好了,一个事务就可以在稍后用COMMIT PREPARED或 ROLLBACK PREPARED命令分别进行提交或者回滚。这些命令可以从任何会话中发出,而不光是最初执行事务的那个会话。 从发出命令的会话的角度来看,PREPARE TRANSACTION不同于ROLLBACK:在执行它之后,就不再有活跃的当前事务了,并且预备事务的效果无法见到 (在事务提交的时候其效果会再次可见)。 如果PREPARE TRANSACTION因为某些原因失败,那么它就会变成一个ROLLBACK,当前事务被取消。
  • txid_visible_in_snapshot(bigint, txid_snapshot) 描述:在快照中事务ID是否可见(不使用子事务ID)。 返回类型:boolean 内部事务ID类型(xid)是32位,每40亿事务一次循环。这些函数使用的数据类型txid_snapshot,存储在特定时刻事务ID可见性的信息。其组件描述在表1。 表1 快照组件 名字 描述 xmin 最早的事务ID(txid)仍然活动。所有较早事务将是已经提交可见的,或者是直接回滚。 xmax 作为尚未分配的txid。所有大于或等于此txids的都是尚未开始的快照时间,因此不可见。 xip_list 当前快照中活动的txids。这个列表只包含在xmin和xmax之间活动的txids;有可能活动的txids高于xmax。 介于大于等于xmin、小于xmax,并且不在这个列表中的txid,在这个时间快照已经完成的,因此按照提交状态查看他是可见还是回滚。这个列表不包含子事务的txids。 txid_snapshot的文本表示为:xmin:xmax:xip_list。 示例:10:20:10,14,15意思为:xmin=10, xmax=20, xip_list=10, 14, 15。
  • pv_compute_pool_workload() 描述:返回计算子集群当前的负载状态。 返回类型:void 示例: SELECT * from pv_compute_pool_workload(); nodename | rpinuse | maxrp | nodestate -----------+---------+-------+----------- datanode1 | 0 | 1000 | normal datanode2 | 0 | 1000 | normal (2 rows)
  • inet inet类型在一个数据区域内保存主机的IPv4或IPv6地址,以及一个可选子网。主机地址中网络地址的位数表示子网(“子网掩码”)。如果子网掩码是32并且地址是IPv4,则这个值不表示任何子网,只表示一台主机。在IPv6里,地址长度是128位,因此128位表示唯一的主机地址。 该类型的输入格式是address/y,address表示IPv4或者IPv6地址,y是子网掩码的二进制位数。如果省略/y,则子网掩码对IPv4是32,对IPv6是128,所以该值表示只有一台主机。如果该值表示只有一台主机,/y将不会显示。 inet和cidr类型之间的基本区别是inet接受子网掩码,而cidr不接受。
  • macaddr macaddr类型存储MAC地址,也就是以太网卡硬件地址(尽管MAC地址还用于其它用途)。可以接受下列格式: '08:00:2b:01:02:03' '08-00-2b-01-02-03' '08002b:010203' '08002b-010203' '0800.2b01.0203' '08002b010203' 这些示例都表示同一个地址。对于数据位a到f,大小写都行。输出时都是以第一种形式展示。
  • cidr cidr(无类别域间路由,Classless Inter-Domain Routing)类型,保存一个IPv4或IPv6网络地址。声明网络格式为address/y,address表示IPv4或者IPv6地址,y表示子网掩码的二进制位数。如果省略y,则掩码部分使用已有类别的网络编号系统进行计算,但要求输入的数据已经包括了确定掩码所需的所有字节。 示例一:CIDR格式换算为IP地址网段 例如,10.0.0.0/8换算为32位二进制地址:00001010.00000000.00000000.00000000。其中/8表示8位网络ID,即32位二进制地址中前8位是固定不变的,对应网段为:00001010.00000000.00000000.00000000~00001010.11111111.11111111.11111111。则换算为十进制后,10.0.0.0/8表示:子网掩码为255.0.0.0,对应网段为10.0.0.0~10.255.255.255。 示例二:IP地址网段换算为CIDR格式 例如,192.168.0.0~192.168.31.255,后两段IP换算为二进制地址:00000000.00000000~00011111.11111111,可以得出前19位(8*2+3)是固定不变的,则换算为CIDR格式后,表示为:192.168.0.0/19。 表2 cidr类型输入举例 cidr输入 cidr输出 abbrev(cidr) 192.168.100.128/25 192.168.100.128/25 192.168.100.128/25 192.168/24 192.168.0.0/24 192.168.0/24 192.168/25 192.168.0.0/25 192.168.0.0/25 192.168.1 192.168.1.0/24 192.168.1/24 192.168 192.168.0.0/24 192.168.0/24 10.1.2 10.1.2.0/24 10.1.2/24 10.1 10.1.0.0/16 10.1/16 10 10.0.0.0/8 10/8 10.1.2.3/32 10.1.2.3/32 10.1.2.3/32 2001:4f8:3:ba::/64 2001:4f8:3:ba::/64 2001:4f8:3:ba::/64 2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128 2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128 2001:4f8:3:ba:2e0:81ff:fe22:d1f1
  • pg_relation_filenode(relation regclass) 描述:指定关系的文件节点数。 返回值类型:oid 备注:pg_relation_filenode接收一个表、索引、序列或压缩表的OID或者名字,并且返回当前分配给它的“filenode”数。文件节点是关系使用的文件名字的基本组件。对大多数表来说,结果和pg_class.relfilenode相同,但对确定的系统目录来说, relfilenode为0而且这个函数必须用来获取正确的值。如果传递一个没有存储的关系,比如一个视图,那么这个函数返回NULL。
  • 全文检索概述 文本搜索操作符在数据库中已存在多年。 GaussDB (DWS)为文本数据类型提供~、~*、LIKE和ILIKE操作符,但这些操作符缺乏现代信息系统所要求的许多必要属性,不过这一问题可以通过使用索引及词典进行解决。 文本检索缺乏信息系统所要求的必要属性: 没有语义支持,即使是英语。 由于要识别派生词并不是那么容易,因此正则表达式也不能满足要求。如,satisfies和satisfy,当使用正则表达式寻找satisfy时,并不会查询到包含satisfies的文档。用户可以使用OR搜索多种派生形式,但过程非常繁琐。并且有些词会有上千的派生词,因此容易出错。 没有对搜索结果的分类(排序)。当搜索出成千的文档时,查找效率很低。 由于没有索引的支持,每一次的搜索需要遍历所有的文档,整体搜索比较缓慢。 使用全文索引可以对文档进行预处理,并且可以使后续的搜索更快速。预处理过程包括: 将文档解析成token。 为每个文档标记不同类别的token是非常有必要的,例如:数字、文字、复合词、电子邮件地址,这样就可以做不同的处理。原则上token的类别依赖于具体的应用,但对于大多数的应用来说,可以使用一组预定义的token类。 将token转换为词素。 词素像token一样是一个字符串,但它已经标准化处理,这样同一个词的不同形式是一样的。例如,标准化通常包括:将大写字母折成小写字母、删除后缀(如英语中的s或者es)。这将允许通过搜索找到同一个词的不同形式,不需要繁琐地输入所有可能的变形样式。同时,这一步通常会删除停用词。这些停用词通常因为太常见而对搜索无用。(总之,token是文档文本的原片段,而词素被认为是有用的索引和搜索词。)GaussDB(DWS)使用词典执行这一步,且提供了各种标准的词典。 保存搜索优化后的预处理文档。 比如,每个文档可以呈现为标准化词素的有序组合。伴随词素,通常还需要存储词素位置信息以用于邻近排序。因此文档包含的查询词越密集其排序越高。 词典能够对token如何标准化做到细粒度控制。使用合适的词典,可以定义不被索引的停用词。 数据类型tsvector用于存储预处理文档,tsquery用于存储查询条件,详细内容可参见文本搜索类型。为数据类型tsvector提供的函数和操作符可参见文本检索函数和操作符,其中最重要的是匹配运算符@@,请参见基本文本匹配。 父主题: 介绍
  • Snowball词典 Snowball词典模板支持词干分析词典,基于Martin Porter的Snowball项目,内置有许多语言的词干分析算法。GaussDB(DWS)中预定义有多种语言的Snowball词典,可通过系统表PG_TS_DICT查看预定义的词干分析词典以及支持的语言词干分析算法。 无论是否可以简化,Snowball词典将标示所有输入为已识别,因此它应当被放置在词典列表的最后。把Snowball词典放在任何其他词典前面会导致后继词典失效,因为输入token不会通过Snowball词典进入到下一个词典。 关于Snowball词典的语法,请参见CREATE TEXT SEARCH DICTIONARY。 父主题: 词典
  • pg_advisory_lock(key bigint) 描述:获取会话级别的排它咨询锁。 返回值类型:void 备注:pg_advisory_lock锁定应用程序定义的资源,该资源可以用一个64位或两个不重叠的32位键值标识。如果已经有另外的会话锁定了该资源,则该函数将阻塞到该资源可用为止。这个锁是排它的。多个锁定请求将会被压入栈中,因此,如果同一个资源被锁定了三次,它必须被解锁三次以将资源释放给其他会话使用。
  • 处理tsvector GaussDB(DWS)提供了用来操作tsvector类型的函数和操作符。 tsvector || tsvector tsvector连接操作符返回一个新的tsvector类型,它综合了两个tsvector中词素和位置信息,并保留词素的位置信息和权重标签。右侧的tsvector的起始位置位于左侧tsvector的最后位置,因此,新生成的tsvector几乎等同于将两个原始文档字串连接后进行to_tsvector操作。(这个等价是不准确的,因为任何从左边tsvector中删除的停用词都不会影响结果,但是,在使用文本连接时,则会影响词素在右侧tsvector中的位置。) 相较于对文本进行连接后再执行to_tsvector操作,使用tsvector类型进行连接操作的优势在于,可以对文档的不同部分使用不同配置进行解析。因为setweight函数会对给定的tsvector中的语素进行统一设置,如果想要对文档的不同部分设置不同的权重,需要在连接之前对文本进行解析和权重设置。 setweight(vector tsvector, weight "char") returns tsvector setweight返回一个输入tsvector的副本,其中每一个位置都使用给定的权重做了标记。权值可以为A、B、C或D(D是tsvector副本的默认权重,并且不在输出中呈现)。当对tsvector进行连接操作时,这些权重标签将会被保留,文档不同部分以不同的权重进行排序。 权重标签作用于位置,而不是词素。如果传入的tsvector已经被剥离了位置信息,那么setweight函数将什么都不做。 length(vector tsvector) returns integer 返回vector中的词素的数量。 strip(vector tsvector) returns tsvector 返回一个tsvector类型,其中包含输入的tsvector的同义词,但不包含任何位置和权重信息。虽然在相关性排序中,这里返回的tsvector要比未拆分的tsvector的作用小很多,但它通常都比未拆分的tsvector小的多。 父主题: 附加功能
  • 添加约束 右键单击表下的“约束”,选择“添加约束”。 弹出“添加新约束”对话框,提示在新约束中输入信息。 约束类型有CHECK、PRIMARY KEY、UNIQUE三个选项,详细说明请参考定义表约束。 输入“约束名”和“选定的列”,单击“添加”。完成操作后,该约束添加到表中。 Data Studio在状态栏显示操作状态信息。 如果“约束名”字段中已经提供了约束名称,则状态栏将显示该约束名称,否则将不显示该约束名。
  • 示例 启动gds。 python3 gds_ctl.py start 停止由配置文件启动的gds。 python3 gds_ctl.py stop 停止所有当前用户有权限关闭的gds。 python3 gds_ctl.py stop all 停止当前用户有权限关闭的,由[ip:]port指定的gds。 python3 gds_ctl.py stop 127.0.0.1:8098 查询gds状态。 python3 gds_ctl.py status
  • 参数说明 start 启动gds.conf中配置的gds。 stop 关闭当前用户有权限关闭的经配置文件启动的gds运行实例。 stop all 关闭当前用户有权限关闭的所有gds运行实例。 stop [ ip: ] port 关闭当前用户有权限关闭的特定gds运行实例。如果启动时指定了ip:port,那么停止需要指定相应的ip:port;如果启动时未指定IP,只指定port,则停止只需指定相应的port即可。如启动和停止指定不同的信息,则停止失败。 status 查询通过gds.conf启动的gds实例的运行状态。
  • 软件要求 操作系统要求 DSC兼容的操作系统如表4所示。 表4 兼容的操作系统 服务器 操作系统 版本 通用x86服务器 SUSE Linux Enterprise Server 11 SP1(SUSE11.1) SP2(SUSE11.2) SP3(SUSE11.3) SP4(SUSE11.4) SUSE Linux Enterprise Server 12 SP0(SUSE12.0) SP1(SUSE12.1) SP2(SUSE12.2) SP3(SUSE12.3) RHEL 6.4-x86_64(RedHat6.4) 6.5-x86_64(RedHat6.5) 6.6-x86_64(RedHat6.6) 6.7-x86_64(RedHat6.7) 6.8-x86_64(RedHat6.8) 6.9-x86_64(RedHat6.9) 7.0-x86_64(RedHat7.0) 7.1-x86_64(RedHat7.1) 7.2-x86_64(RedHat7.2) 7.3-x86_64(RedHat7.3) 7.4-x86_64(RedHat7.4) CentOS 6.4(CentOS6.4) 6.5(CentOS6.5) 6.6(CentOS6.6) 6.7(CentOS6.7) 6.8(CentOS6.8) 6.9(CentOS6.9) 7.0(CentOS7.0) 7.1(CentOS7.1) 7.2(CentOS7.2) 7.3(CentOS7.3) 7.4(CentOS7.4) Windows 7.0,10,11 其他软件要求 DSC对其他软件版本的要求如表5所示。 表5 其他软件要求 软件 用途 JDK 1.8.0_141 or later Used to run DSC. Perl 5.8.8 Used to migrate Perl files. Perl 5.28.2 and later Used to migrate Perl files in Windows. Python 3.8.2 Used to verify post migration script.
  • 软件要求 操作系统要求 Data Studio的操作系统配置要求如下表所示。 表1 支持操作系统及相应软件包 服务器 操作系统 支持版本 通用x86服务器 Windows Windows 7 (64 bit) Windows 10 (64 bit) Windows 2012 (64 bit) Windows 2016 (64 bit) 浏览器要求 Data Studio的浏览器要求如下表所示。 操作系统 版本 Windows IE 11及以上 其他软件要求 Data Studio的软件配置要求如下表所示。 表2 Data Studio软件要求 软件 规格 Java 推荐与操作系统位数对应的Open JDK 1.8版本 GNU libc 显示DDL,导入DDL,导出DDL和数据操作只支持GN系统libc 2.17以上的版本。 表3 支持的数据库版本 数据库 版本 GaussDB(DWS) 1.2.x 1.5.x 8.0.x 8.1.x 8.2.x 保证最佳体验的情况下,推荐的最小屏幕分辨率是1080 x 768。低于此分辨率,界面会异常。
  • 支持序列DDL Data Studio支持用户进行显示序列DDL和导出序列DDL操作,包括“显示DDL”,“导出DDL”,“导出DDL和数据”。 在“对象浏览器”窗格中,右键单击序列名,显示菜单选项。 选择“显示DDL”选项查看DDL语句。 选择“导出DDL”选项导出DDL语句。 选择“导出DDL和数据”选项导出DDL和select语句。 如下图所示: 只有序列所有者或系统管理员,或具有序列的select权限的用户,才能进行上述操作。
  • 创建序列 在“对象浏览器”窗格,右键单击“序列”,然后选择“创建序列”。Data Studio弹出“创建序列”对话框。 设置相关参数以创建序列。 在“序列名称”字段输入序列名称。 勾选“区分大小写”,“序列名称”字段文本将区分大小写。例如,输入的序列名称为“Employee”,则序列名称将创建为“Employee”。 在“最小值”字段输入最小值。 在“增量”字段输入要递增的值。 在“最大值”字段输入最大值。 最大和最小值的取值范围应在-9223372036854775808到9223372036854775807之间。 在“初始值”字段输入序列的起始值。 在“缓存数值”字段输入缓存信息。缓存值表示存储在内存中用于快速访问的数字序列。 勾选“循环”,可在序列数达到最大或最小值时进行循环。 该模式名称自动填充到“模式”字段。 在“表”中选择对应表。 在“列”中选择对应列。 单击“完成”。 状态栏显示已完成操作的状态。 可在“SQL预览”页签自动查看输入数据的SQL查询。
  • 参数说明 -t 操作类型,表示检查/修复。 取值:check,fix。 --host 需要检查/修复的节点IP列表。 取值:IP列表,支持文件和字符串两种形式。 文件形式:每一行一个IP地址,如: 192.168.1.200 192.168.1.201 字符串形式:半角逗号分隔,如: 192.168.1.200,192.168.1.201 --ping-host 在各检查节点上进行网络ping检查的目标地址。 取值:IP列表,支持文件和字符串两种形式,一般是DN、CN、网关的IP地址。 文件形式:每一行一个IP地址,如: 192.168.2.200 192.168.2.201 字符串形式:半角逗号分隔,如: 192.168.2.200,192.168.2.201 --detail 显示检查/修复项详细信息,并存入日志。 -V 显示版本信息。 -h, --help 显示帮助信息。
  • 示例 执行检查,--host、--ping-host均为IP字符串形式: gds_check -t check --host 192.168.1.100,192.168.1.101 --ping-host 192.168.2.100 执行检查,--host为字符串,--ping-host为文件形式: gds_check -t check --host 192.168.1.100,192.168.1.101 --ping-host /home/gds/iplist cat /home/gds/iplist 192.168.2.100 192.168.2.101 执行检查,--host为文件形式,--ping-host为字符串: gds_check -t check --host /home/gds/iplist --ping-host 192.168.1.100,192.168.1.101 执行修复,--host为字符串: gds_check -t fix --host 192.168.1.100,192.168.1.101 执行检查,打印详细信息,并存入日志: gds_check -t check --host 192.168.1.100 --detail 执行修复,打印详细信息,并存入日志: gds_check -t fix --host 192.168.1.100 --detail
  • 语法 检查命令 gds_check -t check --host [/path/to/hostfile | ipaddr1,ipaddr2...] --ping-host [/path/to/pinghostfile | ipaddr1,ipaddr2...] [--detail] 修复命令 gds_check -t fix --host [/path/to/hostfile | ipaddr1,ipaddr2...] [--detail]
  • 创建数据库 在“对象浏览器”窗格中右键单击“数据库”组,选择“创建数据库”。 弹出“创建数据库”对话框,提示您提供创建数据库所需信息。 输入数据库名称。 从“数据库编码”中选择所需编码字符集类型。数据库支持UTF-8、GBK、SQL_ASCII和LATIN1编码字符集,使用其他编码字符集创建数据库可能导致操作出错。 只有当至少存在一个已连接的数据库时才能执行此操作。 勾选“连接到该数据库”,然后单击“确定”。 状态栏显示已完成操作的状态。 “对象浏览器”显示所创建的数据库。服务器上系统相关模式自动添加到新的数据库。
  • REPLACE MySQL的REPLACE操作形式包括:LOW_PRIORITY、PARTITION 、DELAYED 、VALUES、SET;(下述迁移示例为临时迁移方案) REPLACE的工作方式与INSERT完全相同,不同之处在于,如果表中的旧行与主键或唯一索引的新行具有相同的值,则在插入新行之前删除该旧行。 LOW_PRIORITY PARTITION DELAYED VALUES SET 父主题: 数据操作语句(DML)
  • 定义脱敏策略 数据脱敏策略是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。用户可以在指定表对象创建脱敏策略,并限定策略生效范围,也可以新增、修改、删除脱敏列信息。所涉及的SQL语句,请参考下表。 表8 脱敏策略定义相关SQL 功能 相关SQL 对表创建数据脱敏策略 CREATE REDACTION POLICY 修改应用在指定表的脱敏策略 ALTER REDACTION POLICY 删除应用在指定表的脱敏策略 DROP REDACTION POLICY
  • 定义行级访问控制 行级访问控制策略控制数据库表中行级数据可见性。不同用户执行相同的SQL查询操作,读取到的结果不同。所涉及的SQL语句,请参考下表。 表9 行级访问控制定义相关SQL 功能 相关SQL 创建行访问控制策略 CREATE ROW LEVEL SECURITY POLICY 修改已存在的行访问控制策略 ALTER ROW LEVEL SECURITY POLICY 删除表上某个行访问控制策略 DROP ROW LEVEL SECURITY POLICY
  • 定义文本搜索配置 文本搜索配置指定了文本搜索解析器,该文本搜索解析器可以将字符串划分为标记,外加一些词典(可被用来决定哪些标记是搜索感兴趣的)。所涉及的SQL语句,请参考下表。 表17 文本搜索配置相关SQL 功能 相关SQL 创建文本搜索配置 CREATE TEXT SEARCH CONFIGURATION 修改文本搜索配置 ALTER TEXT SEARCH CONFIGURATION 删除文本搜索配置 DROP TEXT SEARCH CONFIGURATION
共100000条