华为云用户手册

  • 响应示例 状态码: 201 POST操作正常返回。 { "dnat_rules" : [ { "floating_ip_id" : "bf99c679-9f41-4dac-8513-9c9228e713e1", "status" : "PENDING_CREATE", "nat_gateway_id" : "cda3a125-2406-456c-a11f-598e10578541", "admin_state_up" : true, "port_id" : "9a469561-daac-4c94-88f5-39366e5ea193", "private_ip" : "", "internal_service_port" : 993, "protocol" : "tcp", "tenant_id" : "d199ba7e0ba64899b2e81518104b1526", "created_at" : "2019-11-15 15:44:42.595173", "id" : "79195d50-0271-41f1-bded-4c089b2502ff", "floating_ip_address" : "5.21.11.226", "external_service_port" : 242, "description" : "my dnat rule 01" }, { "floating_ip_id" : "cf99c679-9f41-4dac-8513-9c9228e713e1", "status" : "PENDING_CREATE", "nat_gateway_id" : "dda3a125-2406-456c-a11f-598e10578541", "admin_state_up" : true, "port_id" : "", "private_ip" : "192.168.1.100", "internal_service_port" : 0, "protocol" : "any", "tenant_id" : "d199ba7e0ba64899b2e81518104b1526", "created_at" : "2019-11-15 15:44:42.595173", "id" : "79195d50-0271-41f1-bded-4c089c2502ff", "floating_ip_address" : "5.21.11.227", "external_service_port" : 0, "description" : "my dnat rule 01" } ] }
  • 请求示例 批量创建规则(第一条为指定端口的规则,第二条为all port类型的规则)。 POST https://{Endpoint}/v2/d199ba7e0ba64899b2e81518104b1526/dnat_rules/batch { "dnat_rules" : [ { "floating_ip_id" : "bf99c679-9f41-4dac-8513-9c9228e713e1", "nat_gateway_id" : "cda3a125-2406-456c-a11f-598e10578541", "port_id" : "9a469561-daac-4c94-88f5-39366e5ea193", "internal_service_port" : 993, "protocol" : "tcp", "external_service_port" : 242, "description" : "my dnat rule 01" }, { "floating_ip_id" : "cf99c679-9f41-4dac-8513-9c9228e713e1", "nat_gateway_id" : "dda3a125-2406-456c-a11f-598e10578541", "private_ip" : "192.168.1.100", "internal_service_port" : 0, "protocol" : "any", "external_service_port" : 0, "description" : "my dnat rule 01" } ] }
  • 响应示例 状态码: 200 查询SNAT规则成功。 { "snat_rule" : { "id" : "8a522ff9-8158-494b-83cd-533b045700e6", "project_id" : "cfa563efb77d4b6d9960781d82530fd8", "description" : "my_snat_rule02", "gateway_id" : "80da6f26-94eb-4537-97f0-5a56f4d04cfb", "cidr" : "", "virsubnet_id" : "95df1b88-d9bc-4edd-a808-a771dd4ded32", "transit_ip_associations" : [ { "transit_ip_id" : "bbe7c2e7-3bad-445b-a067-b30acce66053", "transit_ip_address" : "172.20.1.98" } ], "created_at" : "2019-10-22T03:33:07", "updated_at" : "2019-10-22T03:33:07" }, "request_id" : "c8b21002-a594-414d-9585-2cc5963d4c3e" }
  • 响应示例 状态码: 200 查询SNAT规则列表成功。 { "snat_rules" : [ { "floating_ip_id" : "bf99c679-9f41-4dac-8513-9c9228e713e1", "status" : "ACTIVE", "nat_gateway_id" : "cda3a125-2406-456c-a11f-598e10578541", "admin_state_up" : true, "network_id" : "9a469561-daac-4c94-88f5-39366e5ea193", "source_type" : 0, "tenant_id" : "d199ba7e0ba64899b2e81518104b1526", "created_at" : "2017-11-15 15:44:42.595173", "id" : "79195d50-0271-41f1-bded-4c089b2502ff", "floating_ip_address" : "5.21.11.242", "freezed_ip_address" : "", "description" : "my snat rule 01" }, { "floating_ip_id" : "6e496fba-abe9-4f5e-9406-2ad8c809ac8c", "status" : "ACTIVE", "nat_gateway_id" : "e824f1b4-4290-4ebc-8322-cfff370dbd1e", "admin_state_up" : true, "network_id" : "97e89905-f9c8-4ae3-9856-392b0b2fbe7f", "source_type" : 0, "tenant_id" : "d199ba7e0ba64899b2e81518104b1526", "created_at" : "2017-11-17 07:43:44.830845", "id" : "4a1a10d7-0d9f-4846-8cda-24cffeffef5c", "floating_ip_address" : "5.21.11.142,5.21.11.143", "freezed_ip_address" : "5.21.11.142", "description" : "my snat rule 01" } ] }
  • 请求示例 更新私网NAT网关实例,其中,私网NAT网关实例的名字为private-nat-gateway-name,私网NAT网关的描述为private-nat-gateway-description,实例的规格为Medium。 PUT https://{Endpoint}/v3/70505c941b9b4dfd82fd351932328a2f/private-nat/gateways/14338426-6afe-4019-996b-3a9525296e11 { "gateway" : { "name" : "private-nat-gateway-name", "description" : "private-nat-gateway-description", "spec" : "Medium" } }
  • 响应示例 状态码: 200 更新私网NAT网关实例成功。 { "gateway" : { "id" : "14338426-6afe-4019-996b-3a9525296e11", "name" : "private-nat-gateway-name", "description" : "private-nat-gateway-description", "spec" : "Medium", "project_id" : "70505c941b9b4dfd82fd351932328a2f", "enterprise_project_id" : "2759da7b-8015-404c-ae0a-a389007b0e2a", "status" : "ACTIVE", "created_at" : "2019-04-22T08:47:13", "updated_at" : "2019-04-22T08:47:13", "tags" : [ { "key" : "key1", "value" : "value1" } ], "downlink_vpcs" : [ { "vpc_id" : "3cb66d44-9f75-4237-bfff-e37b14d23ad2", "virsubnet_id" : "373979ee-f4f0-46c5-80e3-0fbf72646b70" } ] }, "request_id" : "e7e3323e95b348708d26e68a0ddece71" }
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 1 2 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的帐号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-1”,您可以从地区和终端节点获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获取用户Token。 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 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京一”区域的Endpoint为“iam.cn-north-1.myhuaweicloud.com”。 resource-path 资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • RoaringBitmap类型 GaussDB(DWS)自8.1.3集群版本开始,支持RoaringBitmap数据类型,用于存储位图数据集。 roaringbitmap数据类型支持行存,列存表。 表1 RoaringBitmap类型 名字 存储容量 描述 范围 RoaringBitmap 32 字节 存储位图数据集 -2,147,483,648~2,147,483,647 示例:创建带有roaringbitmap数据类型的表。 1 2 CREATE TABLE r_row (a int ,b text, c roaringbitmap); CREATE TABLE r_col (a int ,b text, c roaringbitmap) with (orientation=column); 父主题: 数据类型
  • jsonb高级特性 json和jsonb的主要差异在于存储方式上的不同,jsonb存储的是解析后的二进制,能够体现JSON的层次结构,更便于直接访问等,因此jsonb较json具有很多高级特性。 格式归一化 对于输入的object-json字符串,解析成jsonb二进制后,会天然的丢弃语义上无关紧要的细节,比如空格: 1 2 3 4 5 SELECT ' [1, " a ", {"a" :1 }] '::jsonb; jsonb ---------------------- [1, " a ", {"a": 1}] (1 row) 对于object-json,会删除重复的键值,只保留最后一个出现的,例如: 1 2 3 4 5 SELECT '{"a" : 1, "a" : 2}'::jsonb; jsonb ---------- {"a": 2} (1 row) 对于object-json,键值会重新进行排序,排序规则:长度长的在后、长度相等则ascii码大的在后,例如: 1 2 3 4 5 SELECT '{"aa" : 1, "b" : 2, "a" : 3}'::jsonb; jsonb --------------------------- {"a": 3, "b": 2, "aa": 1} (1 row)
  • 输入格式 json和jsonb输入必须是一个符合JSON数据格式的字符串,此字符串用单引号''声明。 null (null-json):仅null,全小写。 1 2 SELECT 'null'::json; -- suc SELECT 'NULL'::jsonb; -- err 数字 (num-json):正负整数、小数、0,支持科学计数法。 1 2 3 4 SELECT '1'::json; SELECT '-1.5'::json; SELECT '-1.5e-5'::jsonb, '-1.5e+2'::jsonb; SELECT '001'::json, '+15'::json, 'NaN'::json; -- 不支持多余的前导0,正数的+号,以及NaN和infinity。 布尔(bool-json):仅true、false,全小写。 1 2 SELECT 'true'::json; SELECT 'false'::jsonb; 字符串(str-json):必须是加双引号的字符串。 1 2 SELECT '"a"'::json; SELECT '"abc"'::jsonb; 数组(array-json):使用中括号[]包裹,满足数组书写条件。数组内元素类型可以是任意合法的JSON,且不要求类型一致。 1 2 3 SELECT '[1, 2, "foo", null]'::json; SELECT '[]'::json; SELECT '[1, 2, "foo", null, [[]], {}]'::jsonb; 对象(object-json):使用大括号{}包裹,键必须是满足JSON字符串规则的字符串,值可以是任意合法的JSON。 1 2 3 SELECT '{}'::json; SELECT '{"a": 1, "b": {"a": 2, "b": null}}'::json; SELECT '{"foo": [true, "bar"], "tags": {"a": 1, "b": null}}'::jsonb;
  • 示例 创建外表customer_ft,用来以TEXT格式导入GDS服务器10.10.123.234上的数据: 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 CREATE FOREIGN TABLE customer_ft ( c_customer_sk integer , c_customer_id char(16) , c_current_cdemo_sk integer , c_current_hdemo_sk integer , c_current_addr_sk integer , c_first_shipto_date_sk integer , c_first_sales_date_sk integer , c_salutation char(10) , c_first_name char(20) , c_last_name char(30) , c_preferred_cust_flag char(1) , c_birth_day integer , c_birth_month integer , c_birth_year integer , c_birth_country varchar(20) , c_login char(13) , c_email_address char(50) , c_last_review_date char(10) ) SERVER gsmpp_server OPTIONS ( location 'gsfs://10.10.123.234:5000/customer1*.dat', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal') READ ONLY; 创建外表foreign_HR_staffS_ft,用来以TEXT格式导入GDS服务器192.168.0.90和192.168.0.91上的数据,导入过程错误信息将记录到err_HR_staffS中。本次数据导入允许出现的数据格式错误个数为2。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE FOREIGN TABLE foreign_HR_staffS_ft ( staff_ID NUMBER(6) , FIRST_NAME VARCHAR2(20), LAST_NAME VARCHAR2(25), EMAIL VARCHAR2(25), PHONE_NUMBER VARCHAR2(20), HIRE_DATE DATE, employment_ID VARCHAR2(10), SALARY NUMBER(8,2), COMMISSION_PCT NUMBER(2,2), MANAGER_ID NUMBER(6), section_ID NUMBER(4) ) SERVER gsmpp_server OPTIONS (location 'gsfs://192.168.0.90:5000/* | gsfs://192.168.0.91:5000/*', format 'TEXT', delimiter E'\x08', null '',reject_limit '2') WITH err_HR_staffS_ft; 建立外表,用来以CSV格式导入input_data目录下存放在各个节点名文件下的所有文件。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE FOREIGN TABLE foreign_HR_staffS_ft1 ( staff_ID NUMBER(6) , FIRST_NAME VARCHAR2(20), LAST_NAME VARCHAR2(25), EMAIL VARCHAR2(25), PHONE_NUMBER VARCHAR2(20), HIRE_DATE DATE, employment_ID VARCHAR2(10), SALARY NUMBER(8,2), COMMISSION_PCT NUMBER(2,2), MANAGER_ID NUMBER(6), section_ID NUMBER(4) ) SERVER gsmpp_server OPTIONS (location 'file:///input_data/*', format 'csv', quote E'\x08', mode 'private', delimiter ',') WITH err_HR_staffS_ft1; 建立外表,用来以CSV格式导出数据到output_data目录下。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE FOREIGN TABLE foreign_HR_staffS_ft2 ( staff_ID NUMBER(6) , FIRST_NAME VARCHAR2(20), LAST_NAME VARCHAR2(25), EMAIL VARCHAR2(25), PHONE_NUMBER VARCHAR2(20), HIRE_DATE DATE, employment_ID VARCHAR2(10), SALARY NUMBER(8,2), COMMISSION_PCT NUMBER(2,2), MANAGER_ID NUMBER(6), section_ID NUMBER(4) ) SERVER gsmpp_server OPTIONS (location 'file:///output_data/', format 'csv', quote E'\x08', delimiter '|', header 'on') WRITE ONLY;
  • 语法格式 1 2 3 4 5 6 7 8 9 CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [ { column_name type_name POSITION(offset,length) | LIKE source_table } [, ...] ] ) SERVER gsmpp_server OPTIONS ( { option_name ' value ' } [, ...] ) [ { WRITE ONLY | READ ONLY }] [ WITH error_table_name | LOG INTO error_table_name] [REMOTE LOG 'name'] [PER NODE REJECT LIMIT 'value'] [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ];
  • 参数概览 创建外表语法提供了多个参数,常用参数分类如下。 必需参数 table_name column_name type_name SERVER gsmpp_server OPTIONS可选参数 外表的数据源位置参数location 数据格式参数 format header(仅支持CSV,FIXED格式) fileheader(仅支持CSV,FIXED格式) out_filename_prefix delimiter quote(仅支持CSV格式) escape(仅支持CSV格式) null noescaping(仅支持TEXT格式) encoding eol conflict_delimiter file_type auto_create_pipe del_pipe 容错性参数 fill_missing_fields ignore_extra_data reject_limit compatible_illegal_chars 性能参数 file_sequence 可选参数 WITH error_table_name LOG INTO error_table_name REMOTE LOG 'name' PER NODE REJECT LIMIT 'value'
  • 语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [ WITH [ RECURSIVE ] with_query [, ...] ] SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] { * | {expression [ [ AS ] output_name ]} [, ...] } INTO [ UNLOGGED ] [ TABLE ] new_table [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING condition [, ...] ] [ WINDOW {window_name AS ( window_definition )} [, ...] ] [ { UNION | INTERSECT | EXCEPT | MINUS } [ ALL | DISTINCT ] select ] [ ORDER BY {expression [ [ ASC | DESC | USING operator ] | nlssort_expression_clause ] [ NULLS { FIRST | LAST } ]} [, ...] ] [ { [ LIMIT { count | ALL } ] [ OFFSET start [ ROW | ROWS ] ] } | { LIMIT start, { count | ALL } } ] [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ] [ {FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ]} [...] ];
  • 参数说明 INTO [ UNLOGGED ] [ TABLE ] new_table UNLOGGED指定表为非日志表。写入非日志表中的数据不会写入到预写日志中,这样就会比普通表快很多。但是,非日志表也是不安全的,在冲突或异常关机后会被自动删截。非日志表中的内容也不会被复制到备用服务器中。在该类表中创建的索引也不会被自动记录。 new_table指定新建表的名字。 SELECT INTO的其它参数可参考SELECT的参数说明。
  • round(double precision or numeric) 描述:离输入参数最近的整数。 返回值类型:与输入相同。 示例: 1 2 3 4 5 6 7 8 9 10 11 SELECT round(42.4); round ------- 42 (1 row) SELECT round(42.6); round ------- 43 (1 row) 当调用round函数时,数值类型将向零舍入,而(在大多数计算机上) 实数和双精度型则以最接近的偶数为结果。
  • width_bucket(operand numeric, b1 numeric, b2 numeric, count int) 描述:设定分组范围的最小值、最大值和分组个数,构建指定个数的大小相同的分组,返回指定字段值落入的分组编号。b1为分组范围的最小值,b2为分组范围的最大值,count为分组的个数。 返回值类型:integer 示例: 1 2 3 4 5 SELECT width_bucket(5.35, 0.024, 10.06, 5); width_bucket -------------- 3 (1 row)
  • width_bucket(op double precision, b1 double precision, b2 double precision, count int) 描述:设定分组范围的最小值、最大值和分组个数,构建指定个数的大小相同的分组,返回指定字段值落入的分组编号。b1为分组范围的最小值,b2为分组范围的最大值,count为分组的个数。 返回值类型:integer 示例: 1 2 3 4 5 SELECT width_bucket(5.35, 0.024, 10.06, 5); width_bucket -------------- 3 (1 row)
  • log(double precision or numeric) 描述:以10为底的对数。 ORA和TD兼容模式下,表现为以10为底的对数。 MySQL兼容模式下,表现为自然对数。 返回值类型:与输入相同。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 -- ORA兼容模式 SELECT log(100.0); log -------------------- 2.0000000000000000 (1 row) -- TD兼容模式 SELECT log(100.0); log -------------------- 2.0000000000000000 (1 row) -- MySQL兼容模式 SELECT log(100.0); log -------------------- 4.6051701859880914 (1 row)
  • 命令参考 详细的gsql参数请参见表1、表2、表3和表4。 表1 常用参数 参数 参数说明 取值范围 -c, --command=COMMAND 声明gsql要执行一条字符串命令然后退出。 - -d, --dbname=DBNAME 指定想要连接的数据库名称。 另外,gsql允许使用扩展的DBNAME,即'postgres[ql]://[user[:password]@][netloc][:port][,...][/dbname][?param1=value1&...]'或'[key=value] [...]'形式的连接串作为DBNAME,gsql将从连接串中解析连接信息,并优先使用这些信息。 注意: gsql使用扩展的DBNAME创建连接时,不支持指定replication参数。 字符串。 -f, --file=FILENAME 使用文件作为命令源而不是交互式输入。gsql将在处理完文件后结束。如果FILENAME是-(连字符),则从标准输入读取。 绝对路径或相对路径,且满足操作系统路径命名规则。 -l, --list 列出所有可用的数据库,然后退出。 - -v, --set, --variable=NAME=VALUE 设置gsql变量NAME为VALUE。 变量的示例和详细说明请参见变量。 - -X, --no-gsqlrc 不读取启动文件(系统范围的gsqlrc或者用户的~/.gsqlrc都不读取)。 说明: 启动文件默认为~/.gsqlrc,或通过PSQLRC环境变量指定。 - -1 ("one"), --single-transaction 当gsql使用-f选项执行脚本时,会在脚本的开头和结尾分别加上START TRANSACTION/COMMIT用以把整个脚本当作一个事务执行。这将保证该脚本完全执行成功,或者脚本无效。 说明: 如果脚本中已经使用了START TRANSACTION,COMMIT,ROLLBACK,则该选项无效。 - -?, --help 显示关于gsql命令行参数的帮助信息然后退出。 - -V, --version 打印gsql版本信息然后退出。 - 表2 输入和输出参数 参数 参数说明 取值范围 -a, --echo-all 在读取行时向标准输出打印所有内容。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -e, --echo-queries 把所有发送给服务器的查询同时回显到标准输出。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -E, --echo-hidden 回显由\d和其他反斜杠命令生成的实际查询。 - -k, --with-key=KEY 使用gsql对导入的加密文件进行解密。 须知: 对于本身就是shell命令中的关键字符如单引号(')或双引号("),Linux shell会检测输入的单引号(')或双引号(")是否匹配。如果不匹配,shell认为用户没有输入完毕,会一直等待用户输入,从而不会进入到gsql程序。 不支持解密导入存储过程和函数。 - -L, --log-file=FILENAME 除了正常的输出源之外,把所有查询输出记录到文件FILENAME中。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 此参数只保留查询结果到相应文件中,主要目标是为了查询结果能够更好更准确地被其他调用者(例如自动化运维脚本)解析;而不是保留gsql运行过程中的相关日志信息。 绝对路径或相对路径,且满足操作系统路径命名规则。 -m, --maintenance 允许在两阶段事务恢复期间连接集群。 说明: 该选项是一个开发选项,禁止用户使用,只限专业技术人员使用,功能是:使用该选项时,gsql可以连接到备机,用于校验主备机数据的一致性。 - -n, --no-libedit 关闭命令行编辑。 - -o, --output=FILENAME 将所有查询输出重定向到文件FILENAME。 绝对路径或相对路径,且满足操作系统路径命名规则。 -q, --quiet 安静模式,执行时不会打印出额外信息。 缺省时gsql将打印许多其他输出信息。 -s, --single-step 单步模式运行。意味着每个查询在发往服务器之前都要提示用户,用这个选项也可以取消执行。此选项主要用于调试脚本。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -S, --single-line 单行运行模式,这时每个命令都将由换行符结束,像分号那样。 - -C,-C1, --enable-client-encryption=1 当使用-C参数连接本地数据库或者连接远程数据库时,可通过该选项打开密态数据库开关,此开关为密态等值查询基本能力开关。 - -C2,--enable-client-encryption = 2 当使用-C参数连接本地数据库或者连接远程数据库时,可通过该选项打开密态支持客户端排序的开关,支持密态等值查询基本能力以及客户端排序。 - -C3,--enable-client-encryption=3 当使用-C参数连接本地数据库或者连接远程数据库时,可通过该选项打开软硬融合密态数据库开关,支持密态等值查询基本能力以及软硬融合能力。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 - 表3 输出格式参数 参数 参数说明 取值范围 -A, --no-align 切换为非对齐输出模式。 缺省为对齐输出模式。 -F, --field-separator=STRING 设置域分隔符(默认为“|”)。 - -H, --html 打开HTML格式输出。 - -P, --pset=VAR[=ARG] 在命令行上以\pset的风格设置打印选项。 说明: 这里必须用等号而不是空格分隔名称和值。例如,把输出格式设置为LaTeX,可以键入-P format=latex - -R, --record-separator=STRING 设置记录分隔符。 - -r 开启在客户端操作中可以进行编辑的模式。 缺省为关闭。 -t, --tuples-only 只打印行。 - -T, --table-attr=TEXT 允许声明放在HTML table标签里的选项。 使用时请搭配参数“-H,--html”,指定为HTML格式输出。 - -x, --expanded 打开扩展表格式模式。 - -z, --field-separator-zero 设置非对齐输出模式的域分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -0, --record-separator-zero 设置非对齐输出模式的记录分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -2, --pipeline 使用管道传输密码,禁止在终端使用,必须和-c或者-f参数一起使用。 - -g, 打印来自文件的所有SQL。 - 表4 连接参数 参数 参数说明 取值范围 -h, --host=HOSTNAME 指定正在运行服务器的主机名、Unix域套接字的路径、或者域名。接受以“,”分割的字符串来指定多个主机地址,支持指定多个主机地址。 当指定多个主机地址时,默认情况下会跳过故障的节点,自动选择第一个可用的主节点进行连接。可通过设置PGTARGETSESSIONATTRS环境变量的值来选择连接到不同类型的节点,变量与节点类型对应的关系如下: PGTARGETSESSIONATTRS环境变量的值--选择连接的节点类型 read-write--可读写的节点 read-only--只读节点 primary或者不设定--主节点 standby--备节点 prefer-standby--首选备节点,没有备节点则转为any any--不进行角色检查 说明: 主CN节点和主DN节点都是主节点,一般情况下DN节点都是只读节点,可以通过设置PGTARGETSESSIONATTRS为read-write来选择连接到CN节点。 如果省略主机名,gsql将通过Unix域套接字与本地主机的服务器相联,或者在没有Unix域套接字的机器上,通过TCP/IP与localhost连接。 -p, --port=PORT 指定数据库服务器的端口号。可以配置一个或多个,当配置一个时,所有的主机地址都使用同一个端口连接;当配置多个时,顺序与主机地址顺序相同,个数必须与主机地址数相等,当不相等时会报错。 可以通过port参数修改默认端口号。 默认端口可通过编译参数来指定,不指定的话默认为5432。 -U, --username=USERNAME 指定连接数据库的用户。 说明: 通过该参数指定用户连接数据库时,需要同时提供用户密码用以身份验证。您可以通过交换方式输入密码,或者通过-W参数指定密码。 用户名中包含有字符$,需要在字符$前增加转义字符才可成功连接数据库。 字符串,默认使用与当前操作系统用户同名的用户。 -W, --password=PASSWORD 当使用-U参数连接本地数据库或者连接远端数据库时,可通过该选项指定密码。 说明: 登录CN所在服务器后连接本地CN实例时,默认使用trust连接,会忽略此参数。 用户密码中包含特殊字符“\”和"`"时,需要增加转义字符才可成功连接数据库。 如果用户未输入该参数,但是数据库连接需要用户密码,这时将出现交互式输入,请用户输入当前连接的密码。该密码最长长度为999字节,受限于GUC参数password_max_length的最大值。 字符串。 父主题: gsql
  • 任务示例 使用如下命令连接数据库。 gsql -d gaussdb -p 8000 gaussdb为需要连接的数据库名称,8000为CN的端口号。 连接成功后,系统显示类似如下信息: gsql ((GaussDB Kernel 503.1.XXX build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. 查看gsql的帮助信息。具体执行命令请参见表1。 表1 使用gsql联机帮助 描述 示例 查看版权信息 \copyright 查看GaussDB支持的SQL语句的帮助 查看GaussDB支持的SQL语句的帮助 例如,查看GaussDB支持的所有SQL语句: 1 2 3 4 5 6 gaussdb=# \h Available help: ABORT ALTER AGGREGATE ALTER APP WORKLOAD GROUP ... ... 例如,查看CREATE DATABASE命令的参数可使用下面的命令: 1 2 3 4 5 6 7 8 9 10 11 12 13 gaussdb=# \help CREATE DATABASE Command: CREATE DATABASE Description: create a new database Syntax: CREATE DATABASE database_name [ [ WITH ] {[ OWNER [=] user_name ]| [ TEMPLATE [=] template ]| [ ENCODING [=] encoding ]| [ LC_COLLATE [=] lc_collate ]| [ LC_CTYPE [=] lc_ctype ]| [ DBCOMPATIBILITY [=] compatibility_type ]| [ TABLESPACE [=] tablespace_name ]| [ CONNECTION LIMIT [=] connlimit ]}[...] ]; 查看gsql命令的帮助 例如,查看gsql支持的命令: 1 2 3 4 5 6 7 gaussdb=# \? General \copyright show GaussDB Kernel usage and distribution terms \g [FILE] or ; execute query (and send results to file or |pipe) \h(\help) [NAME] help on syntax of SQL commands, * for all commands \q quit gsql ... ...
  • 参数说明 表2 gs_ktool参数说明 参数 参数说明 参数类型 : 取值范围 -g 生成单个密钥,可在配置文件中配置默认的CMK长度。 - -l CMK_LENTH 配合-g使用,可指定生成的CMK长度。 整型 : [16, 112] bytes -d CMK_ID 删除指定CMK。 整型 : [1, 4095]; 字符型 : all -s CMK_ID 查询指定CMK的信息,不包含CMK明文或密文。 整型 : [1, 4095]; 字符型 : all -e 导出当前gs_ktool中的全部密钥到文件中,可使用-f指定导出文件。 - -i 从指定密钥文件中导入全部密钥,必须使用-f指定密钥文件;请注意该操作的覆盖特性。 - -f FILE 配合-i和-e使用,指定密钥文件的位置 (可指定绝对路径或相对路径,但必须是已存在的路径;当配合-e使用时,如果指定的文件不存在,则新建,如果已存在,则会覆盖)。 字符型 : 绝对路径/日志文件名 -p FILE_PASSWORD 配和-i和-e使用,输入密钥文件的口令 (如果未使用该参数,则默认使用交互式口令输入方式)。 字符型 : 长度区间为[8, 255],且至少包含3种类型的字符。 -R -u 轮转(更新)RK;该操作会更新CMK的密文。 - -R -s 查询RK的信息,不包含RK的明文或密文。 - -v 查看版本信息。 - -h, -? 查看使用帮助。 - 在使用gs_ktool -d all命令删除全部密钥时,命令执行的过程中,如果同时使用gs_ktool -g命令生成密钥,新生成的密钥可能会被删除。
  • 功能介绍 gs_ktool为客户端提供CMK明文,以保证其能够对CEK的进行加解密;与此同时,gs_ktool还为用户提供人机交互接口,以支持以下功能: 支持管理CMK:创建、删除、查询、导入和导出CMK。其中,查询功能不支持查询CMK的明文或者密文。目前,gs_ktool不支持更新CMK,用户仅能通过删除旧的密钥,并创建新的密钥以达到同等的效果; 全密态当前仅支持华为云KMS,gs_ktool不具备自动备份密钥能力,一旦密钥丢失,则数据无法恢复,建议gs_ktool仅作为验证与调试使用。 如果用户需要将gs_ktool中密钥进行备份,请手工执行密钥导出命令。并请注意,在进行密钥导入时,会覆盖当前gs_ktool中保存的所有密钥,请谨慎使用。 支持管理RK:查询、更新RK; 支持查询操作日志:针对上述对密钥进行管理的操作,gs_ktool均会记录相关的操作日志,用户可查看日志文件。
  • 环境变量 GS_KTOOL_FILE_PATH:gs_ktool运行时需要读取配置文件gs_ktool_conf.ini,使用GS_KTOOL_FILE_PATH来设置配置文件的路径。默认情况下,运行gs_ktool时生成的密钥存储文件和日志文件也会存储在该路径下。 解压GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_gsql.tar.gz包后,可在gs_ktool_file路径下找到gs_ktool_conf.ini配置文件,该文件中所有配置项已设置缺省值;另外,通过指令"source gsql_env.sh"可配置环境变量$GS_KTOOL_FILE_PATH。 表1 gs_ktool_conf.ini配置文件说明 配置项 配置项说明 参数类型 : 取值范围 rk_validity 生成RK时,默认的有效期(该配置项仅在生成RK时有效,即生成密钥文件时)。 整型 : [1, 10000] days cmk_validity 生成CMK时,默认的有效期。 整型 : [1, 3660] days cmk_length 生成CMK时,默认的密钥长度。 整型 : [16, 112] bytes pri_ksf 密钥存储文件。 字符型 : 绝对路径/密钥文件名 sec_ksf 备份的密钥存储文件。 字符型 : 绝对路径/密钥文件名 export_ksf 导出密钥时,默认的密钥存储文件。 字符型 : 绝对路径/密钥文件名 is_logmodule_open 是否打开日志记录功能。 字符型 : {ON, OFF} log_file 日志文件 字符型 :绝对路径/日志文件名
  • 任务示例 使用如下命令连接数据库。 gsql -d gaussdb -p 8000 gaussdb为需要连接的数据库名称,8000为CN的端口号。 连接成功后,系统显示类似如下信息: gsql ((GaussDB Kernel 503.1.XXX build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. 查看gsql的帮助信息。具体执行命令请参见表1。 表1 使用gsql联机帮助 描述 示例 查看版权信息 \copyright 查看GaussDB支持的SQL语句的帮助 查看GaussDB支持的SQL语句的帮助 例如,查看GaussDB支持的所有SQL语句: 1 2 3 4 5 6 gaussdb=# \h Available help: ABORT ALTER AGGREGATE ALTER APP WORKLOAD GROUP ... ... 例如,查看CREATE DATABASE命令的参数可使用下面的命令: 1 2 3 4 5 6 7 8 9 10 11 12 13 gaussdb=# \help CREATE DATABASE Command: CREATE DATABASE Description: create a new database Syntax: CREATE DATABASE database_name [ [ WITH ] {[ OWNER [=] user_name ]| [ TEMPLATE [=] template ]| [ ENCODING [=] encoding ]| [ LC_COLLATE [=] lc_collate ]| [ LC_CTYPE [=] lc_ctype ]| [ DBCOMPATIBILITY [=] compatibility_type ]| [ TABLESPACE [=] tablespace_name ]| [ CONNECTION LIMIT [=] connlimit ]}[...] ]; 查看gsql命令的帮助 例如,查看gsql支持的命令: 1 2 3 4 5 6 7 gaussdb=# \? General \copyright show GaussDB Kernel usage and distribution terms \g [FILE] or ; execute query (and send results to file or |pipe) \h(\help) [NAME] help on syntax of SQL commands, * for all commands \q quit gsql ... ...
  • 参数说明 表2 gs_ktool参数说明 参数 参数说明 参数类型 : 取值范围 -g 生成单个密钥,可在配置文件中配置默认的CMK长度。 - -l CMK_LENTH 配合-g使用,可指定生成的CMK长度。 整型 : [16, 112] bytes -d CMK_ID 删除指定CMK。 整型 : [1, 4095]; 字符型 : all -s CMK_ID 查询指定CMK的信息,不包含CMK明文或密文。 整型 : [1, 4095]; 字符型 : all -e 导出当前gs_ktool中的全部密钥到文件中,可使用-f指定导出文件。 - -i 从指定密钥文件中导入全部密钥,必须使用-f指定密钥文件;请注意该操作的覆盖特性。 - -f FILE 配合-i和-e使用,指定密钥文件的位置(可指定绝对路径或相对路径,但必须是已存在的路径;当配合-e使用时,如果指定的文件不存在,则新建,如果已存在,则会覆盖)。 字符型 : 绝对路径/日志文件名 -p FILE_PASSWORD 配和-i和-e使用,输入密钥文件的口令(如果未使用该参数,则默认使用交互式口令输入方式)。 字符型 : 长度区间为[8, 255],且至少包含3种类型的字符。 -R -u 轮转(更新)RK;该操作会更新CMK的密文。 - -R -s 查询RK的信息,不包含RK的明文或密文。 - -v 查看版本信息。 - -h, -? 查看使用帮助。 - 在使用gs_ktool -d all命令删除全部密钥时,命令执行的过程中,如果同时使用gs_ktool -g命令生成密钥,新生成的密钥可能会被删除。
  • 环境变量 GS_KTOOL_FILE_PATH:gs_ktool运行时需要读取配置文件gs_ktool_conf.ini,使用GS_KTOOL_FILE_PATH来设置配置文件的路径。默认情况下,运行gs_ktool时生成的密钥存储文件和日志文件也会存储在该路径下。 解压GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_gsql.tar.gz包后,可在gs_ktool_file路径下找到gs_ktool_conf.ini配置文件,该文件中所有配置项已设置缺省值;另外,通过指令"source gsql_env.sh"可配置环境变量$GS_KTOOL_FILE_PATH。 表1 gs_ktool_conf.ini配置文件说明 配置项 配置项说明 参数类型 : 取值范围 rk_validity 生成RK时,默认的有效期(该配置项仅在生成RK时有效,即生成密钥文件时)。 整型 : [1, 10000] days cmk_validity 生成CMK时,默认的有效期。 整型 : [1, 3660] days cmk_length 生成CMK时,默认的密钥长度。 整型 : [16, 112] bytes pri_ksf 密钥存储文件。 字符型 : 绝对路径/密钥文件名 sec_ksf 备份的密钥存储文件。 字符型 : 绝对路径/密钥文件名 export_ksf 导出密钥时,默认的密钥存储文件。 字符型 : 绝对路径/密钥文件名 is_logmodule_open 是否打开日志记录功能。 字符型 : {ON, OFF} log_file 日志文件。 字符型 :绝对路径/日志文件名
共100000条