华为云用户手册

  • 修订记录 发布日期 修订记录 2023-11-16 第六十一次正式发布。 修改 异步任务查询,响应参数中,entities字段中新增参数addition_error_code、addition_error_msg、error_code、error、alarm_code。 镜像文件快速导入、制作镜像、制作整机镜像、Region内复制镜像、跨Region复制镜像修改description参数描述。 2023-09-20 第六十次正式发布。 修改 异步任务查询,修改entities、sub_jobs_result参数类型。 2023-08-09 第五十九次正式发布。 修改 错误码,修改错误码IMG.0026对应的状态码。 查询镜像列表(OpenStack原生),补充响应参数“ _sys_enterprise_project_id”。 查询镜像列表,参数“__platform”补充取值。 2023-06-14 第五十八次正式发布。 请求示例规范写作,补充和优化请求示例描述内容。 2023-05-25 第五十七次正式发布。 修改 创建镜像元数据(OpenStack原生),修改disk_format参数描述。 2023-04-07 第五十六次正式发布。 修改 10.2-镜像管理,增加“查询镜像支持的OS列表”权限项。 2023-03-23 第五十五次正式发布。 修改 认证鉴权,优化Token认证描述。 按条件查询租户镜像标签列表,enterprise_project_id字段删除all_granted_eps的取值说明。 创建镜像元数据(OpenStack原生),修正tag参数及示例中key示例。 错误码,修正错误码IMG.0056描述。 2023-02-24 第五十四次正式发布。 修改 异步任务查询、异步任务进度查询,补充job_type具体的任务类型。 查询镜像列表(OpenStack原生),修正sort_key描述中的created_at。 10.2-镜像管理,补充注册镜像时企业项目权限的限制。 2023-01-17 第五十三次正式发布。 修改 错误码,补充IMG.1075错误码。 2023-01-12 第五十二次正式发布。 修改 查询镜像列表、查询镜像列表(OpenStack原生)、查询镜像详情(OpenStack原生)、创建镜像元数据(OpenStack原生)、镜像属性,修改disk_format参数描述。 2023-01-06 第五十一次正式发布。 修改 错误码,增加错误码IMG.0238、IMG.0239、IMG.0241、IMG.0242。 2022-12-27 第五十次正式发布。 修改 异步任务查询、异步任务进度查询,增加sub_jobs_result、sub_jobs_list参数及相关字段说明。 2022-12-22 第四十九次正式发布。 修改 制作镜像,请求样例中删除is_config_init字段。 2022-11-29 第四十八次正式发布。 修改 查询镜像列表,修改id的参数说明,支持根据镜像ID批量查询镜像。 查询版本列表(OpenStack原生)、查询指定版本信息(OpenStack原生),修改正常返回值为300。 跨Region复制镜像,增加vault_id参数及整机镜像的请求示例。 2022-10-25 第四十七次正式发布。 修改 查询镜像列表、更新镜像信息、查询镜像列表(OpenStack原生)、查询镜像详情(OpenStack原生)、更新镜像信息(OpenStack原生)、镜像属性,__imagetype参数增加市场镜像类型。 2022-09-26 第四十六次正式发布。 修改 查询镜像列表、查询镜像列表(OpenStack原生)、查询镜像详情(OpenStack原生),删除响应示例中的__support_kvm_fpga_type参数。 2022-08-17 第四十五次正式发布。 修改__lazyloading字段取值。 2022-05-20 第四十四次正式发布。 新增 异步任务进度查询 2022-03-21 第四十三次正式发布。 制作整机镜像,修改whole_image_type参数的描述。 镜像文件快速导入,修改os_type参数为非必选,默认值为Linux。 使用外部镜像文件制作数据镜像,修改os_type参数为非必选,默认值为Linux。 2021-10-30 第四十二次正式发布。 异步任务查询,响应参数中entities属性增加响应参数current_task,image_name,process_percent,results;增加result对象。 2021-09-26 第四十一次正式发布。 修改 按标签查询镜像,响应参数增加resource_detail和tags的引用。 更新镜像信息(OpenStack原生),新增响应参数__support_amd。 2021-09-13 第四十次正式发布。 修改 查询镜像列表(OpenStack原生),size类型改为integer。 更新镜像信息(OpenStack原生),删除重复的__account_code字段。 按标签查询镜像,resource增加表7的引用。 更新镜像信息,删除重复字段__system__cmkid,__account_code,__system_support_market 2021-08-12 第三十九次正式发布。 修改 查询镜像列表,__lazyloading类型改为string。 查询镜像列表(OpenStack原生),增加字段 images.__system__cmkid,images.hw_vif_multiqueue_enabled,修改__lazyloading类型改为string。 更新镜像信息(OpenStack原生),增加字段__support_agent_list,修改__lazyloading类型改为string。 按标签查询镜像,resources.resource_detail、tags_any、not_tags、not_tags_any 增加详请。 更新镜像信息,修改字段 images.__support_agent_list 为 __support_agent_list ,images.__system__cmkid 为 __system__cmkid,__lazyloading类型改为string。 查询镜像详情(OpenStack原生),__lazyloading类型改为string。 2021-08-05 第三十八次正式发布。 新增 响应参数__support_amd 修改 调用说明,修改SDK参考链接为https://sdkcenter.developer.huaweicloud.com/zh-cn。 认证鉴权 镜像标签数据格式 2021-07-06 第三十七次正式发布。 修改 查询镜像列表,新增响应参数images.__system__cmkid、images.__account_code;删除响应参数deleted、deleted_at。 查询镜像列表(OpenStack原生),新增响应参数__account_code;删除响应参数deleted、deleted_at。 更新镜像信息,新增响应参数__account_code、__image_location、__is_config_init;删除响应参数deleted、deleted_at。 创建镜像元数据(OpenStack原生),新增响应参数properties。 更新镜像信息,新增响应参数images.__support_agent_list、images.__system__cmkid、__system_support_market、__account_code;删除响应参数deleted、deleted_at。 查询镜像详情(OpenStack原生),新增响应参数__account_code、__image_location、__is_config_init;删除响应参数deleted、deleted_at。 2021-06-21 第三十六次正式发布。 新增 在各个接口中增加API Explorer的调试入口。 修改 制作镜像,优化image_url的参数说明,补充OBS桶名、OBS桶对象名称的查询方式。 2020-05-30 第三十五次正式发布。 修改 API概览,补全接口说明表格中的子类型。 查询镜像列表,请求参数中补充“__system__cmkid”参数,用户可以按照密钥ID过滤镜像列表。 2020-03-25 第三十四次正式发布。 新增 使用ISO文件创建镜像 修改 查询镜像列表,补充了查看某裸金属服务器规格支持的公共镜像列表的方法。 2020-01-20 第三十三次正式发布。 新增如下接口: 按标签查询镜像 批量添加删除镜像标签 添加镜像标签 删除镜像标签 查询镜像标签 查询租户所有镜像标签 修改 10.1-权限及授权项说明,IAM控制台改版,修改权限相关描述。 2019-11-30 第三十二次正式发布。 修改 查询镜像列表、查询镜像列表(OpenStack原生)、镜像属性,说明镜像属性“name”的匹配规则为精确匹配。 2019-10-30 第三十一次正式发布。 修改 查询镜像列表,补充常用列表查询方法。 2019-07-30 第三十次正式发布。 新增 查询镜像支持的OS列表 修改 支持快速导出功能,涉及修改: 导出镜像,请求消息中新增is_quick_export字段,并更新请求样例。 构造请求,修改请求消息体中的示例。 获取项目ID,补充通过API获取项目ID的方式。 2019-06-30 第二十九次正式发布。 整机镜像支持共享功能,涉及修改: 制作整机镜像,新增vault_id、whole_image_type字段,并更新请求样例。 批量更新镜像成员状态,新增vault_id字段,并更新请求样例。 更新镜像成员状态(OpenStack原生),新增vault_id字段,并更新请求样例。 支持创建ARM架构类型的私有镜像,涉及修改: 查询镜像列表、制作镜像、镜像文件快速导入,新增请求参数architecture、响应参数hw_firmware_type和_support_arm。 更新镜像信息,参数hw_firmware_type新增说明,并新增响应参数_support_arm。 镜像文件快速导入,新增请求参数architecture。 查询镜像列表(OpenStack原生)、查询镜像详情(OpenStack原生),新增响应参数hw_firmware_type和_support_arm。 更新镜像信息(OpenStack原生),新增响应参数_support_arm。 错误码,新增错误码IMG.0212。 2019-05-30 第二十八次正式发布。 新增 使用前必读 如何调用API 查询指定版本信息(OpenStack原生) 10.1-权限及授权项说明 修改 制作镜像,修改os_version参数说明,新增参数data_images、is_quick_import,支持多盘快速导入功能。 查询镜像列表、更新镜像信息、查询镜像列表(OpenStack原生)、查询镜像详情(OpenStack原生)、更新镜像信息(OpenStack原生),新增参数“__is_offshelved”。 批量更新镜像成员状态、更新镜像成员状态(OpenStack原生),修改“status”参数说明。 错误码,新增错误码。 2019-04-30 第二十七次正式发布。 修改 相关参数取值列表,__os_version取值新增Ubuntu 18.04.2 server 64bit、Ubuntu 18.04.1 server 64bit、Ubuntu 16.04.6 server 64bit、Ubuntu 16.04.5 server 64bit、Ubuntu 16.04.4 server 64bit、Windows Server 2019 Standard 64bit、Windows Server 2019 Datacenter 64bit、NeoKylin 7.4 64bit。 2019-03-30 第二十六次正式发布。 修改 查询镜像列表,修改参数“disk_format”的参数说明,补充iso格式。 更新镜像信息,修改参数“disk_format”的参数说明,补充iso格式。 制作镜像,新增使用ISO文件创建镜像时的约束限制。 注册镜像,修改参数“image_url”的参数说明,补充iso格式。 制作镜像,修改请求参数“type”和“os_version”的参数说明。 删除镜像(OpenStack原生),新增请求参数“delete_backup”,支持删除整机镜像时同步删除云服务器备份。 相关参数取值列表,__os_version取值新增CentOS 64bit、Red Hat Linux Enterprise 7.6 64bit、Oracle Linux Server release 7.6 64bit。 2019-01-30 第二十五次正式发布。 修改 制作镜像,支持使用数据盘制作系统盘镜像。 查询镜像列表、更新镜像信息、查询镜像列表(OpenStack原生)、查询镜像详情(OpenStack原生)、更新镜像信息(OpenStack原生)章节新增参数:“_support_fc_inject”。 2018-12-29 第二十四次正式发布。 本次更新说明如下: 认证鉴权章节更新AK/SK认证的内容及Demo。 2018-10-30 第二十三次正式发布。 本次更新说明如下: 查询镜像列表章节新增参数:"created_at"“updated_at”。 查询镜像列表(OpenStack原生)章节新增参数:"created_at"“updated_at”。 查询镜像列表、更新镜像信息、更新镜像信息(OpenStack原生)新增响应参数max_ram。 2018-09-30 第二十二次正式发布。 本次更新说明如下: 新增镜像文件快速导入。 修改查询镜像列表章节响应样例。 修改查询镜像列表(OpenStack原生)章节响应样例。 修改查询镜像详情(OpenStack原生)章节响应样例。 2018-08-30 第二十一次正式发布。 本次更新说明如下: 修改“API授权项列表”章节。 镜像属性新增“enterprise_project_id”参数。 查询镜像列表(OpenStack原生)章节visibility参数新增shared取值。 2018-07-30 第二十次正式发布。 本次更新说明如下: 新增“跨Region复制镜像”章节。 “查询镜像列表”接口删除“__is_config_init”响应参数。 “查询镜像详情”接口删除“__is_config_init”响应参数。 “更新镜像信息”接口删除“__is_config_init”响应参数。 “制作镜像”接口使用上传至OBS桶中的外部镜像文件时的Request Body参数新增“is_config_init”。 2018-06-30 第十九次正式发布。 本次更新说明如下: 新增“制作整机镜像”章节。 2018-05-30 第十八次正式发布。 本次更新说明如下: 新增“异步任务进度查询”章节。 2018-03-30 第十七次正式发布。 本次更新说明如下: 新增“API授权项列表”。 2018-01-30 第十六次正式发布。 本次更新说明如下: 新增“镜像配额”章节。 2017-10-30 第十五次正式发布。 本次更新说明如下: 新增“创建镜像元数据(OpenStack原生)”。 min_disk取值上限调整为1024GB。 2017-09-30 第十四次正式发布。 本次更新说明如下: 新增“查询版本(OpenStack原生)”。 2017-06-30 第十三次正式发布。 本次更新说明如下: 更新“镜像查询列表”URI格式。 2017-05-30 第十二次正式发布。 本次更新说明如下: 新增“查询镜像列表(OpenStack原生)”。 新增“更新镜像信息(OpenStack原生)”。 2017-03-30 第十一次正式发布。 本次更新说明如下: 更新“__os_version”取值列表和镜像类型列表。 2017-02-28 第十次正式发布。 本次更新说明如下: 新增“查询镜像成员视图(OpenStack原生)”、“查询镜像成员列表视图(OpenStack原生)”和“Region内复制镜像”接口。 更新“__os_version”取值列表。 2017-02-08 第九次正式发布。 更新“__os_version”取值列表。 2017-01-20 第八次正式发布。 本次更新说明如下。 “制作镜像接口”中使用上传至OBS桶中的外部镜像文件制作镜像时,用户可对镜像加密,新增“cmk_id”参数。 “查询镜像列表”接口的URI参数说明及响应参数、“查询镜像详情”和“更新镜像信息"接口的响应参数更新。 2016-11-24 第七次正式发布。 本次更新说明如下: 修改“生成AK、SK”步骤。 优化多个接口中的“min_disk”、“min_ram”、“status”、“created_at”和“updated_at”的参数说明。 “导出镜像”接口新增“file_format”参数。 2016-10-29 第六次正式发布。 本次更新说明如下: “查询镜像列表”接口新增“__is_config_init”响应参数。 “查询镜像详情”接口新增“__is_config_init”响应参数。 “更新镜像信息”接口新增“__is_config_init”响应参数。 “制作镜像”接口使用上传至OBS桶中的外部镜像文件时的Request Body参数新增“is_config_init”。 2016-09-30 第五次正式发布。 本次更新说明如下: 修改“查询镜像列表”接口的URI参数。 修改“查询镜像详情”接口的响应要素。 修改“更新镜像信息”接口的响应要素。 刷新“__os_version”取值列表。 2016-09-18 第四次正式发布。 本次更新说明如下: 新增“导出镜像”接口。 新增“镜像共享”章节。 2016-06-02 第三次正式发布。 修改“服务使用方法”中“URL参数说明”。 2016-01-22 第二次正式发布。 本次变更说明如下: 修改“请求签名流程”,更新了SDK jar包和签名过程。 修改“示例代码”,优化代码。 修改“公共请求消息头”,新增消息头,部分消息头更改为非必选。 2015-10-15 第一次正式发布。
  • 退出会议 主持人可选择结束或离开会议,与会者可选择离开会议。 桌面客户端 单击会中界面右上角的按钮或右下角的“离开”。 与会者单击“确定”可离开会议,主持人可选择进行以下操作。 离开会议:主持人离开会议,会议继续召开。 结束全体会议:主持人结束会议,所有与会者均退出会议。 离开会议并指定主持人:主持人离开会议,转移主持人权限给其他与会者继续主持会议。 图9 退出会议 上图所示为主持人离开会议页面参考图。 移动客户端 单击会中界面右上角的“离开”。 与会者单击“确定”可离开会议,主持人可选择进行以下操作。 离开会议:主持人离开会议,会议继续召开。 结束全体会议:主持人结束会议,所有与会者均退出会议。 离开会议并指定主持人:主持人离开会议,转移主持人权限给其他与会者继续主持会议。 图10 退出会议 上图所示为主持人离开会议页面参考图。
  • 错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 更多服务错误码请参见API错误中心。 状态码 错误码 错误信息 描述 处理措施 400 CTS.0001 The IAM or OBS service is abnormal. IAM或OBS服务异常 请联系技术支持 400 CTS.0003 The message body is empty or invalid. body体为空或非法 请校验body内容和格式 400 CTS.0200 The number of trackers has reached the upper limit. 追踪器数量已满 请删除或修改不需要的追踪器 400 CTS.0201 A management tracker has been created. 已有管理类追踪器 请检查是否已生效 400 CTS.0202 The value of the tracker_type parameter is incorrect. tracker_type字段不符合格式 请将对应值改为system或data 400 CTS.0203 The value of tracker_name parameter is in an incorrect format. tracker_name字段不符合格式 请参考参数描述进行修改 400 CTS.0204 The tracker_name parameter of a management tracker can only be set to system. 管理类追踪器tracker_name字段应为system 请参考参数描述进行修改 400 CTS.0205 The status parameter can only be set to enabled or disabled. status字段只能为enabled或disabled 请将对应值改为enabled或disabled 400 CTS.0206 The data_bucket parameter cannot be included in the message body for a management tracker. 管理类追踪器body体不能有data_bucket参数 请去掉data_buket参数 400 CTS.0207 The tracker_name parameter in the message body cannot be set to system for a data tracker. 数据类追踪器body体tracker_name不能为system 请将tracker_name改为除system以外的值 400 CTS.0209 A type of operations on an OBS bucket can be tracked by only one tracker. 追踪一个桶的同一个操作类型 请更改追踪项 400 CTS.0210 The OBS bucket to track cannot be empty. 追踪的桶不能为空 请换一个桶或使桶不为空 400 CTS.0211 The tracked OBS bucket does not exist. 被追踪的桶不存在 请检查bucket_name是否填写正确 400 CTS.0212 The tracked OBS bucket cannot be modified. 被追踪的obs桶不可修改 请撤回桶的更改 400 CTS.0213 The OBS bucket used for trace transfer cannot be a tracked OBS bucket. 被追踪的桶与转储的桶相同 请更换转储的桶 400 CTS.0215 The OBS bucket already exists. 桶已经存在 请修改bucket_name 400 CTS.0216 Failed to create a bucket. 创建桶失败 请联系技术支持 400 CTS.0217 Failed to set a lifecycle rule for the OBS bucket. 设置桶生命周期规则失败 请联系技术支持 400 CTS.0218 The value of file_prefix_name is in an incorrect format. file_prefix_name字段不符合格式 请参考参数描述进行修改 400 CTS.0219 The operation type cannot be empty. 操作类型不能为空 请选择至少一个追踪操作 400 CTS.0220 KMS is not supported. 不支持KMS 请联系技术支持 400 CTS.0221 The KMS ID is empty. KMS_ID为空 请检查kms_id是否正确 400 CTS.0222 KMS verification failed. KMS校验失败 请检查kms_id是否正确 400 CTS.0225 Only WRITE and/or READ operations on the OBS bucket can be tracked. 追踪桶操作类型必须为WRITE、READ 或WRITE和READ。 检查参数是否传入正确。 400 CTS.0228 The CTS service is not trusted. 云审计服务不受信任。 请在org服务界面开启可信服务。 400 CTS.0228 The organization tracker can be enabled only for organization management. 组织追踪器只能在组织管理中启用。 请在org服务界面开启可信服务。 400 CTS.0229 The organization tracker already exists. 组织追踪器已存在。 请先关闭已开启的组织追踪器。 400 CTS.0231 Invalid bucket name. A bucket name must be a string of 3 to 63 characters, including only lowercase letters, digits, hyphens (-), or periods (.). It must start with a digit or a lowercase letter. 无效的桶名称。 bucket_name是3到63个字符的字符串,以数字或字母开头,支持小写字母,数字,“-”或“.”。 检查桶名称填写是否正确。 400 CTS.0300 Query failed. query查询失败 请稍后重试或联系技术支持 403 CTS.0002 Authentication failed or you do not have the permissions required. 用户鉴权失败或没有权限 请检查用户权限 403 CTS.0208 The tracker already exists. 已存在该追踪器 请检查该追踪器是否已经存在 404 CTS.0100 API version query is not supported in CTS. CTS不支持查询接口版本号 请联系技术支持 404 CTS.0214 The tracker does not exist. 追踪器不存在 请检查该追踪器是否已删除 405 CTS.0049 GET method not allowed. 不允许使用GET方法调用。 请使用其他方法调用。 500 CTS.0004 Failed to write data. 写入数据失败 请联系技术支持 500 CTS.0005 Failed to read data. 读取数据失败 请联系技术支持 父主题: 附录
  • 请求示例 删除指定的资源栈 DELETE https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack 删除指定的资源栈,并提供资源栈id以校验是否与当前资源栈匹配 DELETE https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • URI DELETE /v1/{project_id}/stacks/{stack_name} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 stack_id 否 String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36
  • 功能介绍 删除资源栈(DeleteStack) 此API用于删除某个资源栈 请谨慎操作,删除资源栈将会删除与该资源栈相关的所有数据和资源,如:执行计划、资源栈事件、资源栈输出、资源等。 此API会触发删除资源栈,并以最终一致性删除所有数据,用户可以调用GetStackMetadata或ListStacks跟踪资源栈删除情况 如果资源栈状态处于非终态(状态以IN_PROGRESS结尾)状态时,则不允许删除。包括但不限于以下状态: 正在部署(DEPLOYMENT_IN_PROGRESS) 正在删除(DELETION_IN_PROGRESS) 正在回滚(ROLLBACK_IN_PROGRESS) 如果资源栈开启了删除保护,则不允许删除。用户可调用GetStackMetadata,查看返回中的enable_deletion_protection字段判断删除保护是否开启。用户可通过调用UpdateStack关闭删除保护。 如果资源栈删除失败,可以根据StackEvents提示信息修复当前模板中的错误后,部署成功后再次删除资源栈。有以下两种方式触发部署: 调用CreateExecutionPlan创建执行计划,执行计划创建成功后调用ApplyExecutionPlan部署资源栈。 调用DeployStack部署资源栈
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 stacks Array of Stack objects 资源栈列表。默认按照生成时间降序排序,最新生成的在最前 表4 Stack 参数 参数类型 描述 stack_name String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 description String 资源栈的描述。可用于客户识别自己的资源栈。 最小长度:0 最大长度:1024 stack_id String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36 status String 资源栈的状态 * CREATION_COMPLETE - 生成空资源栈完成,并没有任何部署 * DEPLOYMENT_IN_PROGRESS - 正在部署,请等待 * DEPLOYMENT_FAILED - 部署失败。请从status_message获取错误信息汇总,或者调用ListStackEvents获得事件详情 * DEPLOYMENT_COMPLETE - 部署完成 * ROLLBACK_IN_PROGRESS - 部署失败,正在回滚,请等待 * ROLLBACK_FAILED - 回滚失败。请从status_message获取错误信息汇总,或者调用ListStackEvents获得事件详情 * ROLLBACK_COMPLETE - 回滚完成 * DELETION_IN_PROGRESS - 正在删除,请等待 * DELETION_FAILED - 删除失败。请从status_message获取错误信息汇总,或者调用ListStackEvents获得事件详情 枚举值: CREATION_COMPLETE DEPLOYMENT_IN_PROGRESS DEPLOYMENT_FAILED DEPLOYMENT_COMPLETE ROLLBACK_IN_PROGRESS ROLLBACK_FAILED ROLLBACK_COMPLETE DELETION_IN_PROGRESS DELETION_FAILED create_time String 资源栈的生成时间,格式遵循RFC3339,精确到秒,UTC时区,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z update_time String 资源栈的更新时间,格式遵循RFC3339,精确到秒,UTC时区,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z status_message String 在失败的时候(资源栈状态以FAILED结尾)会显示简要的错误信息总结以供debug 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • 响应示例 状态码: 200 列举成功 { "stacks" : [ { "stack_name" : "my_second_stack", "description" : "my second stack", "stack_id" : "4d4f4ece-b291-4c71-8083-bec9b8a44de0", "status" : "DEPLOYMENT_COMPLETE", "create_time" : "2023-05-17T07:34:22Z", "update_time" : "2023-05-17T07:34:44Z" }, { "stack_name" : "my_first_stack", "description" : "my second stack", "stack_id" : "e830c288-ee34-48c0-ba6b-a0e6f6b48d3e", "status" : "CREATION_COMPLETE", "create_time" : "2023-05-17T07:34:06Z", "update_time" : "2023-05-17T07:34:28Z" } ] }
  • 请求示例 删除指定的资源栈集 DELETE https://{endpoint}/v1/stack-sets/my_hello_world_stack_set 删除指定的资源栈集,并提供资源栈集id以校验是否与当前资源栈集匹配 DELETE https://{endpoint}/v1/stack-sets/my_hello_world_stack_set?stack_set_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2
  • URI DELETE /v1/stack-sets/{stack_set_name} 表1 路径参数 参数 是否必选 参数类型 描述 stack_set_name 是 String 资源栈集的名称。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 stack_set_id 否 String 资源栈集(stack_set)的唯一ID。 此ID由资源编排服务在生成资源栈集的时候生成,为UUID。 由于资源栈集名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈集,删除,再重新创建一个同名资源栈集。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈集就是我认为的那个,而不是其他队友删除后创建的同名资源栈集。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈集所对应的ID都不相同,更新不会影响ID。如果给予的stack_set_id和当前资源栈集的ID不一致,则返回400 最小长度:36 最大长度:36
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • 请求示例 删除模板 DELETE https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates/my_template 删除模板,并提供模板id以校验是否与当前模板匹配 DELETE https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates/my_template?template_id=1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3
  • URI DELETE /v1/{project_id}/templates/{template_name} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 template_name 是 String 用户希望创建的模板名称 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 template_id 否 String 模板的ID。当template_id存在时,模板服务会检查template_id是否和template_name匹配,不匹配会返回400 最小长度:36 最大长度:36
  • 功能介绍 删除模板(DeleteTemplate) 此API用于删除某个模板以及模板下的全部模板版本 请谨慎操作,删除模板将会删除模板下的所有模板版本。 template_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给予的template_id和当前模板管理的ID不一致,则返回400
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 429 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 集群状态 表3 集群状态说明 状态 说明 创建中 表示集群正在创建中。 服务中 当集群创建成功并正常提供服务时,其集群状态为服务中。 亚健康 当超过指定时间监控不到集群状态时,集群状态将显示为“亚健康”。“亚健康”状态的集群需要人工干预让集群恢复正常,比如,可以通过重启集群尝试恢复正常状态。 创建失败 表示集群创建失败。 冻结 续费时所支付的余额已不足,则其状态为“冻结”。 当集群状态为“冻结”时,您需要通过续费保证账户余额不为0才能解冻,详细操作请参见如何续费?。 说明: 冻结期间集群不可用且关闭集群中所有云主机,解冻后集群自动恢复为“服务中”状态。如果用户没有续费,冻结期限到期后集群会被删除。
  • 运行中的慢SQL查询操作步骤 登录表格存储服务管理控制台。 在集群列表中找到所要查看的Doris集群并单击“集群名称”,进入详情页。 在左侧导航树,单击“慢查询管理”,进入运行中慢查询页面。 可通过对慢查询运行时长、时间范围以及SQL语句的调整来实现数据的筛选以及结束运行中的SQL的命令。 表1 运行中慢sql查询参数说明 参数 参数说明 查询编号 查询每一个SQL命令的ID。 执行开始时间 SQL语句执行开始时间。 执行结束时间 SQL语句执行结束时间。 数据库 使用的数据库。 SQL语句 执行的SQL语句。 运行时长(ms) SQL执行时长。 状态 SQL运行的状态。 操作 进行停止查询等操作。
  • 已完成的慢SQL查询操作步骤 登录表格存储服务管理控制台。 在集群列表中找到所要查看的Doris集群并单击“集群名称”,进入详情页。 在左侧导航树,单击“慢查询管理”,进入已完成的慢查询页面。 可通过对慢查询运行时长、时间范围、状态以及SQL语句的调整来实现数据的筛选。 表2 已完成慢sql查询参数说明 参数 参数说明 查询编号 查询每一个SQL命令的ID。 执行开始时间 SQL语句执行开始时间。 执行结束时间 SQL语句执行结束时间。 数据库 使用的数据库。 SQL语句 执行的SQL语句。 运行时长(ms) SQL执行时长。 状态 SQL运行的状态。
  • 扩容计算单元 登录表格存储服务管理控制台。 单击管理控制台左上角的,选择区域。 在左侧导航树,选择集群管理。 在集群列表中,找到需要扩容的集群名称,在其所在行,单击“水平扩容”,进入“扩容”页面。 图1 扩容图 在扩容页面设置以下参数,然后单击“立即购买”,规格确认。 图2 确认扩容 表1 扩容参数 参数 参数说明 单元类型 选择所需扩容的单元类型。可选值:RS单元。 单元数量 显示所选单元类型当前的单元数量。 扩容 设置扩容后所选单元类型的总单元数量。 单击“提交”开始扩容。 单击“返回集群列表”跳转到集群列表页面。 “任务状态”显示为“单元扩容中”,表示集群正在扩容。此时,“集群状态”仍为“服务中”。 扩容成功后,在集群列表中单击集群名称,进入集群信息页面,可以看到扩容后的计算单元数量。
  • ClickHouse集群管理简介 ClickHouse是面向联机分析处理的列式数据库,支持SQL查询,且查询性能好,特别是基于大宽表的聚合分析查询性能非常优异,比其他分析型数据库速度快一个数量级。CloudTable ClickHouse集群管理还有以下功能: ClickHouse集群管理下,用户申请专属集群,按需使用,专属集群是物理隔离且不受其他业务影响,方便用户管理。 ClickHouse集群创建成功后,使用客户端访问集群,请参见以下章节。 准备弹性云服务。 使用客户端访问集群。 ClickHouse命令简介。 父主题: ClickHouse集群管理
  • 操作步骤 准备Windows弹性云服务器。 具体操作请参见准备弹性云服务器章节中的以下步骤: 准备弹性云服务器 为Windows弹性云服务器配置DNS地址 在浏览器中输入如下地址: http://xxx-zk1.cloudtable.com:16010/master-status 其中“xxx-zk1.cloudtable.com”为主Master节点的地址。Master地址的获取方法与ZooKeeper地址的获取方法相同,ZooKeeper地址列表中包含zk1或zk2的地址即为Master节点的域名。 ZooKeeper地址(即ZK链接地址)可以在集群基本信息页面获取,具体方法请参考查看HBase集群基本信息。 如果打开的是备Master的页面,通过其中的链接可以跳转到主Master的页面,如图1所示。 图1 备Master页面信息 在HBase的主Master的Web UI页面中,Home页面展示的是HBase的一些概况信息,具体包括以下信息: Region Servers页面展示了RegionServer的一些基本信息,如图2所示。 图2 Region Servers基本信息 Backup Master页面展示了Backup Master的信息,如图3所示。 图3 Backup Masters基本信息 Tables页面显示了HBase中表的信息,包括User Tables、System Tables、Snapshots,如图4所示。 图4 Tables基本信息 Tasks页面显示了运行在HBase上的任务信息,包括开始时间,状态等信息,如图5所示。 图5 Tasks基本信息 在HBase的Web UI页面中,Table Details页面展示的是HBase存储表的概要信息,如图6所示。 图6 TableDetails 在HBase的Web UI页面中,Debug dump页面展示的是HBase的Debug信息,如图7所示。 图7 Debug dump 在HBase的Web UI页面中,HBaseConfiguration页面展示的是HBase的配置信息,如图8所示。 图8 HBase Configuration
  • Doris集群管理简介 CloudTable集群模式提供了基于Doris的分布式、可伸缩、全托管的实时数据仓库,它提供了亚秒级返回海量数据查询结果的能力,可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。 Doris集群管理下,用户申请专属集群,按需使用,专属集群是完全物理隔离且不受其他业务影响,方便用户管理。 Doris集群创建成功后,用户可通过使用客户端访问集群:详情请参见使用Doris章节,介绍如何使用Doris集群。 父主题: Doris集群管理
  • Clickhouse命令简介 本章节主要介绍常用的ClickHouse组件命令。安装ClickHouse客户端后,加载环境变量,可使用以下命令。 连接ClickHouse集群。 非安全集群连接命令 ./clickhouse client --host 集群内网地址 --port 端口 --user admin --password password 安全集群连接命令,详细操作请参见安全集群连接步骤 ./clickhouse client --host 集群内网地址 --port 端口 --user admin --password password --secure --config-file /root/config.xml 创建数据库。 create database demo; 使用数据库。 use demo; 查看当前使用数据库。 select currentDatabase(); 创建数据表。 create table demo_t(uid Int32,name String,age UInt32,gender String)engine = TinyLog; 查看表结构。 desc demo_t; 插入数据。 insert into demo_t values(1,'Candy','23','M'),(2,'cici','33','F'); 查看表。 select * from demo_t; 查看数据库和表。 查看数据库。 show databases; 查看表。 show tables; 删除数据库和表。 删除表。 drop table demo_t; 删除数据表前,需确认此数据表是否应用中,以免引起不必要的麻烦。 删除数据表后可在24小时内恢复,超过24小时无法恢复。恢复命令如下: set allow_experimental_undrop_table_query = 1; UNDROP TABLE 数据表名; 删除数据库。 drop database demo; 父主题: 使用Clickhouse
  • 背景信息 假定这是一张学生成绩表信息,使用客户端实现业务操作: 创建用户信息表demo_t。 在用户信息中新增访问性别、科目。 根据用户user_id查询用户的基本信息。 业务结束后,删除用户信息表。 表1 成绩表 user_id name sex subject score time 10000 A 1 语文 89 2023-07-01 09:00:00 10001 B 0 数学 132 2023-07-01 09:00:00 10002 C 0 数学 90 2023-07-02 09:00:00 10003 D 0 英语 120 2023-07-01 14:00:00 10004 E 1 语文 101 2023-07-01 09:00:00 10005 F 1 语文 110 2023-07-01 09:00:00 表2 参数说明 参数 说明 10000 用户id,每个用户唯一识别id。 2023-07-01 09:00:00 数据入库时间。 A 学生姓名。 1 性别女(0代表男生)。 语文 代表学科。 89 代表学成绩。
  • ClickHouse操作步骤 创建名称为“cloudtable-demo”的集群。 请参见快速创建ClickHouse集群章节完成CloudTable集群的创建。 准备Linux弹性云服务器。 假设该弹性云服务器名称为“ecs_20230314”,详情请参见准备弹性云服务章节。 下载客户端,登录表格存储服务管理控制台,在左侧导航树单击“帮助”,然后在页面右侧单击“客户端下载”,下载客户端安装包。 图1 下载ClickHouse客户端 安装客户端,连接集群。 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。 具体登录操作步骤请参见《弹性云服务器用户指南》中的“ SSH密码方式登录”。 进入SSH工具的根目录。 cd / 在根目录中新建一个文件夹。 mkdir 文件夹名 进入新建的目录中。 cd /文件夹名/ 将客户端放在新建的目录下。 解压客户端。 tar -zxf 客户端包名 加载so。 sh install.sh 进入bin目录,加权限。 cd bin/ 加权限。 chmod 700 clickhouse 然后执行以下命令连接ClickHouse集群,端口请参见表1。 非安全集群连接命令 ./clickhouse client --host 集群内网地址 --port 端口 --user admin --password password 安全集群连接命令,详细操作请参见安全集群连接步骤 ./clickhouse client --host 集群内网地址 --port 端口 --user admin --password password --secure --config-file /root/config.xml 集群内网地址:集群详情页面中集群访问地址,这里替换成您自己购买的集群的访问地址。 password为您购买集群时设置的密码,如果有特殊符号,特殊符号前面需要\进行转义,如果密码整体用单引号括起来,则特殊字符不需要转义。 执行以下命令,使用ClickHouse集群快速创建数据表,并对表数据进行查询。 创建数据库。 create database DB_demo; 使用数据库。 use DB_demo; 创建表。 create table DB_demo_t(user_id Int32,name String,sex Tinyint ,subject String,score Int32,time datetime)engine=TinyLog; 插入数据。 insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10000','A','1','语文','89','2023-07-01 09:00:00'); insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10001','B','0','数学','132','2023-07-01 09:00:00'); insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10002','C','0','数学','90','2023-07-02 09:00:00'); insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10003','D','0','英语','120','2023-07-01 14:00:00'); insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10004','E','1','语文','101','2023-07-01 09:00:00'); insert into DB_demo_t(user_id,name,sex,subject,score,time) values('10005','F','1','语文','110','2023-07-01 09:00:00'); 查询数据。 查询导入的数据。 host-172-16-13-95 :) select * from DB_demo_t; SELECT * FROM DB_demo_t Query id: 4e119f77-0592-4131-bbe2-31f42bc069a1 ┌─user_id─┬─name─┬─sex─┬─subject─┬─score─┬────────────────time─┐ │ 10000 │ A │ 1 │ 语文 │ 89 │ 2023-07-01 09:00:00 │ │ 10001 │ B │ 0 │ 数学 │ 132 │ 2023-07-01 09:00:00 │ │ 10002 │ C │ 0 │ 数学 │ 90 │ 2023-07-02 09:00:00 │ │ 10003 │ D │ 0 │ 英语 │ 120 │ 2023-07-01 14:00:00 │ │ 10004 │ E │ 1 │ 语文 │ 101 │ 2023-07-01 09:00:00 │ │ 10005 │ F │ 1 │ 语文 │ 110 │ 2023-07-01 09:00:00 │ └─────────┴──────┴─────┴────────┴───────┴─────────────────────┘ 6 rows in set. Elapsed: 0.004 sec. 删除数据。 删除表。 drop table DB_demo_t; 删除数据库。 drop database DB_demo;
  • HBase集群管理简介 CloudTable集群模式提供了基于Apache HBase的分布式、可伸缩、全托管的NoSQL数据存储系统,它提供了毫秒级的随机读写能力,适用于海量结构化数据、半结构化数据存储和查询应用。 HBase集群管理下,用户申请专属集群,按需使用,专属集群是完全物理隔离且不受其他业务影响,方便用户管理。HBase集群管理适合业务吞吐量大,时延要求低的用户。 HBase集群创建成功后,用户可通过以下方式访问HBase集群: 使用客户端访问集群。 详情请参见此章节:使用HBase:介绍了如何使用HBase Shell访问集群等内容。 调用开源原生接口,开发HBase应用,通过CloudTable链接地址访问集群。 详情请参见《表格存储服务开发指南》。 HBase集群,目前已经商用,了解CloudTable如何定价,请参见产品价格详情。 父主题: HBase集群管理
  • 背景信息 假定这是一张记录用户访问某商品页面行为的表信息,使用MySQL客户端实现业务操作: 创建用户信息表example_tbl。 在用户信息中新增访问时间、城市、性别、停留时长、花费。 根据用户user_id查询用户的基本信息。 业务结束后,删除用户信息表。 表1 原始数据 user_id date city age sex last_visit_date cost max_dwell_time min_dwell_time 10000 2017-10-01 A 20 0 2017-10-01 06:00:00 20 10 10 10000 2017-10-01 A 20 0 2017-10-01 07:00:00 15 2 2 10001 2017-10-01 A 30 1 2017-10-01 17:05:45 2 22 22 10002 2017-10-02 B 20 1 2017-10-02 12:59:12 200 5 5 10003 2017-10-02 C 32 0 2017-10-02 11:20:00 30 11 11 10004 2017-10-01 D 35 0 2017-10-01 10:00:15 100 3 3 10004 2017-10-03 D 35 0 2017-10-03 10:20:22 11 6 6 字段含义说明。 表2 参数说明 数据 说明 10000 用户id,每个用户唯一识别id。 2017-10-01 数据入库时间,精确到日期。 A 用户所在城市。 20 用户年龄。 0 性别男(1代表女性)。 2017-10-01 06:00:00 用户本次访问该页面的时间,精确到秒。 20 用户本次访问产生的消费。 10 用户本次访问,驻留该页面的时间。 10 用户本次访问,驻留该页面的时间(冗余)。
  • Unique模型 在某些多维分析场景下,用户更关注的是如何保证Key的唯一性,即如何获得Primary Key唯一性约束。因此,我们引入了Unique的数据模型。该模型本质上是聚合模型的一个特例,也是一种简化的表结构表示方式。举例说明: 表11 参数说明 ColumnName Type IsKey Comment user_id BIGINT Yes 用户 ID username VARCHAR(50) Yes 用户昵称 city VARCHAR(20) No 用户所在城市 age SMALLINT No 用户年龄 sex TINYINT No 用户性别 phone LARGEINT No 用户电话 address VARCHAR(500) No 用户住址 register_time DATETIME No 用户注册时间 这是一个典型的用户基础信息表。这类数据没有聚合需求,只需保证主键唯一性。(这里的主键为user_id+username)。那么我们的建表语句如下: CREATE TABLE IF NOT EXISTS example_db.expamle_tbl ( `user_id` LARGEINT NOT NULL COMMENT "用户id", `username` VARCHAR(50) NOT NULL COMMENT "用户昵称", `city` VARCHAR(20) COMMENT "用户所在城市", `age` SMALLINT COMMENT "用户年龄", `sex` TINYINT COMMENT "用户性别", `phone` LARGEINT COMMENT "用户电话", `address` VARCHAR(500) COMMENT "用户地址", `register_time` DATETIME COMMENT "用户注册时间" ) UNIQUE KEY(`user_id`, `username`) DISTRIBUTED BY HASH(`user_id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1" ); 而这个表结构,完全同等于以下使用聚合模型描述的表结构: 表12 参数说明 ColumnName Type AggregationType Comment user_id BIGINT - 用户 ID username VARCHAR(50) - 用户昵称 city VARCHAR(20) REPLACE 用户所在城市 age SMALLINT REPLACE 用户年龄 sex TINYINT REPLACE 用户性别 phone LARGEINT REPLACE 用户电话 address VARCHAR(500) REPLACE 用户住址 register_time DATETIME REPLACE 用户注册时间 建表语句。 CREATE TABLE IF NOT EXISTS example_db.expamle_tbl ( `user_id` LARGEINT NOT NULL COMMENT "用户id", `username` VARCHAR(50) NOT NULL COMMENT "用户昵称", `city` VARCHAR(20) REPLACE COMMENT "用户所在城市", `age` SMALLINT REPLACE COMMENT "用户年龄", `sex` TINYINT REPLACE COMMENT "用户性别", `phone` LARGEINT REPLACE COMMENT "用户电话", `address` VARCHAR(500) REPLACE COMMENT "用户地址", `register_time` DATETIME REPLACE COMMENT "用户注册时间" ) AGGREGATE KEY(`user_id`, `username`) DISTRIBUTED BY HASH(`user_id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1" ); 即Unique模型完全可以用聚合模型中的REPLACE方式替代。其内部的实现方式和数据存储方式也完全一样。
  • Duplicate模型 在某些多维分析场景下,数据既没有主键,也没有聚合需求。因此,我们引入Duplicate数据模型来满足这类需求。 表13 数据 ColumnName Type SortKey Comment timestamp DATETIME Yes 日志时间 type INT Yes 日志类型 error_code INT Yes 错误码 error_msg VARCHAR(1024) No 错误详细信息 op_id BIGINT No 负责人 ID op_time DATETIME No 处理时间 建表语句。 CREATE TABLE IF NOT EXISTS example_db.expamle_tbl ( `timestamp` DATETIME NOT NULL COMMENT "日志时间", `type` INT NOT NULL COMMENT "日志类型", `error_code` INT COMMENT "错误码", `error_msg` VARCHAR(1024) COMMENT "错误详细信息", `op_id` BIGINT COMMENT "负责人id", `op_time` DATETIME COMMENT "处理时间" ) DUPLICATE KEY(`timestamp`, `type`) DISTRIBUTED BY HASH(`type`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1" ); 这种数据模型区别于Aggregate和Unique模型。数据完全按照导入文件中的数据进行存储,不会有任何聚合。即使两行数据完全相同,也都会保留。 而在建表语句中指定的DUPLICATE KEY,只是用来指明底层数据按照那些列进行排序。(更贴切的名称应该为“Sorted Column”,这里取名“DUPLICATE KEY”只是用以明确表示所用的数据模型。在DUPLICATE KEY的选择上,我们建议适当的选择前2-4列就可以。 这种数据模型适用于既没有聚合需求,又没有主键唯一性约束的原始数据的存储。更多使用场景,可参见聚合模型的局限性。
共100000条