华为云用户手册

  • 响应示例 状态码:200 successful operation { "storage_pools" : [ { "id" : "d70a8f73-edef-4b71-beb3-7dbc22f0365e", "name" : "SAS-ojoiv", "edge_site_id" : "a4a36874-c41b-4295-9fd5-6823864fd564", "storage_type" : "SAS", "volume_type" : "SAS", "status" : "AVAILABLE", "assigned_size" : 36, "resource_spec_code" : "ies.blockstorage.gear1", "product_info" : { "cloud_service_type" : "hws.service.type.ies", "resource_type" : "hws.resource.type.iesvolume", "resource_spec_code" : "ies.blockstorage.gear1" }, "capacity" : 144, "market_options" : { "charge_mode" : "prepaid", "prepaid_options" : { "order_id" : " CS 2201181056V3SK6", "product_id" : "OFFI644832402269233154", "pay_mode" : "FULL" } }, "created_at" : "2022-01-18T02:56:02.76091Z", "updated_at" : "2022-01-18T02:59:56.5601Z", "effected_at" : "2022-01-19T02:59:25Z" } ], "page_info" : { "current_count" : 1 } }
  • 响应参数 状态码:200 表4 响应Body参数 参数 参数类型 描述 storage_pools Array of StoragePool objects 存储池列表 page_info PageInfo object 分页信息 表5 StoragePool 参数 参数类型 描述 id String 存储池ID name String 存储池名称 edge_site_id String 边缘小站ID storage_type String 存储类型。 SAS:高IO SSD:超高IO SAS_SD:高IO(软件定义型专用) SSD_SD:超高IO(软件定义型专用) SAS_ARM:高IO(鲲鹏) SSD_ARM:超高IO(鲲鹏) VS_SMALL_CAP:边缘对象存储-小容量型 VS_MEDIUM_CAP:边缘对象存储-中容量型 VS_LARGE_CAP:边缘对象存储-大容量型 status String 存储池状态。 CREATING:创建中 AVAILABLE:可用 EXPANDING:扩容中 PENDING_PAYMENT:待支付 FROZEN:已冻结 assigned_size Integer 存储池大小。 当前购买的存储容量。 resource_spec_code String 资源规格编码 product_info ProductInfo object 商品归属产品属性信息 capacity Integer 总容量 market_options MarketOptions object 计费信息 created_at String 创建时间 updated_at String 更新时间 effected_at String 生效时间 表6 ProductInfo 参数 参数类型 描述 cloud_service_type String 云服务类型 resource_type String 资源类型 resource_spec_code String 资源编码 表7 MarketOptions 参数 参数类型 描述 charge_mode String 计费模式。 prepaid:包周期 prepaid_options PrepaidOptions object 包周期计费信息 strategies Array of Strategy objects 表8 PrepaidOptions 参数 参数类型 描述 order_id String 订单ID product_id String 产品ID pay_mode String 包周期付款类型 FULL: 全预付 HALF:半预付 PAID_BY_YEAR:按年付费 ZERO_PAID_BY_YEAR:零预付-按年 表9 Strategy 参数 参数类型 描述 status String 运维状态说明: FREEZE - 已冻结 scene String 资源运营状态场景: ARREAR:欠费场景; POLICE:公安场景。 ILLEGAL:违规场景。 VERIFY:客户未实名认证冻结场景。 effect String 资源运营功能: DELETABLE:可删除 UNDELETABLE:不可删除 表10 PageInfo 参数 参数类型 描述 next_marker String 下一页标识。 current_count Integer 当前页数量。
  • URI GET /v1/{domain_id}/storage-pools 表1 路径参数 参数 是否必选 参数类型 描述 domain_id 是 String path中租户的账号ID 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每页的数量 marker 否 String 分页标识 sort_key 否 Array of strings 排序字段 sort_dir 否 Array of strings 排序方式,取值范围: desc:降序 asc:升序 edge_site_id 否 String 边缘小站ID
  • 响应示例 状态码:200 successful operation { "racks" : [ { "id" : "fe89570e-da65-4a4d-a64b-03231257dd96", "name" : "basic-absuv", "edge_site_id" : "a4a36874-c41b-4295-9fd5-6823864fd564", "rack_category_id" : "47ac059f-5df3-422b-b08a-eabba8c01980", "rack_type" : "BASIC", "status" : "AVAILABLE", "storage_assigned_size" : 36, "description" : null, "rack_sn_no" : "rack_sn_no", "rack_location_no" : "rack_location_no", "created_at" : "2022-01-18T02:56:02.759098Z", "updated_at" : "2022-01-18T02:59:56.559151Z", "effected_at" : "2022-01-19T02:59:25Z", "market_options" : { "charge_mode" : "prepaid", "prepaid_options" : { "order_id" : "CS2201181056V3SK6", "product_id" : "OFFI645544463633592326", "pay_mode" : "FULL" } }, "compute_unit" : [ { "flavor_type" : "C6", "count" : 4 }, { "flavor_type" : "Pi2", "count" : 1 } ], "storage_unit" : { "storage_type" : "SAS", "capacity" : 144, "gears" : [ 36, 72, 108, 144 ], "flavor_type" : "string", "count" : 1 }, "rack_info" : { "power" : 6000, "size" : "600mm*1200mm*2000mm(宽*深*高)", "has_lock" : true } } ], "page_info" : { "current_count" : 1 } }
  • 响应参数 状态码:200 表4 响应Body参数 参数 参数类型 描述 racks Array of Rack objects 机柜列表 page_info PageInfo object 分页信息 表5 Rack 参数 参数类型 描述 id String 机柜ID name String 机柜名称 edge_site_id String 边缘小站ID rack_category_id String 机柜目录ID rack_type String 机柜类型 status String 机柜状态。 CREATING:创建中 AVAILABLE:可用 EXPANDING:扩容中 PENDING_PAYMENT: 待支付 storage_assigned_size Integer 已分配存储容量 description String 机柜描述 rack_sn_no String 机柜SN号 rack_location_no String 机柜位置号 created_at String 创建时间 updated_at String 更新时间 effected_at String 生效时间 market_options MarketOptions object 计费信息 compute_unit Array of ComputeSpec objects 计算单元信息 storage_unit StorageUnit object 存储单元 rack_info RackInfo object 机柜信息 product_info ProductInfo object 商品归属产品属性信息 表6 MarketOptions 参数 参数类型 描述 charge_mode String 计费模式。 prepaid:包周期 prepaid_options PrepaidOptions object 包周期计费信息 strategies Array of Strategy objects 表7 PrepaidOptions 参数 参数类型 描述 order_id String 订单ID product_id String 产品ID pay_mode String 包周期付款类型 FULL: 全预付 HALF:半预付 PAID_BY_YEAR:按年付费 ZERO_PAID_BY_YEAR:零预付-按年 表8 Strategy 参数 参数类型 描述 status String 运维状态说明: FREEZE - 已冻结 scene String 资源运营状态场景: ARREAR:欠费场景; POLICE:公安场景。 ILLEGAL:违规场景。 VERIFY:客户未实名认证冻结场景。 effect String 资源运营功能: DELETABLE:可删除 UNDELETABLE:不可删除 表9 ComputeSpec 参数 参数类型 描述 flavor_type String 算力规格类型,如C6 count Integer 计算单元设备数 表10 StorageUnit 参数 参数类型 描述 storage_type String 存储类型。 SAS:高IO SSD:超高IO SAS_SD:高IO(软件定义型专用) SSD_SD:超高IO(软件定义型专用) SAS_ARM:高IO(鲲鹏) SSD_ARM:超高IO(鲲鹏) VS_SMALL_CAP:边缘对象存储-小容量型 VS_MEDIUM_CAP:边缘对象存储-中容量型 VS_LARGE_CAP:边缘对象存储-大容量型 capacity Integer 存储池大小,单位:TB。 gears Array of integers 存储池销售档位 flavor_type String 规格类型。例如:highio-4T count Integer 存储节点台数。 表11 RackInfo 参数 参数类型 描述 power Integer 机柜功率,单位:w size String 机柜尺寸,如100*200*200,单位:cm has_lock Boolean 是否有机柜锁。 表12 ProductInfo 参数 参数类型 描述 cloud_service_type String 云服务类型 resource_type String 资源类型 resource_spec_code String 资源编码 表13 PageInfo 参数 参数类型 描述 next_marker String 下一页标识。 current_count Integer 当前页数量。
  • URI GET /v1/{domain_id}/racks 表1 路径参数 参数 是否必选 参数类型 描述 domain_id 是 String path中租户的账号ID 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每页的数量 marker 否 String 分页标识 sort_key 否 Array of strings 排序字段 sort_dir 否 Array of strings 排序方式,取值范围: desc:降序 asc:升序 edge_site_id 否 String 边缘小站ID
  • 响应参数 状态码:200 表3 响应Body参数 参数 参数类型 描述 quotas QuotaResources object 资源配额详情列表 表4 QuotaResources 参数 参数类型 描述 resources Array of QuotaDetail objects 资源配额列表 表5 QuotaDetail 参数 参数类型 描述 type String 资源类型 取值范围: edge_site:边缘小站 compute_device:计算设备 quota Integer 资源的总配额 约束:资源的默认配额数可以修改,默认配置:边缘小站(10) used Integer 已创建的资源个数 取值范围:0~quota值
  • 响应示例 状态码:200 successful operation { "edge_sites" : [ { "id" : "cc89b1e5-521d-4a85-be83-e6f7217fc63e", "domain_id" : "2b76febbe5d34eac85d26435c1f15809", "name" : "测试站点", "description" : "测试站点:位于安徽", "region_id" : "cn-north-4", "project_id" : "060576838600d5762f2dc000470eb164", "availability_zone_id" : null, "status" : "initial", "location" : { "description" : "站点场地信息", "zone_code" : "CN", "address" : "安徽省 合肥市 瑶海区", "country" : "CN", "province" : "安徽省", "city" : "合肥市", "district" : "瑶海区", "condition" : { "environment" : 0, "space" : 0, "transport" : 0, "installation" : "SUPPORT" } }, "enterprise_project_id" : "06fb8917-442d-4d4d-bcdb-79eb3e7b7b5d", "created_at" : "2022-04-15T07:59:20.641Z", "updated_at" : null } ], "page_info" : { "current_count" : 1 } }
  • 响应参数 状态码:200 表4 响应Body参数 参数 参数类型 描述 edge_sites Array of EdgeSiteDetail objects 边缘小站列表。 page_info PageInfo object 分页信息 表5 EdgeSiteDetail 参数 参数类型 描述 id String 边缘小站ID domain_id String 边缘小站所属账号ID name String 边缘小站名称 description String 边缘小站描述 region_id String 边缘小站所属区域ID project_id String 边缘小站所属项目ID availability_zone_id String 边缘小站的可用区ID status String 边缘小站的部署状态 location LocationDetail object 场地详情 enterprise_project_id String 边缘小站所属企业项目ID created_at String 边缘小站创建时间 updated_at String 边缘小站更新时间 表6 LocationDetail 参数 参数类型 描述 name String 场地名称(已废弃),传入该参数不会再生效,新建站点也不会再返回该字段 description String 场地描述 zone_code String 场地所在地区 address String 部署位置 country String 场地所在国家(逐步下线,使用zone_code替代) province String 场地所在省/自治区/直辖市 city String 场地所在市/区 district String 场地所在区/县 condition Condition object 场地条件 表7 Condition 参数 参数类型 描述 environment Integer 机房环境条件 取值范围: 0:机房条件不属于上述任何一种情况 1:机房使用模块化数据中心方案进行建设 2:机房已通过国家级或行业级标准化认证 space Integer 机柜空间条件 取值范围: 0:暂无扩容计划,不考虑额外余量 1:机柜余量相对充裕,可放置空间超过3柜 2:机柜余量相对紧张,可放置空间3柜以内 transport Integer 运输条件 取值范围: 0:运输通道和机房门的高度或宽度不满足要求 1:运输通道,货梯,机房门均可满足整机柜滚轮搬运 2:运输通道,货梯,机房门不能支持整机柜滚轮搬运,沿途有台阶 installation String 整柜安装评估 取值范围: UNCLEAR:不清楚是否允许整柜安装,需要评估 UNSUPPORT:不允许整柜安装,需将设备放入现有机柜 SUPPORT:可支持整柜安装,并入现有机柜组 表8 PageInfo 参数 参数类型 描述 next_marker String 下一页标识。 current_count Integer 当前页数量。
  • URI GET /v1/{domain_id}/edge-sites 表1 路径参数 参数 是否必选 参数类型 描述 domain_id 是 String path中租户的账号ID 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每页的数量 marker 否 String 分页标识 sort_key 否 Array of strings 排序字段 sort_dir 否 Array of strings 排序方式,取值范围: desc:降序 asc:升序 enterprise_project_id 否 Array of strings 企业项目ID。可以使用该字段过滤某个企业项目下的边缘小站。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。“0”表示默认企业项目。 若需要查询当前用户所有企业项目绑定的边缘小站,请传参all_granted_eps。 不传则查询全部。 id 否 Array of strings 根据边缘小站ID查询,支持排序 name 否 Array of strings 根据边缘小站名称查询(精确),支持排序 availability_zone_id 否 Array of strings 根据边缘可用区ID查询 status 否 Array of arrays 根据边缘小站部署状态查询
  • 响应参数 状态码:200 表4 响应Body参数 参数 参数类型 描述 metric_data Array of MetricDataDetail objects 监控数据 表5 MetricDataDetail 参数 参数类型 描述 name String 监控指标名称,当前包含指标: cpu_used:该维度vCPU已使用核数,单位:个,支持维度:site_id,flavor cpu_available_total:用户可使用该维度vCPU总核数,单位:个,支持维度:site_id,flavor cpu_total:该维度vCPU总核数(包含HA等预留核数),单位:个,支持维度:site_id,flavor memory_used:该维度内存已使用量,单位:Gb,支持维度:site_id,flavor memory_available_total:用户可使用该维度内存总量,单位:Gb,支持维度:site_id,flavor memory_total:该维度内存总量(包含HA等预留内存量),单位:Gb,支持维度:site_id,flavor capacity_used:该维度块存储资源已使用量,单位:GiB,支持维度:site_id,storage capacity_available_total:用户可使用该维度块存储资源总容量(用户订购开通的存储容量),单位:GiB,支持维度:site_id,storage capacity_total:当前已订购的资源场景下该维度块存储资源最大容量(订购资源包含的存储容量可能大于用户已开通容量),单位:GiB,支持维度:site_id,storage available:该维度对应规格剩余可发放数量,单位:台,支持维度:flavor_capacity value Long 监控值 read_at String 记录更新时间 dimension dimension object 维度信息 表6 dimension 参数 参数类型 描述 name String 维度名称 value String 维度值
  • 响应示例 状态码:200 successful operation { "metric_data" : [ { "name" : "cpu_used", "value" : 136, "read_at" : "2022-04-28T08:15:00.428Z", "dimension" : { "name" : "site_id", "value" : "7db2702e-4d18-478f-856b-11cbcf5f1dbc" } }, { "name" : "cpu_total", "value" : 184, "read_at" : "2022-04-28T08:15:00.428Z", "dimension" : { "name" : "site_id", "value" : "7db2702e-4d18-478f-856b-11cbcf5f1dbc" } }, { "name" : "memory_used", "value" : 272, "read_at" : "2022-04-28T08:15:00.428Z", "dimension" : { "name" : "site_id", "value" : "7db2702e-4d18-478f-856b-11cbcf5f1dbc" } }, { "name" : "memory_total", "value" : 648, "read_at" : "2022-04-28T08:15:00.428Z", "dimension" : { "name" : "site_id", "value" : "7db2702e-4d18-478f-856b-11cbcf5f1dbc" } }, { "name" : "capacity_used", "value" : 5707, "read_at" : "2022-04-28T08:15:00.501Z", "dimension" : { "name" : "site_id", "value" : "7db2702e-4d18-478f-856b-11cbcf5f1dbc" } }, { "name" : "capacity_total", "value" : 113090, "read_at" : "2022-04-28T08:15:00.501Z", "dimension" : { "name" : "site_id", "value" : "7db2702e-4d18-478f-856b-11cbcf5f1dbc" } } ] }
  • URI GET /v1/{domain_id}/edge-sites/{site_id}/metric-data 表1 路径参数 参数 是否必选 参数类型 描述 domain_id 是 String path中租户的账号ID site_id 是 String 边缘小站ID 表2 Query参数 参数 是否必选 参数类型 描述 dim 否 String 指定维度查询 site_id: 按站点维度,查询站点下计算、存储资源容量信息 flavor: 按规格维度,查询站点下各flavor的计算资源使用情况 storage: 按存储维度,查询站点下各存储资源类型的使用情况 flavor_capacity: 按规格容量维度,查询站点下各规格可发放数量预测 storage_pool:按存储池维度,查询站点下各存储池的使用情况
  • 错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 状态码 错误码 错误信息 描述 处理措施 400 IES.00001005 param is invalid. 请求参数不合法。 请参照产品文档,检查请求的参数后重试。 400 IES.00001008 quota is insufficient. 配额不足。 删除不用的资源或者提高配额后再创建。 400 IES.00011001 edge site name has already existed, can not create or update. 边缘小站名称已存在,无法创建或更新。 请更新参数后重试。 400 IES.00011007 edge site status, can not update properties location. 该状态的边缘小站,无法更新场地属性。 请检查小站ID后重试。 400 SYS.0400 Bad request 请求参数错误 请参照产品文档,检查请求的参数后重试。 401 SYS.0401 Unauthorized. 未经授权 请联系客服。 403 IES.00001003 not allowed to perform, please apply for beta permission 权限不足,请申请公测权限。 请申请公测权限。 403 IES.00011003 edge site of this status can not be deleted. 该状态的边缘小站无法被删除。 请检查小站ID后重试。 404 IES.00011002 edge site not exists. 边缘小站不存在。 请检查小站ID后重试。 404 IES.00021001 region id not exists. CloudPond暂不支持该region。 请修改region或联系客服。 404 SYS.0404 Resource not Found 资源不存在 请检查资源ID后重试。 500 IES.00001001 parse token error, context is empty Token不正确 请修改token或联系客服。 500 IES.00001007 token is invalid. Token无效。 请修改token后重试。 500 IES.00011004 region not exists, can not create edge site. 无该region使用权限,无法创建边缘小站。 请修改region或联系客服。 500 IES.00011005 create edge site error. 创建边缘小站错误。 请联系客服。 500 SYS.0500 Internal service error. 内部服务错误。 请联系客服。 父主题: 附录
  • 响应示例 状态码:200 successful operation { "edge_site" : { "id" : "cc89b1e5-521d-4a85-be83-e6f7217fc63e", "domain_id" : "2b76febbe5d34eac85d26435c1f15809", "name" : "测试站点", "description" : "测试站点:位于安徽", "region_id" : "cn-north-4", "project_id" : "060576838600d5762f2dc000470eb164", "availability_zone_id" : null, "enterprise_project_id" : "0", "status" : "initial", "location" : { "description" : "站点场地信息", "zone_code" : "CN", "address" : "安徽省 合肥市 瑶海区", "country" : "CN", "province" : "安徽省", "city" : "合肥市", "district" : "瑶海区", "condition" : { "environment" : 0, "space" : 0, "transport" : 0, "installation" : "SUPPORT" } }, "created_at" : "2022-04-15T07:59:20.641Z", "updated_at" : null } }
  • 响应参数 状态码:200 表7 响应Body参数 参数 参数类型 描述 edge_site EdgeSiteDetail object 边缘小站详情 表8 EdgeSiteDetail 参数 参数类型 描述 id String 边缘小站ID domain_id String 边缘小站所属账号ID name String 边缘小站名称 description String 边缘小站描述 region_id String 边缘小站所属区域ID project_id String 边缘小站所属项目ID availability_zone_id String 边缘小站的可用区ID status String 边缘小站的部署状态 location LocationDetail object 场地详情 enterprise_project_id String 边缘小站所属企业项目ID created_at String 边缘小站创建时间 updated_at String 边缘小站更新时间 表9 LocationDetail 参数 参数类型 描述 name String 场地名称(已废弃),传入该参数不会再生效,新建站点也不会再返回该字段 description String 场地描述 zone_code String 场地所在地区 address String 部署位置 country String 场地所在国家(逐步下线,使用zone_code替代) province String 场地所在省/自治区/直辖市 city String 场地所在市/区 district String 场地所在区/县 condition Condition object 场地条件 表10 Condition 参数 参数类型 描述 environment Integer 机房环境条件 取值范围: 0:机房条件不属于上述任何一种情况 1:机房使用模块化数据中心方案进行建设 2:机房已通过国家级或行业级标准化认证 space Integer 机柜空间条件 取值范围: 0:暂无扩容计划,不考虑额外余量 1:机柜余量相对充裕,可放置空间超过3柜 2:机柜余量相对紧张,可放置空间3柜以内 transport Integer 运输条件 取值范围: 0:运输通道和机房门的高度或宽度不满足要求 1:运输通道,货梯,机房门均可满足整机柜滚轮搬运 2:运输通道,货梯,机房门不能支持整机柜滚轮搬运,沿途有台阶 installation String 整柜安装评估 取值范围: UNCLEAR:不清楚是否允许整柜安装,需要评估 UNSUPPORT:不允许整柜安装,需将设备放入现有机柜 SUPPORT:可支持整柜安装,并入现有机柜组
  • 请求示例 创建边缘小站,区域为cn-north-4(北京四),部署位置为中国/安徽省/合肥市/瑶海区,机房暂不确定是否满足条件,机柜暂无扩容计划,运输通道和机房门的高度或宽度不满足要求,可支持整柜安装,并入现有机柜组 POST https://{ies_endpoint}/v1/{domain_id}/edge-sites { "edge_site" : { "name" : "测试站点", "description" : "测试站点:位于安徽", "region_id" : "cn-north-4", "location" : { "description" : "站点场地信息", "zone_code" : "CN", "address" : "安徽省 合肥市 瑶海区", "country" : "CN", "province" : "安徽省", "city" : "合肥市", "district" : "瑶海区", "condition" : { "environment" : 0, "space" : 0, "transport" : 0 } } } }
  • KV限制 KV类型包含字符串、布尔值、空值、浮点数、数组、映射、日期和ObjectId,对于这些类型的KV,一条KV的key和value之和最大为512KB,包含主键和本地二级索引。 字段名称长度范围为1-63个字节,大小写敏感,不支持“.”和“$”。“X”字符为前缀的字段名称为系统预留字段名称,目前系统预留字段名称包括“Xattr”和“Xblob”,不建议您使用作为字段名。 主键总长不超过1200个字节,且主键必须唯一。 使用API请求方式访问的KV,只能属于一个存储仓。 一个KV一定归属于某个表。 仓+表+主键可以唯一定位一条KV。
  • 索引限制 本地二级索引必须以表分区键作为前缀。 全局二级索引KV写后延迟约1秒内可见。 一条索引记录不超过1200个字节。 仅支持在创建表的过程中创建索引。 当一个主表创建多个全局二级索引时,这个主表下的全局二级索引之间的复合主键(分区键和排序键)不能重复。 单个全局二级索引中,不允许存在相同的键。 全局二级索引的分区键不能和主表的分区键完全相同。 当一个主表创建多个本地二级索引时,这个主表下的本地二级索引之间的排序键不能重复。 单个本地二级索引中,不允许存在相同的键。 本地二级索引的排序键不允许与主表的分区键重复。 本地二级索引的排序键不允许与主表的排序键重复。
  • 键值存储服务基本概念 存储仓(Store) 存储仓,简称仓,是用来存储表数据的单元。用户可以根据自己的业务系统划分,创建不同的仓。 表(Table) 表是用来存储键值数据的集合,归属于某个仓。用户可以在一个仓中创建多个表,用来储存键值数据。通过本地二级索引和全局二级索引可以快速而准确地检索到表中的键值数据。 KV(Key-Value) 键值数据(Key-Value),简称KV,是文档型的数据项,提供主键到整条数据的映射。KV数据存储在表中。 分区键和排序键 分区键:分区键是一个表的属性,用于确定该表中的每一个KV存储所在的分区。例如,对于一个用户表,可以指定用户名属性作为分区键。 KVS会根据此用户名的名称(KV)选择分区,同样的用户名名称存储在同一个分区。 排序键:排序键是一个表的属性,该表中的KV会根据排序键进行排序以后存储。查询数据时,您可以按照排序键输出数据。 创建表时,除表名称外,您还必须指定表的主键。主键唯一标识表中的每个KV,因此,任意两个KV的主键都不相同。KVS支持两种不同类型的主键: 简单主键:由分区键构成。 复合主键:由分区键和排序键组合构成。 索引 索引是用来辅助查询表中的KV数据,能够加速键值检索,准确访问键值数据。KVS提供本地二级索引和全局二级索引。 本地二级索引:对于复合主键(分区键+排序键)的表,支持创建本地二级索引,实现分区键下的多个键值的辅助索引。键值写入时,自动生成并存储本地二级索引记录,并保证键值与本地二级索引记录的强一致。 全局二级索引:索引分区键和主表分区键不同,全局二级索引只保存索引记录,不保存完整键值内容。键值写入时,自动生成索引记录,并异步写入全局二级索引,键值与全局二级索引记录为最终一致。 关于存储仓、表、KV、索引之间的关系,如图1所示。 图1 KVS基本概念之间的关系 父主题: 基本概念
  • 访问方式 云服务平台提供的Web化的服务管理平台,即管理控制台、基于HTTPS请求的API(Application programming interface)管理方式以及SDK方式均可访问键值存储服务。 API方式 如果用户需要将云服务平台上的键值存储服务集成到第三方系统,用于二次开发,请使用API方式访问键值存储服务,具体操作请参见《键值存储服务API参考》。 管理控制台方式 其他相关操作,请使用管理控制台方式访问键值存储服务。 如果用户已注册,可直接登录管理控制台,从主页选择“键值存储服务 KVS”。如果未注册,请参见 注册华为账号 并开通华为云并完成实名认证。 SDK方式 KVS提供Java、C++等主流语言,帮助用户使用SDK完成二次开发,使用SDK方式访问键值存储服务,具体操作请参见《键值存储服务SDK参考》。
  • KVS简介 键值存储服务(Key-Value Storage Service,KVS)主要面向游戏、大数据、互联网等业务场景提供完全托管的键值存储及索引服务,主要用于应用的键值类数据(如:元数据、描述数据、管理参数、状态数据)的存储,提供可预测的性能和无缝扩展,无需进行分区管理、硬件预置、集群扩展等操作。 使用KVS创建一个存储仓,在存储仓中创建一个或多个表,来存储和检索任意规模的数据。 虽然KVS服务支持您将数据同步到华为云键值存储指定Region的存储仓里,但是华为云并不感知您对象的具体内容。如果您的行为涉及跨境传输,请您确保使用本服务符合所适用的法律法规要求。
  • 产品架构 KVS产品结构请参考图1。通过和其他产品、服务组合,KVS可以实现如下功能: CES 实时采样KVS监控指标,提供及时有效的资源信息监控告警,支持配置监控告警,告警通知随时触发随时响应。 使用KVS在某个区域可以创建多个仓,在仓中可以创建多个表,在表中可以存储键值(Key-Value,简称KV)数据。 KVS提供本地二级索引、全局二级索引,帮助您快速检索表中的键值数据,实现快速且准确访问。 图1 KVS产品架构
  • 产品功能 表1列出了KVS提供的主要功能特性。 表1 KVS功能概览 功能名称 功能描述 存储仓管理 存储仓是用来存储表数据的单元。用户可以根据自己的业务系统划分,创建不同的仓。支持创建、查询存储仓。 表管理 表是用来存储键值数据的集合,归属于某个仓。用户可以在一个仓中创建一个或多个表,用来储存键值数据。支持创建、查询表。 KV管理 KV是表的最小存储粒度,提供键到值的映射。KV数据存储在表中。支持插入、更新、删除、扫描KV数据。 索引管理 索引是用来辅助查询表中的KV数据,能够加速键值检索,准确访问键值数据。KVS提供本地二级索引和全局二级索引。支持创建、查询、删除索引。
  • 操作步骤 登录KVS管理控制台。 在KVS管理控制台左侧导航栏选择“仓”,进入存储仓列表。 在仓列表中找到需要创建索引的表所在的仓,在仓对应的操作列,单击“创建表”,或者单击仓名称进入仓的详情页面,在“表信息”下单击“创建表”。 根据界面提示,选择计费模式、填写表详细信息或预置读/写吞吐量。 根据界面提示,配置“二级索引”。支持创建本地二级索引和全局二级索引。 单击“创建本地二级索引”,配置参数信息如表1所示。确认配置信息后单击“确定”。 图1 “创建本地二级索引”界面 表1 “创建本地二级索引”参数说明 类别 参数名称 描述 创建本地二级索引 名称 必选参数。 本地二级索引的名称。名称的长度范围为1-255个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”、“.”组成。名称不支持设置为“XPriIndex”。 排序键 必选参数。 排序键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。首字母不支持设置为“_”。 摘要字段 可选参数。 本地二级索引的摘要字段。支持创建多个摘要。摘要的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 单击“创建全局二级索引”,配置参数信息如表2所示。确认配置信息后单击“确定”。 图2 “创建全局二级索引”界面 表2 “创建全局二级索引”参数说明 类别 参数名称 描述 创建全局二级索引 名称 必选参数。 全局二级索引的名称。名称的长度范围为1-255个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”、“.”组成。名称不支持设置为“XPriIndex”。 分区键 必选参数。 分区键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 排序键 可选参数。 排序键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 读取吞吐量 输入范围:1-50000,单位:RCU。仅在预置计费模式下展示该字段并生效。 写入吞吐量 输入范围:1-50000,单位:WCU。仅在预置计费模式下展示该字段并生效。 摘要字段 可选参数。 全局二级索引的摘要字段。支持创建多个摘要。摘要的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。首字母不支持设置为“_”。 信息设置完成后,单击“确定”。
  • 约束与限制 一个表支持创建5个本地二级索引和20个全局二级索引。 仅支持在创建表的过程中创建索引。 当一个主表创建多个全局二级索引时,这个主表下的全局二级索引之间的复合主键(分区键和排序键)不能重复。 单个全局二级索引中,不允许存在相同的键。 全局二级索引的分区键不能和主表的分区键完全相同。 当一个主表创建多个本地二级索引时,这个主表下的本地二级索引之间的排序键不能重复。 单个本地二级索引中,不允许存在相同的键。 本地二级索引的排序键不允许与主表的分区键重复。 本地二级索引的排序键不允许与主表的排序键重复。
  • 在Notebook中通过SDK上传下载OBS文件 使用ModelArts SDK接口将OBS中的文件下载到Notebook后进行操作。 示例代码:将OBS中的文件file1.txt下载到Notebook的/home/ma-user/work/路径下。其中,桶名称、文件夹和文件的名称均可以按照业务需求自定义。 from modelarts.session import Session session = Session() session.obs.download_file(src_obs_file="obs://bucket-name/dir1/file1.txt", dst_local_dir="/home/ ma-user/work/") 使用ModelArts SDK接口将OBS中的文件夹下载到Notebook后进行操作。 示例代码:将OBS中的文件夹dir1下载到Notebook的/home/ma-user/work/路径下。其中,桶名称和文件夹的名称均可以按照业务需求自定义。 from modelarts.session import Session session = Session() session.obs.download_dir(src_obs_dir="obs://bucket-name/dir1/", dst_local_dir="/home/ma-user/work/") 使用ModelArts SDK接口将Notebook中的文件上传到OBS后进行操作。 示例代码:将Notebook中的file1.txt文件上传到OBS桶路径obs://bucket-name/dir1/中。其中,桶名称、文件夹和文件的名称均可以按照业务需求自定义。 from modelarts.session import Session session = Session() session.obs.upload_file(src_local_file='/home/ma-user/work/file1.txt', dst_obs_dir='obs://bucket-name/dir1/') 使用ModelArts SDK接口将Notebook中的文件夹上传到OBS。 示例代码:将Notebook中的文件夹“/work/”上传至“bucket-name”桶的“dir1”文件夹下,路径为“obs://bucket-name/dir1/work/”。其中,桶名称和文件夹的名称均可以按照业务需求自定义。 from modelarts.session import Session session = Session() session.obs.upload_dir(src_local_dir='/home/ma-user/work/', dst_obs_dir='obs://bucket-name/dir1/')
  • 会员分析 功能说明:门店助手端查看权限门店下会员数据、联系人数据、群聊数据; 使用场景: 店员: 登录查看自己所在门店的会员数据和销售数据; 店长/管理层: 登录查看自己权限下门店的会员数据和销售数据; 操作流程 门店切换:登录后,首页中单击门店栏位信息,可进行门店信息切换。切换门店后,分析类报表数据,即按照切换后的门店数据进行展示。 图1 门店切换1 所有门店:切换门店选择的一种快捷方式,分析类报表为权限下所有门店数据; 单选/多选门店:分析类报表数据按照单选/多选后的门店进行展示; 会员分析 图2 会员分析 门店会员:截止当前选择门店已注册会员总数; 我的会员: 已分配到自己的会员数; 显示的数据和选择的无关。 昨日新增:前一天所在的门店注册会员数; 今日新增:当日所在门店新增的注册会员数; 本月新增:本月所在门店新增的注册会员总数; 默认为每10分钟执行1次,具体参照调度任务:定时任务-门店助手数据计算。如果需要看最新数据,也可以手工执行改调度; 门店会员和我的会员可以查看具体明细列表。其中列表数据为实时数据,所以可能存在汇总数据和列表明细数据不一致的情况; 联系人分析:切换今日/本月显示企微联系人添加情况; 我的联系人:截止当前自己添加企微的会员总数(不含已删除联系人); 客户新增:今日/本月添加自己企微且属于自己管理的联系人数; 非客户新增:今日/本月添加自己企微但不属于自己管理的联系人数; 联系人流失:今日/本月自己主动删除或被删除联系人的企微联系人数; 注册人数:今日/本月添加自己企微且完成小程序注册的联系人数; 转化人数:今日/本月添加自己企微且完成小程序注册后首单转化的联系人数; 转化金额:今日/本月添加自己企微且完成小程序注册后首单转化联系人的消费总额; 默认为每10分钟执行1次,具体参照调度任务:定时任务-门店助手数据计算。如果需要看最新数据,也可以手工执行改调度; 群分析:切换今日/本月展示企微群组的相关情况; 我的群聊:截止当前自己创建管理的群总数; 加群人数:今日/本月添加自己创建群的联系人总数; 退群人数:今日/本月退出自己创建群聊的联系人总数; 群成员转化数:今日/本月群成员存在转化订单人数; 群成员转化金额:今日/本月群成员转化订单总金额; 群分析数据为实时数据;
  • 方案架构 方案由 华为云计算 底座+有赞产品服务形成面向快消行业的商家从渠道引流赋能,到用户心智塑造的全流程解决方案。 方案通过智能导购平台建立品牌与消费者桥梁,赋能渠道开展O2O业务及标准营销活动,构建私域生态用户池;通过会员运营平台及CRM,打造C端心智塑造的DTC运营模式,创新用户互动及内容营销场景,开展会员运营,扩展DTC交易规模,实现更加个性化的标准营销和服务,塑造用户心智,增强用户的忠诚度和品牌粘性。 业务架构 图1 业务架构图 赋能渠道,桥连用户:基于对乳品/食品/饮料细分行业的深耕洞察,提供定制化的解决方案深度满足客户,赋能大型商超渠道及门店导购建立直接与消费者沟通的桥梁,提升导购业绩30%,帮助品牌建立更紧密的顾客关系,有效收集用户反馈,快速响应市场变化。 个性标准,塑造心智:基于有赞沉淀多年的DTC运营行业最佳实践,快速了解用户偏好和需求,实现更加个性化的标准营销和服务,塑造用户心智,增强用户的忠诚度和品牌粘性,赋能最终的交易转化,帮助品牌线上线下业绩提升20%。整体满足商家从渠道引流赋能、到用户心智塑造的全流程业务链路。 智能创新,赋能导购:集成华为云MaaS服务,实现智能导购助手应用,按门店按导购标准提升导购价值传播能力。并基于对市场数据和用户行为进行智能分析,赋能导购更加标准的为用户提供个性化的服务,助力提升品牌与消费者的互动效率和效果。 主动防护,安全合规:通过 数据加密 服务 DEW,主动加密用户敏感隐私数据。使用数据库安全服务 DBSS,提供数据库审计、实时告警和风险操作识别等功能。保障品牌和渠道的信息安全,积极响应国家个保法要求,为品牌提供可信赖的运营基础。 部署架构 图2 部署架构图 通过容器三件套:CCE、CCI、SWR,降低部署复杂度,达成弹性扩容; 通过MaaS,实现智能导购助手应用; 通过DEW,对关键用户隐私数据进行加密,满足个保法要求; 通过LTS+CES+ AOM + APM ,组合监控系统,降低监控和运维的复杂度;
  • 应用场景 场景一:帮助品牌的大型商超渠道赋能引流,激励导购,沉淀私域用户 业务痛点: 商超促销业绩难提升,导购难激励难管理。大型商超无法直接推广品牌自有线上小程序,无法沉淀用户至品牌私域,消费者难沉淀,难触达。 解决方案: 基于对乳品/食品/饮料细分行业的深耕洞察,提供定制化的解决方案深度满足客户,通过智能导购平台建立品牌与消费者桥梁,赋能渠道开展O2O业务及标准营销活动,构建私域生态用户池; 方案价值: 提升导购业绩30%,帮助品牌建立更紧密的顾客关系,有效收集用户反馈,快速响应市场变化。 深化用户连接,增强市场洞察力:通过数字化手段收集和分析消费者数据,促进产品和服务的创新,满足市场需求。 场景二:DTC消费者运营 业务痛点: 快消品牌核心以渠道为王,无法直接触达终端消费者; 品牌对消费者画像及需求不清晰,市场反馈滞后,不利于市场决策; 品牌在单向的深度分销中增量见顶,销量提升缓慢。 解决方案: 建立可直接触达消费者的多渠道触点; 需要沉淀品牌全渠道用户,开展新品推广,获取用户画像; 通过直接运营C端用户,占领用户心智,反向赋能线上线下渠道销量增长; 方案价值: 通过会员体系建设,内容营销和社群建设,优化用户体验,构建品牌忠诚度闭环。 帮助品牌快速了解用户偏好和需求,实现更加个性化的标准营销和服务,塑造用户心智,增强用户的忠诚度和品牌粘性,赋能最终的交易转化,帮助品牌线上线下业绩提升20%。整体满足商家从渠道引流赋能、到用户心智塑造的全流程业务链路。
共100000条