云服务器内容精选

  • 请求示例 插入数据单条数据,列column1、column2、column3的值分别为1000、str2、1.1 https://eihealth.cn-north-4.myhuaweicloud.com/v1/{project_id}/eihealth-projects/{eihealth_project_id}/databases/{database_id}/data/insert { "column_values" : [ { "column" : "column1", "value" : "1000" }, { "column" : "column2", "value" : "str2" }, { "column" : "column3", "value" : "1.1" } ] }
  • URI POST /v1/{project_id}/eihealth-projects/{eihealth_project_id}/databases/{database_id}/data/insert 表1 路径参数 参数 是否必选 参数类型 描述 eihealth_project_id 是 String 平台项目ID,您可以在平台单击所需的项目名称,进入项目设置页面查看。 最小长度:1 最大长度:128 project_id 是 String 华为云项目ID,您可以从获取项目ID中获取。 最小长度:1 最大长度:128 database_id 是 String 数据库实例id 最小长度:1 最大长度:128
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限,获取Token接口响应消息头中X-Subject-Token的值即为Token。 最小长度:1 最大长度:32768 表3 请求Body参数 参数 是否必选 参数类型 描述 column_values 是 Array of ColumnValueDto objects 列及对应值列表 数组长度:1 - 100 表4 ColumnValueDto 参数 是否必选 参数类型 描述 column 是 String 列名 最小长度:1 最大长度:63 value 否 String 该列对应的值 最小长度:0 最大长度:1073741824
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限,获取Token接口响应消息头中X-Subject-Token的值即为Token。 最小长度:1 最大长度:32768 表3 请求Body参数 参数 是否必选 参数类型 描述 source_project_id 是 String 源项目id 最小长度:1 最大长度:128 source_databases 是 Array of DatabaseSrcReq objects 源数据库列表 数组长度:1 - 10 表4 DatabaseSrcReq 参数 是否必选 参数类型 描述 source_database_id 是 String 源数据库id 最小长度:1 最大长度:128
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 [数组元素] Array of QuoteDatabaseResultRsp objects OK 表6 QuoteDatabaseResultRsp 参数 参数类型 描述 source_project_id String 源项目id source_database_id String 源数据库id destination_database_id String 引用到项目后的数据库id destination_database_name String 引用到项目后的数据库名称 failed_reason String 失败原因 status String 导入结果 状态码: 207 表7 响应Body参数 参数 参数类型 描述 [数组元素] Array of QuoteDatabaseResultRsp objects MULTI_STATUS 表8 QuoteDatabaseResultRsp 参数 参数类型 描述 source_project_id String 源项目id source_database_id String 源数据库id destination_database_id String 引用到项目后的数据库id destination_database_name String 引用到项目后的数据库名称 failed_reason String 失败原因 status String 导入结果
  • 响应示例 状态码: 200 OK [ { "source_project_id" : "56e0f1b0-ac10-46a5-8fa7-b26831d7d488", "source_database_id" : "77e0f1b0-ac10-46a5-8fa7-b26831d7d488", "destination_database_id" : "25e0f1b0-ac10-46a5-8fa7-b26831d7d488", "destination_database_name" : "database_name", "failed_reason" : null, "status" : "success" } ] 状态码: 207 MULTI_STATUS [ { "source_project_id" : "55e0f1b0-ac10-46a5-8fa7-b26831d7d488", "source_database_id" : "36e0f1b0-ac10-46a5-8fa7-b26831d7d488", "destination_database_id" : "26e0f1b0-ac10-46a5-8fa7-b26831d7d488", "destination_database_name" : "database_name", "failed_reason" : "failed reason", "status" : "fail" } ]
  • URI POST /v1/{project_id}/eihealth-projects/{eihealth_project_id}/databases/batch-quote 表1 路径参数 参数 是否必选 参数类型 描述 eihealth_project_id 是 String 平台项目ID,您可以在平台单击所需的项目名称,进入项目设置页面查看。 最小长度:1 最大长度:128 project_id 是 String 华为云项目ID,您可以从获取项目ID中获取。 最小长度:1 最大长度:128
  • 请求示例 引用数据库实例,源项目ID为3b8771e4-b3c7-41d5-b29e-36906eef6778,源数据库实例ID为4b8771e4-b3c7-41d5-b29e-36906eef6776 { "source_project_id" : "3b8771e4-b3c7-41d5-b29e-36906eef6778", "source_databases" : [ { "source_database_id" : "4b8771e4-b3c7-41d5-b29e-36906eef6776" } ] }
  • 请求示例 创建数据库,数据库名称为database_name,选择css集群,上传项目桶中file/test.csv的数据库数据,设置列名为SMILES和NAME,打开共享开关。 https://{endpoint}/v1/{project_id}/drug/drug-database { "name" : "database_name", "css_id" : "2f042ad4-6aca-11ed-b7f6-fa163e504fdd", "description" : "simple database", "file" : { "source" : "PRIVATE", "url" : "project:/file/test.csv", "eihealth_project_id" : "baabcb56-5bb6-11eb-8a0d-fa163e3ddba1" }, "columns" : [ "SMILES", "NAME" ], "shareable" : true }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限,获取Token接口响应消息头中X-Subject-Token的值即为Token。 最小长度:1 最大长度:32768 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 数据库名称,长度为5-32个字符,首位需以小写英文字母开头,仅可以使用小写字母、数字、下划线“_”和中划线“-”。 最小长度:5 最大长度:32 description 否 String 数据库描述。 最小长度:0 最大长度:1024 css_id 是 String css集群id。 最小长度:1 最大长度:128 file 是 DatabaseFile object 数据库文件。 columns 是 Array of strings 数据文件列名。 最小长度:1 最大长度:128 数组长度:2 - 12 shareable 否 Boolean 是否打开组织共享。 缺省值:false 表4 DatabaseFile 参数 是否必选 参数类型 描述 source 是 String 数据库文件来源。 枚举值: public private url 是 String 文件URL,用户私有数据中心为项目路径、公共数据场景为obs地址。 最小长度:1 最大长度:2000 eihealth_project_id 否 String 数据库文件所在项目id,仅文件为数据中心时填写。 最小长度:1 最大长度:128
  • 步骤三:创建资源池 登录GaussDB(DWS) 管理控制台,在集群列表中单击集群名称,切换至“资源管理”页签。 单击“添加资源池”创建资源池。参见场景介绍的模型分别创建报表业务资源池pool_1和核心交易资源池pool_2。 修改异常规则。 单击创建好的pool_1资源池。 在异常规则中,修改“阻塞时间”和“执行所消耗时间”分别为1200s和1800s。 单击“保存”。 重复以上步骤,修改pool_2。 关联用户。 左侧单击“pool_1”资源池。 单击“关联用户”右侧的“添加”。 勾选报表业务对应的用户report_user,单击“确定”。 重复以上步骤,将核心交易的用户budget_config_user添加入pool_2的资源池中。
  • 步骤四:异常规则验证 使用用户report_user登录数据库。 执行如下命令查看用户report_user所属资源池。 1 SELECT usename,respool FROM pg_user WHERE usename = 'report_user'; 查询显示用户report_user所属资源池为pool_1。 校验资源池pool_1所绑定的异常规则。 1 SELECT respool_name,mem_percent,active_statements,except_rule FROM pg_resource_pool WHERE respool_name='pool_1'; 确认资源池pool_1所绑定的是异常规则rule_1。 查看当前用户异常规则的规则类型和阈值。 1 SELECT * FROM pg_except_rule WHERE name = 'rule_1'; 查询显示rule_1中所绑定的规则为3设置的“阻塞时间1200秒,运行时长1800秒”,则会终止查询。 PG_EXCEPT_RULE系统表存储关于异常规则的信息,该系统表仅8.2.0及以上集群版本支持。 同一条异常规则内的参数项相互之间为且的关系。 执行作业,当运行时长超过“阻塞时间1200秒,运行时长1800秒”时,报错提示作业被取消并提示所触发的异常规则限制。 作业执行过程中,如果出现类似“ERROR: canceling statement due to workload manager exception.”的报错信息,表示该作业超过异常规则的规则阈值限制被终止。若规则设置合理,那么就需要考虑从业务角度进行语句优化,减少执行时间。
  • 步骤二:连接集群并导入数据 参见使用gsql命令行客户端连接集群连接集群。 导入样例数据。参见导入TPC-H数据。 执行以下语句创建核心交易用户budget_config_user和报表用户report_user。 1 2 CREATE USER budget_config_user PASSWORD 'password'; CREATE USER report_user PASSWORD 'password'; 为测试需要,将tpch模式下所有表的所有权限授予两个用户。 1 GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA tpch to budget_config_user,report_user; 查看当前两个用户的资源分配情况。 1 SELECT * FROM PG_TOTAL_USER_RESOURCE_INFO where username in ('budget_config_user' , 'report_user');
  • 场景介绍 当有多个数据库用户同时在GaussDB(DWS)上执行SQL作业时,可能出现以下情况: 一些复杂SQL可能会长时间占用集群资源,从而影响其他查询的性能。例如一组数据库用户不断提交复杂、耗时的查询,而另一组用户经常提交短查询。在这种情况下,短时查询可能不得不在资源池中等待耗时查询完成。 一些SQL由于数据倾斜、执行计划未调优等原因,占用过多内存空间,导致其他语句因申请不到内存而报错,或占用过多磁盘空间,导致磁盘满而触发集群只读,无法进行写入。 为了提高系统整体吞吐量,避免坏SQL影响系统整体运行,您可以使用GaussDB(DWS)工作负载管理功能处理这类问题,例如,将经常提交复杂查询作业的数据库用户分为一类,为这类用户创建一个资源池并给这个资源池分配多一些的资源,之后将这类用户添加至这个资源池中,那么这类用户所提交的复杂作业只能使用所创建资源池拥有的资源;同时再创建一个占用资源较少的资源池分配给执行短查询的用户使用,这样两种作业就能够同时执行互不影响。 以xx银行为例,该银行业务场景主要分为联机交易(OLTP)和报表分析(OLAP)两大类,其中报表服务的优先级相对较低,在合理的情况下优先保障业务系统的正常运行。业务系统中运行的SQL分为简单SQL和复杂SQL,大量复杂SQL的并发执行会导致数据库服务器资源争抢,简单SQL的大量并发对服务器不构成持续压力,短时间内可执行完成,不会造成业务堆积。其中报表服务中运行的SQL以复杂SQL居多,整体业务逻辑相对复杂,在数据库层面需要分别对核心交易和报表服务进行合理的资源管控,以保障业务系统正常运行。 报表分析类业务的优先级和实时性相对较低,但是复杂度更高,为有效进行资源管控,将报表分析和核心交易业务进行数据库用户分离,例如核心交易业务使用数据库用户budget_config_user,报表分析业务使用数据库用户report_user。针对交易用户和报表用户分别进行CPU资源和并发数控制以保障数据库稳定运行。 结合报表分析业务的负载调研、日常监控和测试验证,50并发以内的复杂报表SQL不会引起服务器资源争抢,不会引起业务系统卡慢,配置报表用户可使用20%的CPU资源。 结合核心交易业务的负载调研、日常监控和测试验证,100并发以内的查询SQL不会对系统造成持续压力,配合交易用户可使用60%的CPU资源。 报表用户资源配置(对应资源池pool_1):CPU=20%,内存=20%,存储=1024000MB,并发=20。 交易用户资源配置(对应资源池pool_2):CPU=60%,内存=60%,存储=1024000MB,并发=200。 设置单个语句最大内存使用量,超过使用量则报错退出,避免单个语句占用过多内存。 异常规则中设置阻塞时间=1200S,执行所消耗时间1800s,强制终止。
  • SET CHARACTER DSC工具迁移时会将MySQL SET CHARACTER SET语句迁移为SET SESSION NAMES。字符集对照如下表。 表1 字符集对照表 MySQL CHARACTER SET GaussDB(DWS) SESSION NAMES ASCII SQL_ASCII BIG5 BIG5 CP1250 WIN1250 CP1251 WIN1251 CP1256 WIN1256 CP1257 WIN1257 CP932 SJIS EUCJPMS EUC_JP EUCKR EUC_KR GB2312 GB18030 GBK GBK GREEK ISO_8859_7 HEBREW ISO_8859_8 KOI8R KOI8R KOI8U KOI8U LATIN1 LATIN1 LATIN2 LATIN2 LATIN5 LATIN5 LATIN7 LATIN7 SJIS SJIS SWE7 UTF8 TIS620 WIN874 UTF8 UTF8 UTF8MB4 UTF8 输入示例 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 SET CHARACTER SET 'ASCII'; SET CHARACTER SET 'BIG5'; SET CHARACTER SET 'CP1250'; SET CHARACTER SET 'CP1251'; SET CHARACTER SET 'CP1256'; SET CHARACTER SET 'CP1257'; SET CHARACTER SET 'CP932'; SET CHARACTER SET 'EUCJPMS'; SET CHARACTER SET 'EUCKR'; SET CHARACTER SET 'GB2312'; SET CHARACTER SET 'GBK'; SET CHARACTER SET 'GREEK'; SET CHARACTER SET 'HEBREW'; SET CHARACTER SET 'KOI8R'; SET CHARACTER SET 'KOI8U'; SET CHARACTER SET 'LATIN1'; SET CHARACTER SET 'LATIN2'; SET CHARACTER SET 'LATIN5'; SET CHARACTER SET 'LATIN7'; SET CHARACTER SET 'SJIS'; SET CHARACTER SET 'SWE7'; SET CHARACTER SET 'TIS620'; SET CHARACTER SET 'UTF8'; SET CHARACTER SET 'UTF8MB4'; ##mysql中不支持 SET CHARACTER SET 'UCS2'; ##mysql中不支持SET CHARACTER SET 'UTF16'; ##mysql中不支持SET CHARACTER SET 'UTF16LE'; ##mysql中不支持SET CHARACTER SET 'UTF32'; 输出示例 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 SET SESSION NAMES 'SQL_ASCII'; SET SESSION NAMES 'BIG5'; SET SESSION NAMES 'WIN1250'; SET SESSION NAMES 'WIN1251'; SET SESSION NAMES 'WIN1256'; SET SESSION NAMES 'WIN1257'; SET SESSION NAMES 'SJIS'; SET SESSION NAMES 'EUC_JP'; SET SESSION NAMES 'EUC_KR'; SET SESSION NAMES 'GB18030'; SET SESSION NAMES 'GBK'; SET SESSION NAMES 'ISO_8859_7'; SET SESSION NAMES 'ISO_8859_8'; SET SESSION NAMES 'KOI8R'; SET SESSION NAMES 'KOI8U'; SET SESSION NAMES 'LATIN1'; SET SESSION NAMES 'LATIN2'; SET SESSION NAMES 'LATIN5'; SET SESSION NAMES 'LATIN7'; SET SESSION NAMES 'SJIS'; SET SESSION NAMES 'UTF8'; SET SESSION NAMES 'WIN874'; SET SESSION NAMES 'UTF8'; SET SESSION NAMES 'UTF8'; --mysql中不支持 SET CHARACTER SET 'UCS2'; --mysql中不支持SET CHARACTER SET 'UTF16'; --mysql中不支持SET CHARACTER SET 'UTF16LE'; --mysql中不支持SET CHARACTER SET 'UTF32'; 父主题: 数据库管理