华为云用户手册

  • 响应示例 同步请求成功响应样例: { "is_success": true, "message": "", "schema": [ { "id": "int" }, { "name": "string" }, { "address": "string" } ], "rows": [ [ "1", "John", "xxx" ], [ "2", "Lily", "xxx" ] ] } 如果为异步请求模式,则返回一个job ID,用户可再根据job ID获取预览信息。
  • 操作步骤 创建弹性资源池elastic_pool_dli 接口相关信息 URI格式:POST /v3/{project_id}/elastic-resource-pools {project_id}信息请从获取项目ID获取。 请求参数说明详情,请参见创建弹性资源池。 请求示例 描述:在项目ID为48cc2c48765f481480c7db940d6409d1的项目下创建一个名称为elastic_pool_dli的弹性资源池。 示例URL:POST https://{endpoint}/v3/48cc2c48765f481480c7db940d6409d1/elastic-resource-pools {endpoint}信息请从地区和终端节点获取。 Body: { "elastic_resource_pool_name" : "elastic_pool_dli", "description" : "test", "cidr_in_vpc" : "172.16.0.0/14", "charging_mode" : "1", "max_cu" : 64, "min_cu" : 64} 响应示例 { "is_success": true, "message": ""} 在弹性资源池中添加队列queue1 接口相关信息 URI格式:POST /v1.0/{project_id}/queues {project_id}信息请从获取项目ID获取。 请求参数说明详情,请参见创建队列。 请求示例 描述:在项目ID为48cc2c48765f481480c7db940d6409d1的项目下创建一个名称为queue1的弹性资源池。 示例URL:POST https://{endpoint}/v1.0/48cc2c48765f481480c7db940d6409d1/queues {endpoint}信息请从地区和终端节点获取。 Body: { "queue_name": "queue1", "queue_type": "sql", "description": "test", "cu_count": 16, "enterprise_project_id": "elastic_pool_dli"} 响应示例 { "is_success": true, "message": ""} 上传Flink自定义作业资源包。具体请参考3 查询组内资源包。具体请参考4 创建Flink自定义作业。 接口相关信息 URI格式:POST /v1.0/{project_id}/streaming/flink-jobs {project_id}信息请从获取项目ID获取。 请求参数说明详情,请参见创建数据库(废弃)。 请求示例 描述:在项目ID为48cc2c48765f481480c7db940d6409d1项目下,创建Flink自定义作业。 示例URL:POST https://{endpoint}/v1.0/48cc2c48765f481480c7db940d6409d1/streaming/flink-jobs {endpoint}信息请从地区和终端节点获取。 Body: { "name": "test", "desc": "job for test", "queue_name": "queue1", "manager_cu_number": 1, "cu_number": 2, "parallel_number": 1, "tm_cus": 1, "tm_slot_num": 1, "log_enabled": true, "obs_bucket": "bucketName", "smn_topic": "topic", "main_class": "org.apache.flink.examples.streaming.JavaQueueStream", "restart_when_exception": false, "entrypoint": "javaQueueStream.jar", "entrypoint_args":"-windowSize 2000 -rate3", "dependency_jars": [ "myGroup/test.jar", "myGroup/test1.jar" ], "dependency_files": [ "myGroup/test.csv", "myGroup/test1.csv" ]} 响应示例 { "is_success": true, "message": "新建flink作业成功", "job": { "job_id": 138, "status_name": "job_init", "status_desc": "" }} 批量运行作业。 接口相关信息 URI格式:POST /v1.0/{project_id}/streaming/jobs/run {project_id}信息请从获取项目ID获取。 请求参数说明详情,请参见批量运行作业。 请求示例 描述:在项目ID为48cc2c48765f481480c7db940d6409d1项目下,运行job_id为298765和298766的作业。 示例URL:POST https://{endpoint}/v1.0/48cc2c48765f481480c7db940d6409d1/streaming/jobs/run {endpoint}信息请从地区和终端节点获取。 Body: { "job_ids": [131,130,138,137], "resume_savepoint": true} 响应示例 [ { "is_success": "true", "message": "作业提交请求下发成功" }, { "is_success": "true", "message": "作业提交请求下发成功" }, { "is_success": "true", "message": "作业提交请求下发成功" }, { "is_success": "true", "message": "作业提交请求下发成功" }]
  • URI URI格式: GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview 参数说明 表1 URI 参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 database_name 是 String 待预览的表所在的数据库名称。 table_name 是 String 待预览的表名称。 表2 query参数 参数名称 是否必选 参数类型 说明 mode 否 String 预览表的模式,取值为““SYNC””或者““ASYNC””默认值为:“SYNC”。 带入query参数的URL示例如下: GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview?mode={previewMode}
  • URI URI格式: DELETE /v3/{project_id}/datasource/enhanced-connections/{connection_id}/routes/{name} 参数说明 表1 URI参数说明 参数 是否必选 参数类型 描述 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 connection_id 是 String 跨源id。 name 是 String 路由名称。
  • 响应示例 同步方式请求成功响应样例: { "is_success": true, "message": "", "job_mode": "sync"} 异步方式请求成功响应样例: { "is_success": true, "message": "", "job_id": "208b08d4-0dc2-4dd7-8879-ddd4c020d7aa", "job_type": "DDL", "job_mode": "async"} 如果通过异步方式删除数据库,可以通过查询作业状态接口查看当前作业的状态,详细介绍参见查询作业状态。 如果强制删除数据库cascade=true,则会级联删除该数据库下面的所有表,需要谨慎使用。
  • URI URI格式: DELETE /v1.0/{project_id}/databases/{database_name} 参数说明 表1 URI 参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 database_name 是 String 删除的数据库名称。 表2 query 参数 参数名称 是否必选 参数类型 说明 cascade 否 Boolean 是否强制删除数据库,取值为“true”或者“false”。默认值为:false。 async 否 Boolean 是否异步方式删除数据库,取值为“true”或者“false”。默认值为:false。 带入query参数的URL示例如下: DELETE /v1.0/{project_id}/databases/{database_name}?cascade={is_cascade}&async={is_asyn}
  • 响应消息 表3 响应参数 参数名称 是否必选 参数类型 说明 is_success 否 Boolean 执行请求是否成功。“true”表示请求执行成功。 message 否 String 系统提示信息,执行成功时,信息为空。 job_id 否 String 返回作业的ID,可用于获取作业状态和作业结果。 job_type 否 String 作业类型。 DDL DCL IMPORT EXPORT QUERY INSERT job_mode 否 String 作业执行模式: async:异步 sync:同步
  • 错误响应Body体格式说明 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_msg": "The format of message is error", "error_code": " DLI .0001"} 其中,error_code表示错误码,error_msg表示错误描述信息。 表1 异常响应说明 名称 参数类型 说明 error_code String 错误码,请参见表2。 error_msg String 错误详细信息。
  • 响应示例 { "is_success": true, "message": "", "database_name": "dsstest", "privileges": [ { "is_admin": true, "privileges": [ "ALL" ], "user_name": "test" }, { "is_admin": false, "privileges": [ "ALTER_TABLE_ADD_PARTITION" ], "user_name": "scuser1" }, { "is_admin": false, "privileges": [ "CREATE_TABLE" ], "user_name": "scuser2" } ]} 调用API出错后,将不会返回上述结果,而是返回错误码和错误信息,详细介绍请参见错误码。
  • 错误码说明 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 表2 错误码 状态码 错误码 错误信息 400 DLI.0001 参数校验错误。 400 DLI.0002 对象不存在。 400 DLI.0003 SQL权限校验未通过。 400 DLI.0004 SQL语法解析错误。 400 DLI.0005 SQL语义解析错误。 400 DLI.0006 对象已存在错误。 400 DLI.0007 不支持该操作。 400 DLI.0008 元数据错误。 400 DLI.0009 系统限制。 400 DLI.0011 文件权限校验错误。 400 DLI.0012 资源对象不可用。 401 DLI.0013 用户认证错误。 401 DLI.0014 服务认证错误。 400 DLI.0015 Token解析错误。 400 DLI.0016 身份角色错误。 400 DLI.0018 数据转换错误。 400 DLI.0019 任务超时。 400 DLI.0100 结果过期。 404 DLI.0023 找不到对应资源。 400 DLI.0999 服务端系统错误。 400 DLI.1028 配额不足。
  • 响应消息 表3 响应参数 参数名称 是否必选 参数类型 说明 is_success 否 Boolean 执行请求是否成功。“true”表示请求执行成功。示例值:true。 message 否 String 系统提示信息,执行成功时,信息可能为空。示例值:空。 queue_name 否 String 队列名称。示例值:queue1。 privileges 否 Array of Object 有权限使用该队列的用户及其对应的权限数组。 具体参数请参考表4。 count 否 Long 用户的总个数。 表4 privileges参数 参数名称 是否必选 参数类型 说明 is_admin 否 Boolean 判断用户是否为管理员。示例值:false。 user_name 否 String 用户名称,即该用户在当前队列上有权限。示例值:user2。 privileges 否 Array of Strings 该用户在队列上的权限。示例值:["SUBMIT_JOB"]。
  • 响应消息 表2 响应参数 参数名称 是否必选 参数类型 说明 is_success 否 Boolean 执行请求是否成功。“true”表示请求执行成功。示例值:true。 message 否 String 系统提示信息,执行成功时,信息可能为空。示例值:空。 database_name 否 String 被查询的数据库名称。示例值:dsstest。 privileges 否 Array of objects 权限信息。具体参数请参考表3。 表3 privileges参数 参数名称 是否必选 参数类型 说明 is_admin 否 Boolean 判断用户是否为管理员。示例值:true。 user_name 否 String 用户名称,即该用户在当前数据库上有权限。示例值:test。 privileges 否 Array of Strings 该用户在数据库上的权限。具体权限信息可以参考数据权限列表。示例值: ["ALTER_TABLE_ADD_PARTITION"]。
  • 响应示例 { "is_success": true, "message": "", "count": 2, "privileges": [ { "is_admin": true, "privileges": [ "ALL" ], "user_name": "tenant1" }, { "is_admin": false, "privileges": [ "SUBMIT_JOB" ], "user_name": "user2" } ], "queue_name": "queue1"}
  • 请求示例 赋予用户user2数据库db1的查询权限、数据表db1.tbl的删除权限、数据表指定列db1.tbl.column1的查询权限 { "user_name": "user2", "action": "grant", "privileges": [ { "object": "databases.db1.tables.tb2.columns.column1", "privileges": [ "SELECT" ] }, { "object": "databases.db1.tables.tbl", "privileges": [ "DROP_TABLE" ] }, { "object": "databases.db1", "privileges": [ "SELECT" ] } ]}
  • URI URI格式: GET /v1.0/{project_id}/queues/{queue_name}/users 参数说明 表1 URI 参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 queue_name 是 String 队列名称。 表2 query参数 参数名称 是否必选 参数类型 说明 limit 是 Integer 分页查询数量。 offset 是 Integer 分页查询偏移量。
  • 请求消息 表2 请求参数 参数名称 是否必选 参数类型 说明 user_name 是 String 被赋权的用户名称,该用户将有权访问指定的数据库或数据表,被收回或者更新访问权限。示例值:user2。 action 是 String 指定赋权或回收。值为:grant,revoke或update。示例值:grant。 grant:赋权。 revoke:回收权限。 update:清空原来的所有权限,赋予本次提供的权限数组中的权限。 说明: 当用户同时拥有grant和revoke权限的时候才有权限使用update操作。 privileges 是 Array of Objects 赋权信息。具体参数请参考表3。示例值: [ {"object": "databases.db1.tables.tb2.columns.column1","privileges": ["SELECT"]},"object": "databases.db1.tables.tbl","privileges": [ "DROP_TABLE"] 表3 privileges参数 参数名称 是否必选 参数类型 说明 object 是 String 被赋权的数据对象,命名方式为: “databases.数据库名”,数据库下面的所有数据都将被共享。 “databases.数据库名.tables.表名”,指定的表的数据将被共享。 “databases.数据库名.tables.表名.columns.列名”,指定的列将被共享。 “jobs.flink.flink作业ID”,指定的作业将被共享。 “groups.程序包组名”,指定的程序包组将被共享。 “resources.程序包名”,指定程序包将被共享。 示例值:databases.db1.tables.tb2.columns.column1。 privileges 是 Array of Strings 待赋权,回收或更新的权限列表。具体支持的权限列表详细可以参考数据权限列表。示例值:["SELECT"]。 说明: 若“action”为“update”,更新列表为空,则表示回收用户在该数据库或表的所有权限。
  • 响应消息 表2 响应参数 参数名称 是否必选 参数类型 说明 is_success 否 Boolean 执行请求是否成功。“true”表示请求执行成功。示例值:true. message 否 String 系统提示信息,执行成功时,信息可能为空。示例值:空。 user_name 否 String 被查询的用户名称。 privileges 否 Array Of objects 权限信息。具体参数请参见表3。 表3 privileges参数 参数名称 是否必选 参数类型 说明 object 否 String 该用户有权限的对象: “databases.数据库名.tables.表名”,用户在当前表上的权限。 “databases.数据库名.tables.表名.columns.列名”,用户在列上的权限。 示例值:databases.dsstest.tables.obs_231。 privileges 否 Array of Strings 用户在指定对象上的权限。示例值:["DESCRIBE_TABLE" ]。 表相关的权限说明请参考权限管理。
  • 响应示例 { "is_success": true, "message": "", "privileges": [ { "object": "databases.dsstest.tables.obs_2312", "privileges": [ "DESCRIBE_TABLE" ] }, { "object": "databases.dsstest.tables.obs_2312.columns.id", "privileges": [ "SELECT" ] } ], "user_name": "scuser1"}
  • URI URI格式: GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/users/{user_name} 参数说明 表1 URI 参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 database_name 是 String 被查询的表所在的数据库名称。 table_name 是 String 被查询的表名称。 user_name 是 String 被查询的用户名称。
  • 请求示例 创建DLI用户委托,该委托包含以下权限:访问和使用CloudTable( 表格存储服务 )的CloudTable Administrator权限;使用VPC(虚拟私有云)的VPC Administrator权限;访问和使用DIS数据源( 数据接入服务 )的DIS Administrator权限;使用 SMN 消息通知 服务)的SMN Administrator权限;DLI获得访问和使用OBS的委托权限。 { "roles": [ "ctable_adm", "vpc_netadm", "dis_adm", "smn_adm", "obs_adm" ]}
  • 请求消息 表2 请求参数 参数名称 是否必选 参数类型 说明 roles 是 Array of Strings 角色。 目前只支持:obs_adm、dis_adm、ctable_adm、vpc_netadm、smn_adm、te_admin。 具体含义如下: obs_adm:DLI获得访问和使用OBS的委托权限。 dis_adm:访问和使用DIS数据源,需要获得访问和使用DIS(数据接入服务)DIS Administrator权限。 ctable_adm:访问和使用CloudTable( 表格存储 服务)的CloudTable Administrator权限。 vpc_netadm:使用VPC(虚拟私有云)的VPC Administrator权限。 smn_adm:使用SMN(消息通知服务)的SMN Administrator权限。 te_admin:具有Tenant Administrator权限。
  • 响应示例 { "is_success": true, "message": "", "plans": [ { "id": 1, "plan_name": "plan_Aa", "target_cu": 32, "start_hour": 11, "start_minute": 15, "repeat_day": [ "MONDAY", "TUESDAY", "WEDNESDAY", "SUNDAY" ], "activate": true, "last_execute_time": 1593573428857 }, { "id": 6, "plan_name": "plan_Ab", "target_cu": 16, "start_hour": 14, "start_minute": 25, "repeat_day": [ "MONDAY", "TUESDAY", "WEDNESDAY", "SUNDAY", "THURSDAY", "FRIDAY", "SATURDAY" ], "activate": true, "last_execute_time": 1593584829260 } ]}
  • URI URI格式: GET /v1/{project_id}/queues/{queue_name}/plans 参数说明 表1 URI参数 名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 queue_name 是 String 待删除定时扩缩计划的队列名称。名称长度为1~128个字符,多个队列名称使用逗号“,”分隔。
  • 响应消息 表2 响应参数 参数 是否必选 参数类型 说明 is_success 否 Boolean 请求执行是否成功。“true”表示请求执行成功。 message 否 String 系统提示信息,执行成功时,信息可能为空。 plans 否 Array of Objects 定时扩缩容计划信息。具体请参考表3。 表3 plans参数 参数名称 是否必选 参数类型 说明 id 否 Long 扩缩容计划的ID编号。 plan_name 否 String 队列扩缩容计划名称,名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。 target_cu 否 Integer 队列扩缩容计划CU的目标值。 start_hour 否 Integer 队列扩缩容计划起始小时时间(24小时制)。 start_minute 否 Integer 队列扩缩容计划的起始分钟时间。 repeat_day 是 Array of strings 定时扩缩容计划的重复周期,可以选择周一到周日的某一天、某几天、或者不选择。如果不选择,则会在当前时间后的start_hour:start_minute时间点执行扩缩容计划。例如: "repeat_day": ["MONDAY", "TUESDAY", "WEDNESDAY","SUNDAY"] valid_date_begin 否 Long 有效期开始时间(13位时间戳)。 valid_date_end 否 Long 有效期结束时间(13位时间戳)。 activate 否 Boolean 当前设置的扩缩容计划是否激活,默认为“true”,表示激活。 last_execute_time 否 Long 当前扩缩容计划最近一次执行的时间。
  • Token认证 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } }} 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 123 GET https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projectsContent-Type: application/jsonX-Auth-Token: ABCDEFJ....
  • AK/SK认证 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK/SK签名认证方式仅支持消息体大小为12M以内的请求,12M以上的请求请使用Token认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。 详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • URI URI格式: GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/users 参数说明 表1 URI 参数 参数名称 是否必选 说明 project_id 是 项目编号,用于资源隔离。获取方式请参考获取项目ID。 database_name 是 被查询的表所在的数据库名称。 table_name 是 被查询的表名称。
  • 响应示例 { "is_success": true, "message": "", "privileges": [ { "is_admin": false, "object": "databases.dsstest.tables.csv_par_table", "privileges": [ "SELECT" ], "user_name": "tent2" }, { "is_admin": true, "object": "databases.dsstest.tables.csv_par_table", "privileges": [ "ALL" ], "user_name": "tent4" } ]} 调用API出错后,将不会返回上述结果,而是返回错误码和错误信息,详细介绍请参见错误码。
  • 响应参数 表2 响应参数 参数 参数类型 说明 is_success Boolean 请求执行是否成功。“true”表示请求执行成功。 message String 系统提示信息,执行成功时,信息可能为空。 执行失败时,用于显示执行失败的原因。 sqls Array of Object 样例模板信息,具体参数说明请参见表3。 sqlCount Integer 样例模板个数。 表3 sqls参数说明 参数 参数类型 说明 lang String 语言。 name String 样例模板名称。 sql String 样例模板内容。 description String 样例模板描述。 group String 样例模板分组。
  • 响应参数 状态码: 200 表3 响应Body参数 参数名称 参数类型 说明 is_success Boolean 执行请求是否成功。“true”表示请求执行成功。 message String 系统提示信息,执行成功时,信息可能为空。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述信息。 状态码: 500 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述信息。
共100000条