华为云用户手册

  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 描述 400 CBC.0100 参数错误。 400 CBC.0101 参数无效。 400 CBC.99000037 您没有操作该云经销商的权限。 403 CBC.0155 不允许执行当前请求。 原因可能为账号鉴权信息不正确、账号或子账号没有接口调用权限。 500 CBC.0999 其他错误。
  • URI GET /v2/orders/customer-orders 表1 查询参数 参数 是否必选 参数类型 取值范围 描述 order_id 否 String 最大长度:64 订单ID。大小写不敏感。 此参数不携带或携带值为空时,不作为筛选条件;携带值为null时,作为筛选条件;不支持携带值为空串。 说明: 使用特殊字符进行查询的时候,请注意进行URL编码转换,如“%”的转码应为“%25”。 customer_id 否 String 最大长度:64 客户账号ID。您可以调用查询客户列表接口获取customer_id。 此参数不携带时,不作为筛选条件;携带值为null时,作为筛选条件;不支持携带值为空或携带值为空串。 create_time_begin 否 String 最大长度:20 订单创建开始时间。 UTC时间,格式:yyyy-MM-dd'T'HH:mm:ss'Z',如“2019-05-06T08:05:01Z”。 其中,HH范围是0~23,mm和ss范围是0~59。 订单创建开始时间与订单创建结束时间间隔不能超过1年。 此参数不携带或携带值为空时,不作为筛选条件;不支持携带值为空串或携带值为null。 create_time_end 否 String 最大长度:20 订单创建结束时间。 UTC时间,格式:yyyy-MM-dd'T'HH:mm:ss'Z',如“2019-05-06T08:05:01Z”。 其中,HH范围是0~23,mm和ss范围是0~59。 订单创建开始时间与订单创建结束时间间隔不能超过1年。 此参数不携带或携带值为空时,不作为筛选条件;不支持携带值为空串或携带值为null。 service_type_code 否 String 最大长度:64 云服务类型编码,例如OBS的云服务类型编码为"hws.service.type.obs"。大小写不敏感。 您可以调用查询云服务类型列表接口获取。 此参数不携带或携带值为空时,不作为筛选条件;携带值为空串或携带值为null时,作为筛选条件。 status 否 Integer - 订单状态: 1:待审核 3:处理中 4:已取消 5:已完成 6:待支付 9:待确认 此参数不携带或携带值为空或携带值为null时,不作为筛选条件;不支持携带值为空串。 order_type 否 String 最大长度:64 订单类型: 1:开通 2:续订 3:变更 4:退订 10:包年/包月转按需 11:按需转包年/包月 13:试用 14:转商用 15:费用调整 此参数不携带或携带值为空时,不作为筛选条件;不支持携带值为空串或携带值为null。 limit 否 Integer [1-100] 每次查询的订单数量,默认值为10。 此参数不携带或携带值为空或携带值为null时,取默认值10;不支持携带值为空串。 offset 否 Integer [0-最大整数] 偏移量,从0开始。默认值为0。 此参数不携带或携带值为空或携带值为null时,取默认值0;不支持携带值为空串。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 示例1,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 示例2,查询总数20条,期望每页返回10条数据,则获取第一页数据,入参offset填写0,limit填写10;获取第二页数据,入参offset填写10,limit填写10。 order_by 否 String 最大长度:36 查询的订单列表排序。大小写不敏感。 支持按照创建时间进行排序,带-表示倒序。 创建时间:升序为createTime,倒序为-createTime。 此参数不携带或携带值为空或携带值为空串或携带值为null时,按照创建时间倒序排列。 payment_time_begin 否 String 最大长度:20 订单支付开始时间。 UTC时间,格式:yyyy-MM-dd'T'HH:mm:ss'Z',如“2019-05-06T08:05:01Z”。 其中,HH范围是0~23,mm和ss范围是0~59。 订单支付开始时间与订单支付结束时间间隔不能超过1年。 此参数不携带或携带值为空时,不作为筛选条件;不支持携带值为空串或携带值为null。 payment_time_end 否 String 最大长度:20 订单支付结束时间。 UTC时间,格式:yyyy-MM-dd'T'HH:mm:ss'Z',如“2019-05-06T08:05:01Z”。 其中,HH范围是0~23,mm和ss范围是0~59。 订单支付开始时间与订单支付结束时间间隔不能超过1年。 此参数不携带或携带值为空时,不作为筛选条件;不支持携带值为空串或携带值为null。 indirect_partner_id 否 String 最大长度:64 云经销商ID。获取方法请参见查询云经销商列表。 华为云总经销商(一级经销商)查询云经销商的客户订单列表时,需要携带该参数,否则只能查询自己客户的订单列表。 此参数不携带或携带值为空时,不作为筛选条件;携带值为空串或携带值为null时,作为筛选条件。 method 否 String 最大长度:64 查询方式。 oneself:客户自己订单 sub_customer:客户给企业子代付订单 此参数不携带或携带值为空串或携带值为null时,默认值为“oneself”。
  • URI GET /v2/products/incentive-discount-policies 参数说明请参见表 查询参数。 表1 查询参数 参数 是否必选 参数类型 取值范围 描述 time 是 String 最大长度:20 查询策略的指定时间。东八区时间,格式:YYYY-MM。 说明: 实际查询结果为指定时间所在月最后一天23:59:59的策略情况。 service_type_code 否 String 最大长度:64 云服务类型编码,例如OBS的云服务类型编码为“hws.service.type.obs”。您可以调用查询云服务类型列表接口获取。 此参数不携带或携带值为空或携带值为null时,不作为筛选条件;携带值为空串,作为筛选条件。 offset 否 Integer [0-最大整数] 偏移量,从0开始。默认值为0。 此参数不携带或携带值为空或携带值为null时,取默认值0;不支持携带值为空串。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 示例1,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 示例2,查询总数20条,期望每页返回10条数据,则获取第一页数据,入参offset填写0,limit填写10;获取第二页数据,入参offset填写10,limit填写10。 limit 否 Integer [1-100] 每次查询的数量,默认值为10。 此参数不携带或携带值为空或携带值为null时,取默认值10;不支持携带值为空串。
  • 请求消息 请求参数 无 请求示例 GET https://bss.myhuaweicloud.com/v2/products/incentive-discount-policies?time=2021-10&service_type_code=hws.service.type.workplace&offset=0&limit=10 HTTP/1.1 Content-Type: application/json X-Auth-Token:MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 描述 400 CBC.0100 参数错误 400 CBC.99000000 无对该客户的操作权限。 400 CBC.99000035 非合作伙伴子客户。 400 CBC.99000037 您没有操作该云经销商的权限。 403 CBC.0151 访问拒绝。 500 CBC.0999 其他错误。
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 描述 400 CBC.0100 参数错误。 400 CBC.0101 参数无效。 400 CBC.99000037 您没有操作该云经销商的权限。 403 CBC.0155 不允许执行当前请求。 原因可能为账号鉴权信息不正确、账号或子账号没有接口调用权限。 500 CBC.0999 其他错误。
  • URI GET /v2/orders/customer-orders/details/{order_id} 参数说明请参见下表。 表1 路径参数 参数 是否必选 取值范围 描述 order_id 是 最大长度:64 订单ID。 查询订单列表时系统会返回订单ID。 表2 查询参数 参数 是否必选 取值范围 描述 offset 否 [0-最大整数] 偏移量,从0开始。默认值为0。 此参数不携带或携带值为空或携带值为null,取默认值0。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 示例1,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 示例2,查询总数20条,期望每页返回10条数据,则获取第一页数据,入参offset填写0,limit填写10;获取第二页数据,入参offset填写10,limit填写10。 limit 否 [1-100] 每页大小。默认值为10。 此参数不携带或携带值为空或携带值为null,取默认值10。 indirect_partner_id 否 最大长度:64 云经销商ID。获取方法请参见查询云经销商列表。 华为云总经销商(一级经销商)查询云经销商的客户订单详情时,需要携带该参数;除此之外,此参数不做处理。否则只能查询自己客户的订单详情。 表3 消息头参数 参数 是否必选 参数类型 取值范围 描述 X-Language 否 String 最大长度:10 语言。 zh_CN:中文 en_US:英文 缺省为zh_CN。
  • 请求消息 请求参数 无 请求示例 GET https://bss.myhuaweicloud.com/v2/orders/customer-orders/details/ CS 19040119281JMYC?limit=10&offset=0&indirect_partner_id=c9e731c4663646988ef4cdb3122837b6 HTTP/1.1 Content-Type: application/json X-Auth-Token:MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ
  • 请求消息 请求参数 无 请求示例 GET https://bss.myhuaweicloud.com/v2/products/usage-types?offset=0&limit=3 HTTP/1.1 Content-Type: application/json X-Auth-Token:MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ X-Language: zh_CN
  • URI GET /v2/products/usage-types 表1 Header参数 参数 是否必选 取值范围 描述 X-Language 否 最大长度:8 语言。 中文:zh_CN 英文:en_US 缺省为zh_CN。 表2 查询参数 参数 是否必选 参数类型 取值范围 描述 resource_type_code 否 String 最大长度:64 资源类型编码,例如ECS的VM为“hws.resource.type.vm”。您可以调用查询资源类型列表接口获取。 此参数不携带或携带值为空时,不作为筛选条件;携带值为空串或携带值为null时,作为筛选条件。 offset 否 Integer [0-100000000] 偏移量,从0开始。默认值为0。 此参数不携带或携带值为空或携带值为null时,取默认值0;不支持携带值为空串。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 示例1,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 示例2,查询总数20条,期望每页返回10条数据,则获取第一页数据,入参offset填写0,limit填写10;获取第二页数据,入参offset填写10,limit填写10。 limit 否 Integer [1-100] 每次查询的数量,默认值为10。 此参数不携带或携带值为空或携带值为null时,取默认值10;不支持携带值为空串。
  • 共享 基于 资源访问管理 (Resource Access Manager,简称 RAM )服务,资源所有者可以依据最小权限原则和不同的使用诉求,选择不同的共享权限,资源使用者只能对资源进行权限内的访问,保证共享资源在满足资源使用者业务诉求的同时,提升资源管理的安全性。关于RAM服务的更多信息请参见什么是资源访问管理。 当您的账号由华为云组织管理时,您还可以利用此优势更轻松地共享资源。如果您的账号在组织中,则您可以与单个账号共享,也可以与组织或OU中的所有账号共享,而不必枚举每个账号,具体请参见启用与组织共享资源。 共享VPC 更新共享 退出共享
  • 使用场景 以最基础的数据库用户名及密码管理为示例,为您介绍凭据管理服务基本的使用场景。 使用场景:管理员角色负责存入、更新凭据值的操作,使用者通过第三方应用服务获取所需的凭据值,具体使用流程如图 凭据登录流程所示。 图1 凭据登录流程 流程说明如下: 您首先需要在凭据管理服务中使用控制台或者API创建一个凭据,用来存储数据库的相关信息(例如:数据库地址、端口、密码)。 当您使用应用程序访问数据库时,凭据管理服务会去查询管理员通过步骤1所创建的凭据内存储的内容。 凭据管理服务检索并解密凭据密文,将凭据中保存的信息通过凭据管理API安全地返回到应用程序中。 应用程序获取到解密后的凭据明文信息,使用这些安全的信息访问数据库。 父主题: 凭据管理
  • OBS服务端加密 用户使用OBS(Object Storage Service,OBS)服务端加密方式上传时,可以选择“SEE-KMS加密”,从而使用KMS提供的密钥来加密上传的文件,如图1所示。更多信息请参见《 对象存储服务 控制台指南》。 图1 OBS服务端加密 可供选择的用户主密钥包含以下两种: KMS为使用OBS的用户创建一个默认密钥“obs/default”。 用户通过KMS界面创建的自定义密钥。 SM4加密算法仅支持华北-乌兰察布一区域。 用户也可以通过调用OBS API接口,选择服务端加密SSE-KMS方式(SSE-KMS方式是指OBS使用KMS提供的密钥进行服务端加密)上传文件,详情请参考《对象存储服务API参考》。 父主题: 使用KMS加密的云服务
  • 获取Windows操作系统弹性云服务器的登录密码 如果用户购买的是Windows操作系统的弹性云服务器,需要使用密钥对的私钥获取登录密码,详细信息请参见《弹性云服务器用户指南》。 购买弹性云服务器时,可供选择的密钥对包含以下两种: 用户通过云服务器控制台界面创建或者导入密钥对。 用户通过密钥对管理服务(Key Pair Service, KPS)界面创建或者导入密钥对。 两种密钥对没有区别,只是导入的渠道不同。
  • 统一身份认证 服务的关系 统一身份认证服务(Identity and Access Management, IAM )为 数据加密 服务供了权限管理的功能。 需要拥有KMS Administrator权限的用户才能使用DEW服务。 需要同时拥有KMS Administrator和Server Administrator权限的用户才能使用密钥对管理功能。 如需开通该权限,请联系拥有Security Administrator权限的用户,详细内容请参考《统一身份认证服务用户指南》。
  • 与弹性云服务器的关系 弹性云服务器(Elastic Cloud Server,ECS)是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服务器。 KPS为ECS提供密钥对的管理控制能力,应用于用户登录弹性云服务器时,对用户身份认证的功能。 Dedicated HSM提供的专属加密实例可以为部署在弹性云服务器内的业务系统加密敏感数据,用户可完全控制密钥的生成、存储和访问授权,保证数据在传输、存储过程中的完整性、保密性。
  • 云审计 服务的关系 云审计服务(Cloud Trace Service, CTS )记录数据加密服务相关的操作事件,方便用户日后的查询、审计和回溯,具体请参见《云审计服务用户指南》。 表1 云审计服务支持的KMS操作列表 操作名称 资源类型 事件名称 创建密钥 cmk createKey 创建数据密钥 cmk createDataKey 创建不含明文数据密钥 cmk createDataKeyWithoutPlaintext 启用密钥 cmk enableKey 禁用密钥 cmk disableKey 加密数据密钥 cmk encryptDatakey 解密数据密钥 cmk decryptDatakey 计划删除密钥 cmk scheduleKeyDeletion 取消计划删除密钥 cmk cancelKeyDeletion 创建随机数 rng genRandom 修改密钥别名 cmk updateKeyAlias 修改密钥描述 cmk updateKeyDescription 密钥删除风险提示 cmk deleteKeyRiskTips 导入密钥材料 cmk importKeyMaterial 删除密钥材料 cmk deleteImportedKeyMaterial 创建授权 cmk createGrant 退役授权 cmk retireGrant 撤销授权 cmk revokeGrant 加密数据 cmk encryptData 解密数据 cmk decryptData 添加标签 cmk dealUnifiedTags 删除标签 cmk dealUnifiedTags 批量添加标签 cmk dealUnifiedTags 批量删除标签 cmk dealUnifiedTags 开启密钥轮换 cmk enableKeyRotation 修改密钥轮换周期 cmk updateKeyRotationInterval 表2 云审计服务支持的C SMS 操作列表 操作名称 资源类型 事件名称 创建凭据 secret createSecret 更新凭据 secret updateSecret 删除凭据 secret forceDeleteSecret 计划删除凭据 secret scheduleDelSecret 取消计划删除凭据 secret restoreSecretFromDeletedStatus 创建凭据状态 secret createSecretStage 更新凭据状态 secret updateSecretStage 删除凭据状态 secret deleteSecretStage 创建凭据版本 secret createSecretVersion 下载凭据备份 secret backupSecret 恢复凭证备份 secret restoreSecretFromBackupBlob 更新凭据版本 secret putSecretVersion 凭据轮转 secret rotateSecret 创建凭据事件 secret createSecretEvent 更新凭据事件 secret updateSecretEvent 删除凭据事件 secret deleteSecretEvent 创建资源标签 secret createResourceTag 删除资源标签 secret deleteResourceTag 表3 云审计服务支持的KPS操作列表 操作名称 资源类型 事件名称 创建或导入SSH密钥对 keypair createOrImportKeypair 删除SSH密钥对 keypair deleteKeypair 导入私钥 keypair importPrivateKey 导出私钥 keypair exportPrivateKey 绑定SSH密钥对 keypair bindKeypair 解绑SSH密钥对 keypair unbindKeypair 清除私钥 keypair clearPrivateKey 表4 云审计服务支持的DHSM操作列表 操作名称 资源类型 事件名称 购买云加密实例 hsm purchaseHsm 实例化云加密实例 hsm createHsm 删除云加密实例 hsm deleteHsm
  • 设备端开发 完成云端配置后,需要进行设备端业务开发。完整的设备开发流程可参考设备侧开发。本章节以MQTT.fx为例,介绍在设备迁移场景下,设备侧如何在尽量少改动的情况下,实现设备建立MQTT连接、数据上报、指令接收等功能。 设备同 物联网平台 建立MQTT连接。 参考下表配置鉴权参数。 参数 必选/可选 参数描述 Broker Address 必选 华为云物联网平台的MQTT协议接入地址,请参考此处获取。 Broker Port 必选 8883。若设备侧MQTT接入端口不是8883,且无法修改,可以开通企业版实例。 Client ID 可选 使用设备迁移前的Client ID。 User Name 必选 填写步骤3注册设备时生成的设备ID,默认通过控制台生成的设备ID会添加产品ID前缀。在设备迁移场景,设备侧User Name参数无法修改时可以调用创建设备接口,指定设备ID参数值同迁移前的User Name参数值保持一致。 Password 必选 加密后的设备密钥。Password的值为使用“HMACSHA256”算法以时间戳为密钥,对secret进行加密后的值。 secret为注册设备时平台返回的secret。 参考下表配置“SSL/TLS”认证参数,然后单击“Apply”。 参数 必选/可选 参数描述 Enable SSL/TLS 必选 选择“Enable SSL/TLS” CA certificate file 必选 上传证书资源页面获取的CA证书。 设备同物联网平台建立连接后,设备沿用迁移前的topic和payload格式上报数据。物联网平台针对这类非系统预定义的topic,统一按照“设备消息”的处理流程将设备上报的数据转发给第三方应用或者华为云的其他云服务处理。 图2 设备在线 根据迁移前的topic进行订阅,接收应用服务器下发的指令。
  • 整体方案 假设企业终端设备接入自建MQTT集群,业务架构如下图所示。 基于MQTT协议的上行数据和下行指令的业务定义如下: 业务场景 通信Topic 报文Payload 设备上报数据 /aircondition/data/up { "temperature": 26.0 } 服务端控制指令 /aircondition/cmd { "switch": "off" } 为减少企业改造成本,华为云物联网平台提供如下迁移方案,设备侧不用改变原有的topic和payload报文格式,就可以快速迁移设备到华为云物联网平台。 企业设备迁移上云有三个核心变更点: 设备侧修改接入 域名 为华为云物联网平台的接入点。 配置规则引擎,把设备数据流转到应用服务器、AMQP消费组或华为云第三方云服务产品。 应用服务器适配设备消息下发接口往指定topic下发消息。
  • 测试模型 workload模型 表2 测试模型 测试模型编号 测试模型 读多写少场景 workload-read-mostly 95% read, 5% update 读写均衡场景 workload-read-write-combination 50% update, 50% read 读改写均衡场景 workload-read-modify-write 50% read, 50% readmodifywrite 读更新写混合场景 workload-mixed-operational-analytical 65% read, 25% update, 10% insert 写多读少场景 workload-insert-mostly 90% insert, 10% read 数据模型 fieldlength=100, fieldcount=10 预置数据量 本次性能测试中,针对每种规格的实例,测试了如下预置数据量的性能。 预置数据具体如下表所示: 表3 预置数据量 编号 规格 预置数据量 cluster1 4U16GB 50GB cluster2 8U32GB 100GB cluster3 16U64GB 200GB cluster4 32U128GB 400GB
  • 测试环境 区域:华北-北京四 可用区:可用区1+可用区2+可用区3(跨3个可用区部署) 弹性云服务器(Elastic Cloud Server,简称ECS):规格选择h3.4xlarge.2,16U32GB,操作系统镜像使用CentOS 7.5 64位版本。 被测试实例的配置:每个实例均包含3个节点。 被测试实例的规格:覆盖以下规格类型,详见表1 实例规格。 表1 实例规格 编号 规格 cluster1 4U16GB cluster2 8U32GB cluster3 16U64GB cluster4 32U128GB
  • 产品优势 使用成本低 随着业务的发展,企业数据量持续不断地增加,DynamoDB读写请求累加带来的费用也日渐高涨。而GeminiDB DynamoDB协议具有较高的性价比,既能提供更高的吞吐,又可以降低一半的DynamoDB使用成本,尤其当数据量较大时成本降低更加明显。 更灵活开发的部署方式 DynamoDB是一项全托管服务,用户使用需要遵循一定的部署方式和规则。相比之下,GeminiDB DynamoDB协议可以根据用户的具体需求灵活地部署服务,客户可以选择部署在私有云或公有云上,而不是被锁定在昂贵的平台上。无论在哪种部署环境下,GeminiDB DynamoDB协议都可以保证服务的稳定和高效。 平滑的迁移 除了以上两点,GeminiDB DynamoDB协议可以完全兼容DynamoDB的语法和数据模型,所以从DynamoDB迁移到GeminiDB DynamoDB协议将变得非常容易,应用程序也不需要进行任何修改,迁移工作将会更高效便捷,对业务也更加友好。
  • 性能测试数据 不同测试模型下,不同规格且预置相当数据量,测试的OPS*数据(表格中黑色字体),详见表1 测试数据中加粗内容。 表1 测试数据 节点规格 4U16GB 8U32GB 16U64GB 32U128GB 客户端并发数 32 64 128 256 预置数据量 50GB 100GB 200GB 400GB 读多写少场景 workload-read-mostly 15627 44612 90713 169037 读写均衡场景 workload-read-write-combination 19565 46240 95065 158793 读改写均衡场景 workload-read-modify-write 11768 29488 59332 96964 读更新写混合场景 workload-mixed-operational-analytical 17534 40214 80661 137616 写多读少场景 workload-insert-mostly 23830 44548 67290 111540 OPS:Operation Per Second,数据库每秒执行的操作数。 测试模型编号:测试模型编号对应的测试模型,请参见表2 测试模型。 父主题: 性能白皮书
  • 兼容的接口列表 表1 接口列表 接口名称 CreateTable UpdateTable DescribeTable ListTables DeleteTable PutItem UpdateItem GetItem DeleteItem BatchWriteItem BatchGetItem Query Scan UpdateTimeToLive 表2 CreateTable接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 CreateTable 请求参数 AttributeDefinitions 是 是 - KeySchema 是 是 - TableName 是 是 Table Name 字符长度3~48,正则表达式([\w-]+)。 BillingMode 否 否 计费属性,暂不支持。 GlobalSecondaryIndexes 否 是 - LocalSecondaryIndexes 否 是 - ProvisionedThroughput 否 是 - SSESpecification 否 否 当前版本不支持,规划中。 StreamSpecification 否 否 当前版本不支持,规划中。 Tags 否 否 当前版本不支持,规划中。 返回参数 TableDescription - 是 - 表3 UpdateTable接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 UpdateTable 请求参数 AttributeDefinitions 否 是 - BillingMode 否 否 计费属性,不予支持。 GlobalSecondaryIndexesUpdates 是 是 支持Create和Delete,不支持Update。 ProvisionedThroughput 否 否 计费属性,不予支持。 ReplicaUpdates 否 否 默认强一致性。 SSESpecification 否 否 当前版本不支持,规划中。 StreamSpecification 否 否 当前版本不支持,规划中。 TableName 是 是 - 返回参数 TableDescription - 是 - 表4 DescribeTable接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 DescribeTable 请求参数 TableName 是 是 - 返回参数 Table - 是 不支持itemCount字段。 表5 ListTables接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 ListTables 请求参数 ExclusiveStartTableName 否 是 - Limit 否 是 - 返回参数 LastEvaluatedTableName - 是 - TableNames - 是 - 表6 DeleteTable接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 DeleteTable 请求参数 TableName 是 是 - 返回参数 TableDescription - 是 - 表7 PutItem接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 PutItem 请求参数 Item 是 是 - TableName 是 是 - ConditionalOperator 否 否 遗弃参数,见ConditionExpression。 ConditionExpression 否 是 - Expected 否 否 遗弃参数,见该接口中ConditionExpression字段。 ExpressionAttributeNames 否 是 - ExpressionAttributeValues 否 是 - ReturnConsumedCapacity 否 否 计费属性,暂不支持。 ReturnItemCollectionMetrics 否 否 统计属性,暂不支持。 ReturnValues 否 是 - 返回参数 Attributes - 是 - ConsumedCapacity - 否 计费属性,暂不支持。 ItemCollectionMetrics - 否 统计属性,暂不支持。 表8 UpdateItem接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 UpdateItem 请求参数 Key 是 是 - TableName 是 是 - AttributeUpdates 否 否 遗弃参数,见该接口中UpdateExpression字段。 ConditionalOperator 否 否 遗弃参数,见该接口中UpdateExpression字段。 ConditionExpression 否 是 - Expected 否 否 遗弃参数,见该接口中UpdateExpression字段。 ExpressionAttributeNames 否 是 - ExpressionAttributeValues 否 是 - ReturnConsumedCapacity 否 否 计费属性,暂不支持。 ReturnItemCollectionMetrics 否 否 统计属性,暂不支持。 ReturnValues 否 是 - UpdateExpression 否 是 - 返回参数 Attributes - 是 - ConsumedCapacity - 否 计费属性,暂不支持。 ItemCollectionMetrics - 否 统计属性,暂不支持。 表9 GetItem接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 GetItem 请求参数 Key 是 是 - TableName 是 是 - AttributesToGet 否 否 遗弃参数,见该接口中ProjectionExpression字段。 ConsistentRead 否 否 默认强一致性。 ExpressionAttributeNames 否 是 - ProjectionExpression 否 是 - ReturnConsumedCapacity 否 否 计费属性,暂不支持。 返回参数 ConsumedCapacity - 否 计费属性,暂不支持。 Item - 是 - 表10 DeleteItem接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 DeleteItem 请求参数 Key 是 是 - TableName 是 是 - ConditionalOperator 否 否 遗弃参数,见该接口中ConditionExpression字段。 ConditionExpression 否 是 - Expected 否 否 遗弃参数,见该接口中ConditionExpression字段。 ExpressionAttributeNames 否 是 - ExpressionAttributeValues 否 是 - ReturnConsumedCapacity 否 否 计费属性,暂不支持。 ReturnItemCollectionMetrics 否 否 统计属性,暂不支持。 ReturnValues 否 是 - 返回参数 Attributes - 是 - ConsumedCapacity - 否 计费属性,暂不支持。 ItemCollectionMetrics - 否 统计属性,暂不支持。 表11 BatchWriteItem接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 BatchWriteItem 请求参数 RequestItems 是 是 - ReturnConsumedCapacity 否 否 计费属性,暂不支持。 ReturnItemCollectionMetrics 否 否 统计属性,暂不支持。 返回参数 ConsumedCapacity - 否 计费属性,暂不支持。 ItemCollectionMetrics - 否 统计属性,暂不支持。 UnprocessedItems - 是 - 表12 BatchGetItem接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 BatchGetItem 请求参数 RequestItems 是 是 无 ReturnConsumedCapacity 否 否 计费属性,暂不支持。 返回参数 ConsumedCapacity - 否 统计属性,暂不支持。 Responses - 是 - UnprocessedKeys - 是 - 表13 Query接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 Query 请求参数 TableName 是 是 - AttributesToGet 否 否 遗弃参数,见该接口中ProjectionExpression字段。 ConditionalOperator 否 否 遗弃参数,见该接口中ProjectionExpression字段。 ConsistentRead 否 否 默认强一致性。 ExclusiveStartKey 否 是 - ExpressionAttributeNames 否 是 - ExpressionAttributeValues 否 是 - FilterExpression 否 是 - IndexName 否 是 - KeyConditionExpression 否 是 - KeyConditions 否 否 遗弃参数,见该接口中KeyConditionExpression字段。 Limit 否 是 - ProjectionExpression 否 是 - QueryFilter 否 否 遗弃参数,见该接口中FilterExpression字段。 ReturnConsumedCapacity 否 否 计费属性,暂不支持。 ScanIndexForward 否 是 - Select 否 是 不支持Count。 返回参数 ConsumedCapacity - 否 计费属性,暂不支持。 Count - 是 - Items - 是 - LastEvaluatedKey - 是 - ScannedCount - 是 - 表14 Scan接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 Scan 请求参数 TableName 是 是 - AttributesToGet 否 否 遗弃参数,见该接口中ProjectionExpression字段。 ConditionalOperator 否 否 遗弃参数,见该接口中ConditionExpression字段。 ConsistentRead 否 否 默认强一致性。 ExclusiveStartKey 否 是 - ExpressionAttributeNames 否 是 - ExpressionAttributeValues 否 是 - FilterExpression 否 是 - IndexName 否 是 - Limit 否 是 - ProjectionExpression 否 是 - ReturnConsumedCapacity 否 否 计费属性,暂不支持。 ScanFilter 否 否 遗弃参数,该接口中FilterExpression字段。 Segment 否 是 - Select 否 是 不支持Count类型。 TotalSegments 否 是 - 返回参数 ConsumedCapacity 否 否 计费属性,暂不支持。 Count - 是 - Items - 是 - LastEvaluatedKey - 是 - ScannedCount - 是 - 表15 UpdateTimeToLive接口兼容性介绍 接口名称 参数 是否必选 是否支持 备注 UpdateTimeToLive 请求参数 TableName 是 是 - TimeToLiveSpecification 是 是 - 返回参数 TimeToLiveSpecification - 是 -
  • 负载均衡 DynamoDB应用程序通常连接的一个URL,在服务端内部会进行请求的分发。我们希望DynamoDB接口的请求均匀的分布在所有的节点,实现这个目标DynamoDB提供了低成本并且小型的库,将它附加到DynamoDB SDK。其基本原理是客户端维护当前DB集群存活的节点列表,在DynamoDB SDK发送请求前拦截器会修改请求头中的目标地址,从而达到负载均衡的目的。下面提供简单的使用示例: TABLE_NAME ='user' // seed url URL = boto3_lb.setup(['***.***.***.***'],'http',8000,'fake.domain.com') dynamodb = boto3.resource('dynamodb', endpoint_url=URL,region_name='None', aws_access_key_id='None', aws_secret_access_key='None')
  • 支持的表达式 GeminiDB DynamoDB中的ConditionExpression支持的函数语法如下: function ::= attribute_exists (path) | attribute_not_exists (path) | attribute_type (path, type) | begins_with (path, substr) | contains (path, operand) contains(path,operand)中operand只能是属性值(即传入的value占位符)。 GeminiDB DynamoDB中的UpdateExpression语法如下: update-expression ::= [ SET action [, action] ... ] [ REMOVE action [, action] ...] [ ADD action [, action] ... ] [ DELETE action [, action] ...] set-action ::= path =value value ::= operand | operand '+' operand | operand '-' operand operand ::= path | function function ::= if_not_exists (path, value) | list_append (list1, list2) remove-action ::= path add-action ::= path value delete-action ::= path value SET path = operand语法中,不支持operand是path的场景。 SET path = operand1 '+'|'-' operand2语法中,operand1必须等于path,operand2必须是属性值 SET path = if_not_exists (path, value)语法中,两个path必须相等,且value只能是表达式属性值。 所有的value只能是占位符,比如':placeholder'。
  • 使用须知 流量统计以及流量限制,当前版本不支持。 Stream功能、事务功能(TransactWriteItems, TransactGetItems) 不支持。 不支持按需备份接口:CreateBackup、DescribeBackup、 DeleteBackup, ListBackups, RestoreTableFromBackup。 在DynamoDB中,哈希键(或分区键)决定项目将存储在DynamoDB内部存储中的位置。DynamoDB使用专有的哈希函数,GeminiDB DynamoDB采用的是Murmur3算法,这种差异会导致Scan操作在DynamoDB和GeminiDB DynamoDB数据返回的顺序不同。 DynamoDB应用程序指定一个Endpoint地址,采用客户端的负载均衡插件,将请求均匀的发送到后端节点。若不使用该插件,则只会连接单个Endponit。详细负载均衡代码包可联系客服提供。 表/索引名称中不能包含.。 由于编码方式的不同,每行数据大小不会严格400K限制, DDL接口均为同步接口。
  • 事件监控支持的事件说明 表1 云数据库 GeminiDB事件监控支持的事件说明 事件来源 事件名称 事件ID 事件级别 事件说明 处理建议 事件影响 NoSQL 创建实例业务失败 NoSQLCreateInstanceFailed 重要 一般是由于实例配额不足或底层资源不足等原因导致。 先释放不再使用的实例再尝试重新发放,或者提交工单调整配额上限。 无法创建数据库实例。 变更规格失败 NoSQLResizeInstanceFailed 重要 一般是由于底层资源不足等原因导致。 提交工单让运维在后台协调资源再重试规格变更操作。 业务中断。 添加节点失败 NoSQLAddNodesFailed 重要 一般是由于底层资源不足等原因导致。 提交工单让运维在后台协调资源,删除添加失败的节点,重新尝试添加新节点。 无 删除节点失败 NoSQLDeleteNodesFailed 重要 一般是由于底层释放资源失败导致。 重新尝试删除节点。 无 扩卷失败 NoSQLScaleUpStorageFailed 重要 一般是由于底层资源不足等原因导致。 提交工单让运维在后台协调资源再重试扩卷操作。 如果磁盘满,会导致业务中断。 重置密码失败 NoSQLResetPasswordFailed 重要 一般是由于重置密码命令超时导致。 重新尝试重置密码操作。 无 修改参数模板失败 NoSQLUpdateInstanceParamGroupFailed 重要 一般是由于修改参数模板命令超时导致。 重新尝试修改参数模板操作。 无 设置备份策略失败 NoSQLSetBackupPolicyFailed 重要 一般是由于数据库连接异常导致。 重新重试设置备份策略操作。 无 创建手动备份失败 NoSQLCreateManualBackupFailed 重要 一般是备份文件导出失败或上传失败等原因导致。 提交工单让运维处理。 无法备份数据。 创建自动备份失败 NoSQLCreateAutomatedBackupFailed 重要 一般是备份文件导出失败或上传失败等原因导致。 提交工单让运维处理。 无法备份数据。 实例运行状态异常 NoSQLFaultyDBInstance 重要 由于灾难或者物理机故障导致实例故障时,会上报该事件,属于关键告警事件。 提交工单。 可能导致数据库服务不可用。 实例运行状态异常已恢复 NoSQLDBInstanceRecovered 重要 针对灾难性的故障,NoSQL有高可用工具会自动进行恢复或者手动恢复,执行完成后会上报该事件。 不需要处理。 无 节点运行状态异常 NoSQLFaultyDBNode 重要 由于灾难或者物理机故障导致数据库节点故障时,会上报该事件,属于关键告警事件。 检查数据库服务是否可以正常使用,并提交工单。 可能导致数据库服务不可用。 节点运行状态异常已恢复 NoSQLDBNodeRecovered 重要 针对灾难性的故障,NoSQL有高可用工具会自动进行恢复或者手动恢复,执行完成后会上报该事件。 不需要处理。 无 实例主备切换 NoSQLPrimaryStandbySwitched 重要 在手动触发的主备倒换或节点故障自动触发的故障倒换场景下,会上报该事件。 不需要处理。 无 出现热点分区键 HotKeyOccurs 重要 客观上是因为主键设置不合理,使得热点数据集中分布在一个分区。客户端不合理的应用程序设计,造成对某一key的频繁读写。 1. 选择合理的分区键。 2. 业务增加缓存,业务应用先从缓存中读取热点数据。 影响业务请求成功率,存在影响集群性能及稳定性的风险。 出现超大分区键 BigKeyOccurs 重要 主键设计不合理,单个分区的记录数或数据量过大,引起了节点负载不均。 1. 选择合理的分区键 2. 基于现有分区键,增加分区键散列。 随着数据量增长,集群稳定性会下降。 数据盘空间不足 NoSQLRiskyDataDiskUsage 重要 数据盘空间不足,产生此告警。 请参见对应服务用户指南中“扩容磁盘”的内容,进行磁盘扩容。 实例被设为只读模式,数据无法写入。 数据盘空间已扩容并恢复可写 NoSQLDataDiskUsageRecovered 重要 数据盘空间已扩容并恢复可写,产生此事件。 无需处理。 无 创建索引失败 NoSQLCreateIndexFailed 重要 业务负载超过实例规格瓶颈,此时再创建索引会耗费更多实例资源,导致响应变慢甚至卡顿,最终超时,引起索引创建失败。 1、根据业务负载,选择匹配的实例规格 2、在业务低峰期创建索引 3、使用后台方式创建索引 4、索引字段,结合业务进行合理选择。 索引创建失败或不完整,导致索引无效,需要删掉索引重新创建。 发生写入降速 NoSQLStallingOccurs 重要 写入速度快,接近集群规模和实例规格范围允许最大写能力,从而触发数据库自身的限流机制,会发生请求失败情况 1. 根据业务的最大写请求速率,调整集群规模或者节点规格 2. 衡量业务的最大写请求速率,分散业务写峰值速率 影响业务的请求的成功率 发生写入停止 NoSQLStoppingOccurs 重要 写入速度过快,达到集群规模和实例规格范围允许最大写能力,从而触发数据库自身的限流机制,会发生请求失败情况 1. 根据业务的最大写请求速率,调整集群规模或者节点规格 2. 衡量业务的最大写请求速率,分散业务写峰值速率 影响业务的请求的成功率 重启数据库失败 NoSQLRestartDBFailed 重要 一般是由于实例状态异常等原因导致。 提交工单让运维处理。 数据库实例状态可能存在异常。 恢复到新实例失败 NoSQLRestoreToNewInstanceFailed 重要 一般是由于底层资源不足等原因导致。 提交工单让运维在后台协调资源,重新尝试添加新节点。 无法恢复到新的数据库实例。 恢复到已有实例失败 NoSQLRestoreToExistInstanceFailed 重要 一般是由于备份文件下载或恢复失败等原因导致。 提交工单让运维处理。 当前数据库实例可能处于不可用状态。 删除备份文件失败 NoSQLDeleteBackupFailed 重要 一般是由于备份文件从obs删除失败导致。 重新尝试删除备份文件。 无 切换慢日志明文开关失败 NoSQLSwitchSlowlogPlainTextFailed 重要 一般是由于接口不支持切换等原因导致。 请查阅NoSQL用户指南,确认接口支持打开慢日志明文开关。提交工单让运维处理。 无 绑定EIP失败 NoSQLBindEipFailed 重要 一般是由于节点状态不正常,节点已经绑定EIP或EIP非法等原因导致。 检查节点是否正常,EIP是否合法。 无法通过公网访问数据库实例。 解绑EIP失败 NoSQLUnbindEipFailed 重要 一般是由于节点状态不正常,节点已经未绑定EIP等原因导致。 检查节点和EIP状态是否正常。 无 修改参数失败 NoSQLModifyParameterFailed 重要 一般是由于参数取值非法等原因导致。 排查参数值是否符合在合法范围内,提交工单让运维处理。 无 参数模板应用失败 NoSQLApplyParameterGroupFailed 重要 一般是由于实例状态异常导致参数模板无法应用等原因导致。 提交工单让运维处理。 无 开启或关闭SSL失败 NoSQLSwitchSSLFailed 重要 一般是由于修改SSL命令超时导致。 重新提交一次或者提交工单处理,并先保持切换之前使用SSL的连接方式。 是否使用SSL连接。 单行数据量太大 LargeRowOccurs 重要 用户单行数据量过大,可能会导致查询超时,进而节点OOM异常等各种故障发生。 1. 对每列和每行的写入长度做限制,遵从规范,使得单行的的key和value长度和不超过阈值。 2. 排查业务是否出现异常写入和异常编码,导致写入大row。 过大的单行记录,随着数据量增长,集群稳定性会下降。 父主题: 事件监控
  • 查询性能测试数据 不同业务模型和实例规格下,查询性能测试数据不同,详情请参见如下表格。 不同业务模型说明请参见表1。 测试实例类型:集群,规格:4U16GB,测试并发数:20,执行100万次,计算平均值 表3 测试数据 测试模型 OPS(单位:queries/sec) 平均时延(单位:ms) 最小时延(单位:ms) 最大时延(单位:ms) high-cpu-all 710.81 28.12 9.35 714.11 single-groupby-1-8-1 1308.56 13.74 2.56 148.96 single-groupby-1-1-1 6393.67 3.10 1.43 45.02 cpu-max-all-1 850.51 23.49 6.16 715.23
  • 支持审计的关键操作列表 通过云审计服务,您可以记录与GeminiDB Influx相关的操作事件,便于日后的查询、审计和回溯。 表1 GeminiDB Influx的关键操作列表 操作名称 资源类型 事件名称 创建实例 instance NoSQLCreateInstance 删除实例 instance NoSQLDeleteInstance 扩容节点 instance NoSQLEnlargeInstance 缩容节点 instance NoSQLReduceInstance 重启实例 instance NoSQLRestartInstance 恢复到新实例 instance NoSQLRestoreNewInstance 磁盘扩容 instance NoSQLExtendInstanceVolume 重置密码 instance NoSQLResetPassword 修改实例名称 instance NoSQLRenameInstance 规格变更 instance NoSQLResizeInstance 绑定弹性公网IP instance NoSQLBindEIP 解绑弹性公网IP instance NoSQLUnBindEIP 实例冻结 instance NoSQLFreezeInstance 实例解冻 instance NoSQLUnfreezeInstance 创建备份 backup NoSQLCreateBackup 删除备份 backup NoSQLDeleteBackup 设置备份策略 backup NoSQLSetBackupPolicy 添加实例标签 tag NoSQLAddTags 修改实例标签 tag NoSQLModifyInstanceTag 删除实例标签 tag NoSQLDeleteInstanceTag 创建参数模板 parameterGroup NoSQLCreateConfigurations 修改参数模板 parameterGroup NoSQLUpdateConfigurations 修改实例参数 parameterGroup NoSQLUpdateInstanceConfigurations 复制参数模板 parameterGroup NoSQLCopyConfigurations 重置参数模板 parameterGroup NoSQLResetConfigurations 应用参数模板 parameterGroup NoSQLApplyConfigurations 删除参数模板 parameterGroup NoSQLDeleteConfigurations 删除扩容失败的节点 instance NoSQLDeleteEnlargeFailNode 切换SSL instance NoSQLSwitchSSL 修改实例安全组 instance NoSQLModifySecurityGroup 实例导出参数模板 instance NoSQLSaveConfigurations 回收站策略 instance NoSQLModifyRecyclePolicy 父主题: 审计
共100000条