华为云用户手册

  • 客户端差异 GaussDB(DWS) gsql相较于PostgreSQL psql做了如下安全加固变更: 取消通过元命令\password设置用户密码。 新增元命令\i+、 \ir+、\include_relative+和输入输出参数-k,以支持给导入导出的文件加密。 取消打印命令行历史到文件的元命令\s。 涉及敏感操作SQL历史不再记录,如含有密码操作。即用户通过翻页/上下键查阅SQL历史将不能查到对应的记录。 支持连接后在屏幕上给出用户密码过期提示以及版本信息。 gsql在psql基础上还增加了如下功能: 新增输出格式参数-r。支持用户输入命令时的tab补齐和方向键调整焦点。 新增并行操作元命令\parallel,以提升执行性能。 新增\set RETRY支持语句出错重试。 新增PLSQL默认结束符功能,将“/”作为PLSQL语句(create or replace function/procedure)的默认结束符,增加便利性。 libpg:
  • 不支持的PostgreSQL功能 继承表 建表 列约束中,用REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] 为表创建外键约束。 表约束中,用EXCLUDE [ USING index_method ] ( exclude_element WITH operator [, ... ] )为表创建排除约束。 定义或更改对象的安全标签。 自定义C函数。 操作符(OPERATOR)的创建、修改和删除。 操作符类(OPERATOR CLASS)的创建、修改和删除。 操作符族(OPERATOR FAMILY)的创建、修改和删除。 文本检索解析器(TEXT SEARCH PARSER)的创建、修改和删除。 文本检索模板(TEXT SEARCH TEMPLATE)的创建、修改和删除。 排序规则(COLLATION)的创建、修改和删除。 规则(RULE)的创建和删除。 过程语言(LANGUAGE)的登记、修改和删除。 域(DOMAIN)的创建、修改和删除。 字符集编码转换(CONVERSION)的定义、修改和删除。 类型转换(CAST)的定义和删除。 用户映射(USER MAPPING)的定义、修改和删除。 生成一个通知。 监听一个通知。 停止监听通知信息。 加载或重新加载一个共享库文件。 释放一个数据库的会话资源。 反向移动游标。 PostgreSQL的扩展功能 另外,为了权限的隔离,GaussDB(DWS)禁用了如下功能: COPY的COPY FROM FILE和COPY TO FILE功能。
  • 客户端差异 GaussDB(DWS) gsql相较于PostgreSQL psql做了如下安全加固变更: 取消通过元命令\password设置用户密码。 新增元命令\i+、 \ir+、\include_relative+和输入输出参数-k,以支持给导入导出的文件加密。 取消打印命令行历史到文件的元命令\s。 涉及敏感操作SQL历史不再记录,如含有密码操作。即用户通过翻页/上下键查阅SQL历史将不能查到对应的记录。 支持连接后在屏幕上给出用户密码过期提示以及版本信息。 gsql在psql基础上还增加了如下功能: 新增输出格式参数-r。支持用户输入命令时的tab补齐和方向键调整焦点。 新增并行操作元命令\parallel,以提升执行性能。 新增\set RETRY支持语句出错重试。 新增PLSQL默认结束符功能,将“/”作为PLSQL语句(create or replace function/procedure)的默认结束符,增加便利性。 libpg:
  • 函数差异 有关GaussDB(DWS)支持的函数请参见函数和操作符。 如下的PostgreSQL函数GaussDB(DWS)不支持: 枚举支持函数。 访问权限查询函数。 has_sequence_privilege(user, sequence, privilege) has_sequence_privilege(sequence, privilege) 系统目录信息函数。 pg_get_triggerdef(trigger_oid) pg_get_triggerdef(trigger_oid, pretty_bool) line函数。 pg_node_tree函数。
  • 资源对SMP性能的影响 SMP架构是一种利用富余资源来换取时间的方案,计划并行之后必定会引起资源消耗的增加,包括CPU、内存、I/O和网络带宽等资源的消耗都会出现明显的增长,而且随着并行度的增大,资源消耗也随之增大。当上述资源成为瓶颈的情况下,SMP无法提升性能,反而可能导致集群整体性能的劣化。SMP支持自适应特性,该特性会根据当前资源和查询特征,动态选取最优的并行度。下面对各种资源对SMP性能的影响情况分别进行说明: CPU资源 在一般客户场景中,系统CPU利用率不高的情况下,利用SMP并行架构能够更充分地利用系统CPU资源,提升系统性能。但当数据库服务器的CPU核数较少,CPU利用率已经比较高的情况下,如果打开SMP并行,不仅性能提升不明显,反而可能因为多线程间的资源竞争而导致性能劣化。 内存资源 查询并行后会导致内存使用量的增长,但每个算子使用内存上限仍受到work_mem等参数的限制。假设work_mem为4GB,并行度为2,那么每个并行线程所分到的内存上限为2GB。在work_mem较小或者系统内存不充裕的情况下,使用SMP并行后,可能出现数据下盘,导致查询性能劣化的问题。 网络带宽资源 为了实现查询并行执行,会新增并行线程间的数据交换算子。对于Local类Stream算子,所需要进行数据交换的线程在同一个DN内,通过内存交换,不会增加网络负担。而非Local类算子,需要通过网络进行数据交换,因此会加重网络负担。当网络资源成为瓶颈的情况下,并行可能会导致一定程度的劣化。 I/O资源 要实现并行扫描必定会增加I/O的资源消耗,因此只有在I/O资源充足的情况下,并行扫描才能够提高扫描性能。 父主题: 配置SMP
  • 相关概念 使用VACUUM、VACUUM FULL和ANALYZE命令定期对每个表进行维护,主要有以下原因: VACUUM FULL可回收已更新或已删除的数据所占据的磁盘空间,同时将小数据文件合并。 VACUUM对每个表维护了一个可视化映射来跟踪包含对别的活动事务可见的数组的页。一个普通的索引扫描首先通过可视化映射来获取对应的数组,来检查是否对当前事务可见。若无法获取,再通过堆数组抓取的方式来检查。因此更新表的可视化映射,可加速唯一索引扫描。 VACUUM可避免执行的事务数超过数据库阈值时,事务ID重叠造成的原有数据丢失。 ANALYZE可收集与数据库中表内容相关的统计信息。统计结果存储在系统表PG_STATISTIC中。查询优化器会使用这些统计数据,生成最有效的执行计划。
  • 操作步骤 使用VACUUM或VACUUM FULL命令,进行磁盘空间回收。 VACUUM: 对表执行VACUUM操作 VACUUM customer; 可以与数据库操作命令并行运行。(执行期间,可正常使用的语句:SELECT、INSERT、UPDATE和DELETE。不可正常使用的语句:ALTER TABLE)。 对表分区执行VACUUM操作 VACUUM customer_par PARTITION ( P1 ); VACUUM FULL: VACUUM FULL customer; 需要向正在执行的表增加排他锁,且需要停止其他所有数据库操作。 在进行磁盘空间回收时,用户可以使用如下命令查询集群中最早事务对应session,再根据需要结束最早执行的长事务,从而更加高效的利用磁盘空间。 使用命令从GTM上查询oldestxmin select * from pgxc_gtm_snapshot_status(); 从CN上查询对应的session的pid,此处xmin为上一步的oldestxmin。 select * from pgxc_running_xacts() where xmin=1400202010; 使用ANALYZE语句更新统计信息。 ANALYZE customer; 使用ANALYZE VERBOSE语句更新统计信息,并输出表的相关信息。 ANALYZE VERBOSE customer; 也可以同时执行VACUUM ANALYZE命令进行查询优化。 VACUUM ANALYZE customer; VACUUM和ANALYZE会导致I/O流量的大幅增加,这可能会影响其他活动会话的性能。因此,建议通过“vacuum_cost_delay”参数设置。 删除表 DROP TABLE customer;DROP TABLE customer_par;DROP TABLE part;
  • 执行计划显示信息 除了设置不同的执行计划显示格式外,还可以通过不同的EXPLAIN用法,显示不同详细程度的执行计划信息。常见有如下几种,关于更多用法请参见EXPLAIN语法说明。 EXPLAIN statement: 只生成执行计划,不实际执行。其中statement代表SQL语句。 EXPLAIN ANALYZE statement:生成执行计划,进行执行,并显示执行的概要信息。显示中加入了实际的运行时间统计,包括在每个规划节点内部花掉的总时间(以毫秒计)和它实际返回的行数。 EXPLAIN PERFORMANCE statement:生成执行计划,进行执行,并显示执行期间的全部信息。 为了测量运行时在执行计划中每个节点的开销,EXPLAIN ANALYZE或EXPLAIN PERFORMANCE会在当前查询执行上增加性能分析的开销。在一个查询上运行EXPLAIN ANALYZE或EXPLAIN PERFORMANCE有时会比普通查询明显的花费更多的时间。超支的数量依赖于查询的本质和使用的平台。 因此,当定位SQL运行慢问题时,如果SQL长时间运行未结束,建议通过EXPLAIN命令查看执行计划,进行初步定位。如果SQL可以运行出来,则推荐使用EXPLAIN ANALYZE或EXPLAIN PERFORMANCE查看执行计划及其实际的运行信息,以便更准确地定位问题原因。
  • 执行计划显示格式 GaussDB(DWS)对执行计划提供了normal、pretty、summary、run四种显示格式: normal:代表使用默认的打印格式。图1中即为此显示格式。 pretty:代表使用GaussDB(DWS)改进后的新显示格式。新的格式层次清晰,计划包含了plan node id,性能分析简单直接。如图2。 summary:是在pretty的基础上增加了对打印信息的分析。 run:在summary的基础上,将统计的信息输出到csv格式的文件中,以便于进一步分析。
  • 执行计划 以如下SQL语句为例: 12345 select cjxh, count(1) from dwcjkgroup by cjxh; 执行EXPLAIN的输出为: 执行计划字段解读(横向): id:执行算子节点编号。 operation:具体的执行节点算子名称。 Vector前缀的算子是指向量化执行引擎算子,一般出现含有列存表的Query中。 Streaming是一个特殊的算子,它实现了分布式架构的核心数据shuffle功能,Streaming共有三种形态,分别对应了分布式结构下不同的数据shuffle功能: Streaming (type: GATHER):作用是coordinator从DN收集数据。 Streaming(type: REDISTRIBUTE):作用是DN根据选定的列把数据重分布到所有的DN。 Streaming(type: BROADCAST):作用是把当前DN的数据广播给其他所有的DN E-rows:每个算子估算的输出行数。 E-memory:DN上每个算子估算的内存使用量,只有DN上执行的算子会显示。某些场景会在估算的内存使用量后使用括号显示该算子在内存资源充足下可以自动扩展的内存上限。 E-width:每个算子输出元组的估算宽度。 E-costs:每个算子估算的执行代价。 E-costs是优化器根据成本参数定义的单位来衡量的,习惯上以磁盘页面抓取为1个单位, 其它开销参数将参照它来设置。 每个节点的开销(E-costs值)包括它的所有子节点的开销。 开销只反映了优化器关心的东西,并没有把结果行传递给客户端的时间考虑进去。虽然这个时间可能在实际的总时间里占据相当重要的分量,但是被优化器忽略了,因为它无法通过修改规划来改变。 执行计划层级解读(纵向): 第一层:CStore Scan on dwcjk 表扫描算子,用CStore Scan的方式扫描表dwcjk。这一层的作用是把表dwcjk的数据从buffer或者磁盘上读上来输送给上层节点参与计算。 第二层:Vector Hash Aggregate 聚合算子,作用是把下层计算输送上来的算子做聚合操作(group by)。 第三层:Vector Streaming (type: GATHER) Shuffle算子,此处GATHER类型的Shuffle算子作用是把数据从DN汇聚到CN。 第四层:Row Adapter 存储格式转化算子,主要作用是把内存中列式格式数据转为行式数据,以便客户端展示。 需要注意的是最顶层算子为Data Node Scan时,需要设置enable_fast_query_shipping为off才能看到具体的执行计划,如下面这个计划: 设置enable_fast_query_shipping参数之后,执行计划显示如下: 执行计划中的关键字说明: 表访问方式 Seq Scan 全表顺序扫描。 Index Scan 优化器决定使用两步的规划:最底层的规划节点访问一个索引,找出匹配索引条件的行的位置,然后上层规划节点真实地从表中抓取出那些行。独立地抓取数据行比顺序地读取它们的开销高很多,但是因为并非所有表的页面都被访问了,这么做实际上仍然比一次顺序扫描开销要少。使用两层规划的原因是,上层规划节点在读取索引标识出来的行位置之前,会先将它们按照物理位置排序,这样可以最小化独立抓取的开销。 如果在WHERE里面使用的好几个字段上都有索引,那么优化器可能会使用索引的AND或OR的组合。但是这么做要求访问两个索引,因此与只使用一个索引,而把另外一个条件只当作过滤器相比,这个方法未必是更优。 索引扫描可以分为以下几类,其差异在于索引的排序机制。 Bitmap Index Scan 使用位图索引抓取数据页。 Index Scan using index_name 使用简单索引搜索,该方式表的数据行是以索引顺序抓取的,这样就令读取它们的开销更大,但是这里的行少得可怜,因此对行位置的额外排序并不值得。最常见的就是看到这种规划类型只抓取一行,以及那些要求ORDER BY条件匹配索引顺序的查询。因为那时候没有多余的排序步骤是必要的以满足ORDER BY。 表连接方式 Nested Loop 嵌套循环,适用于被连接的数据子集较小的查询。在嵌套循环中,外表驱动内表,外表返回的每一行都要在内表中检索找到它匹配的行,因此整个查询返回的结果集不能太大(不能大于10000),要把返回子集较小的表作为外表,而且在内表的连接字段上建议要有索引。 (Sonic) Hash Join 哈希连接,适用于数据量大的表的连接方式。优化器使用两个表中较小的表,利用连接键在内存中建立hash表,然后扫描较大的表并探测散列,找到与散列匹配的行。Sonic和非Sonic的Hash Join的区别在于所使用hash表结构不同,不影响执行的结果集。 Merge Join 归并连接或融合连接,是先将关联表的关联列各自做排序,然后从各自的排序表中抽取数据,到另一个排序表中做匹配。 因为Merge join需要做更多的排序,所以消耗的资源更多,因此通常情况下执行性能差于Hash Join。 如果源数据已经被排序过,在执行融合连接时,并不需要再排序,此时Merge Join的性能优于Hash Join。 运算符 sort 对结果集进行排序。 filter EXPLAIN输出显示WHERE子句当作一个"filter"条件附属于顺序扫描计划节点。这意味着规划节点为它扫描的每一行检查该条件,并且只输出符合条件的行。预计的输出行数降低了,因为有WHERE子句。不过,扫描仍将必须访问所有 10000 行,因此开销没有降低;实际上它还增加了一些(确切的说,通过10000 * cpu_operator_cost)以反映检查WHERE条件的额外CPU时间。 LIMIT LIMIT限定了执行结果的输出记录数。如果增加了LIMIT,那么不是所有的行都会被检索到。
  • 背景信息 数据库经过多次删除操作后,索引页面上的索引键将被删除,造成索引膨胀。例行重建索引,可有效的提高查询效率。 数据库支持的索引类型包含B-tree索引、GIN索引和PSORT索引。 对于B-tree索引,例行重建索引可有效的提高查询效率。 如果数据发生大量删除后,索引页面上的索引键将被删除,导致索引页面数量的减少,造成索引膨胀。重建索引可回收浪费的空间。 新建的索引中逻辑结构相邻的页面,通常在物理结构中也是相邻的,所以一个新建的索引比更新了多次的索引访问速度要快。 对于非B-tree索引,不建议例行重建。
  • 操作步骤 假定在导入表“areaS”上的“area_id”字段上存在普通索引“areaS_idx”。重建索引有以下两种方式: 先删除索引(DROP INDEX),再创建索引(CREATE INDEX) 删除索引。 DROP INDEX areaS_idx; 创建索引。 CREATE INDEX areaS_idx ON areaS (area_id); 使用REINDEX重建索引。 使用REINDEX TABLE语句重建索引。 REINDEX TABLE areaS; 使用REINDEX INTERNAL TABLE重建desc表(包括)的索引。 REINDEX INTERNAL TABLE areaS;
  • 重建索引 重建索引有以下两种方式: 先删除索引(DROP INDEX),再创建索引(CREATE INDEX)。 在删除索引过程中,会在父表上增加一个短暂的排他锁,阻止相关读写操作。在创建索引过程中,会锁住写操作但是不会锁住读操作,此时读操作只能使用顺序扫描。 使用REINDEX语句重建索引。 使用REINDEX TABLE语句重建索引,会在重建过程中增加排他锁,阻止相关读写操作。 使用REINDEX INTERNAL TABLE语句重建desc表(包括)的索引,会在重建过程中增加排他锁,阻止相关读写操作。
  • 操作步骤 收集SQL中涉及到的所有表的统计信息。在数据库中,统计信息是规划器生成计划的源数据。没有收集统计信息或者统计信息陈旧往往会造成执行计划严重劣化,从而导致性能问题。从经验数据来看,10%左右性能问题是因为没有收集统计信息。具体请参见更新统计信息。 审视和修改表定义。 通常情况下,有些SQL语句可以通过查询重写转换成等价的,或特定场景下等价的语句。重写后的语句比原语句更简单,且可以简化某些执行步骤达到提升性能的目的。查询重写方法在各个数据库中基本是通用的。SQL语句改写规则介绍了几种常用的通过改写SQL进行调优的方法。 通过查看执行计划来查找原因。如果SQL长时间运行未结束,通过EXPLAIN命令查看执行计划,进行初步定位。如果SQL可以运行出来,则推荐使用EXPLAIN ANALYZE或EXPLAIN PERFORMANCE查看执行计划及实际运行情况,以便更精准地定位问题原因。有关执行计划的详细介绍请参见SQL执行计划。 针对EXPLAIN或EXPLAIN PERFORMANCE信息,定位SQL慢的具体原因以及改进措施,具体参见典型SQL调优点。 用户可以通过指定join顺序,join、stream、scan方法,指定结果行数,指定重分布过程中的倾斜信息等多个手段来进行执行计划的调优,以提升查询的性能。详细请参见使用Plan Hint进行调优。 为了保证数据库性能的持续优质,建议例行维护表和例行重建索引。 (可选)GaussDB(DWS)支持在资源富足的情况下,通过算子并行来提升性能。详细请参见SMP手动调优建议。
  • 其他因素对SMP性能的影响 除了资源因素外,还有一些因素也会对SMP并行性能造成影响。例如分区表中分区数据不均,以及系统并发度等因素。 数据倾斜对SMP性能的影响 当数据中存在严重数据倾斜时,并行效果较差。例如某表join列上某个值的数据量远大于其他值,开启并行后,根据join列的值对该表数据做hash重分布,使得某个并行线程的数据量远多于其他线程,造成长尾问题,导致并行后效果差。 系统并发度对SMP性能的影响 SMP特性会增加资源的使用,而在高并发场景下资源剩余较少。所以,如果在高并发场景下,开启SMP并行,会导致各查询之间严重的资源竞争问题。一旦出现了资源竞争的现象,无论是CPU、I/O、内存或者网络资源,都会导致整体性能的下降。因此在高并发场景下,开启SMP往往不能达到性能提升的效果,甚至可能引起性能劣化。 父主题: 配置SMP
  • 创建/启动IDE实例 进入CodeArts IDE Online首页。 单击“新建实例”,进入“创建实例”页面。 实例信息参数说明如下: 参数名 说明 名称 实例名称。请根据界面提示进行设置。 描述 对实例的描述。 技术栈 请根据实际情况选择技术栈类型。目前支持的类型有: All in One Java C/C++ Python(2.7.x & 3.6.x) NodeJS Go Blockchain CloudDebugger CPU架构 支持两种: 鲲鹏计算:鲲鹏采用精简指令集(RISC)。 X86计算:X86采用复杂指令集(CISC) 。 CPU/内存 系统根据所选技术栈默认匹配对应配置。 存储容量 支持三种: 5GB 10GB 20GB 自动休眠 实例无操作超过一段时间后,将会被自动休眠。请根据需要进行配置。 单击“下一步”,进入“工程配置”页面。 请根据需要选择工程来源,包括“样例工程”和“私有仓库”,也可以选择“不创建工程”直接创建实例。 不同来源工程信息参数说明下: 工程来源 参数名 说明 样例工程 工程名称 工程的名称。请根据界面提示进行设置。 工程模板 根据上一步选择的“技术栈”类型不同,对应“工程模板”也不同。请根据需要设置不同“技术栈”以及对应的“工程模板”。 私有仓库 项目名称 工程所属项目的名称。 说明: 项目来源为当前用户在需求管理服务中已经创建或具有权限的项目。 项目支持搜索。 仓库地址 当前用户所属项目下拥有权限的代码仓库,仓库地址来源于代码托管中的代码仓库。 说明: 需选择同一Region下的代码仓库。 分支 从代码仓库中获取的具有权限的分支。 名称 工程的名称。名称默认为代码仓库的名称。 设置完参数单击“确定”,IDE实例创建完成,系统自动进入IDE工作界面。
  • 操作步骤 创建CodeArts IDE Online实例 在CodeArts IDE Online首页,单击“新建实例”进行创建,包括“基础配置”和“工程配置”。 启动CodeArts IDE Online实例 在CodeArts IDE Online首页,单击目标IDE实例所在行启动IDE实例。 CodeArts IDE Online编写代码 在CodeArts IDE Online中,可以编写代码,并对代码进行提交、构建和运行。 CodeArts IDE Online代码调试 在CodeArts IDE Online中,运行已提交的代码后,可以对代码进行在线调试。
  • 请求消息 请求参数 参数 是否必选 参数类型 取值范围 描述 account_name 否 String 最大长度:64 客户登录名称(如果客户创建了IAM用户,此处需要填写主账号登录名称。关于主账号和IAM用户的具体介绍请参见身份管理中“账号”和“IAM用户”的描述)。 支持模糊查询。仅支持前缀匹配、后缀匹配、中间匹配;不支持携带空格查询。 此参数不携带或携带值为空串或携带值为null时,不作为筛选条件。 customer 否 String 最大长度:64 客户的实名认证名称,支持模糊查询。仅支持前缀匹配、后缀匹配、中间匹配;不支持携带空格查询。 此参数不携带或携带值为空串或携带值为null时,不作为筛选条件。 offset 否 Integer [0-40000000] 偏移量,从0开始。默认值为0。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 例如,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 limit 否 Integer 最大值:100 每次查询的客户数量。默认值为10。 label 否 String 最大长度:64 标签,支持模糊查找。仅支持前缀匹配、后缀匹配、中间匹配;不支持携带空格查询;不支持英文大小写模糊匹配查询。 此参数不携带或携带值为空串或携带值为null时,不作为筛选条件。 association_type 否 String 最大长度:2 关联类型: 1:顾问销售 2:代售 此参数不携带或携带值为空串或携带值为null时,不作为筛选条件。 associated_on_begin 否 String 最大长度:20 关联时间区间段开始,UTC时间。 格式:YYYY-MM-DD'T'hh:mm:ss'Z',例如“2019-05-06T08:05:01Z”。 此参数不携带或携带值为null时,不作为筛选条件,不支持携带值为空串。 associated_on_end 否 String 最大长度:20 关联时间区间段结束,UTC时间。 格式:YYYY-MM-DD'T'hh:mm:ss'Z',例如“2019-05-06T08:05:01Z”。 此参数不携带或携带值为null时,不作为筛选条件,不支持携带值为空串。 customer_id 否 String 最大长度:64 客户账号ID。您可以调用查询客户列表接口获取customer_id,或者可以从创建客户接口的响应获取domain_id。 此参数不携带或携带值为空串或携带值为null时,不作为筛选条件。 indirect_partner_id 否 String 最大长度:64 云经销商ID。获取方法请参见查询云经销商列表。如果需要查询云经销商的子客户列表,必须携带该字段。除此之外,此参数不做处理。
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 描述 400 CBC.0100 参数错误。 400 CBC.99000037 您没有操作该云经销商的权限。 401 CBC.0154 token非法/过期。 403 CBC.0151 访问拒绝。 500 CBC.0999 其他错误。
  • 请求消息 表1 Header参数 参数 是否必选 取值范围 描述 X-Language 否 最大长度:8 语言。 中文:zh_CN 缺省为zh_CN。 请求参数 参数 是否必选 参数类型 取值范围 描述 address_id 是 String 最大长度:64 地址ID,地址的唯一索引。 recipient 否 String [1-256] 收件人姓名。 此参数不携带或携带值为null时,取值不更新;不支持携带值为空串。 province 否 String [1-64] 省/自治区/直辖市。例如:江苏省。 该参数携带并赋值时,city、district参数也必须赋值。 此参数不携带或携带值为null时,取值不更新;不支持携带值为空串。 city 否 String [1-64] 市/区。例如:南京市。 该参数携带并赋值时,province、district参数也必须赋值。 此参数不携带或携带值为null时,取值不更新;不支持携带值为空串。 district 否 String 最大长度:64 区。例如:雨花区。 该参数携带并赋值时,province、city参数也必须赋值。 此参数不携带或携带值为null时,取值不更新;携带为空串时,字段更新为空串。 address 否 String [1-200] 邮寄详细地址。 此参数不携带或携带值为null时,取值不更新;不支持携带值为空串。 zipcode 否 String [1-32] 邮寄地址所在邮编。 此参数不携带或携带值为null时,取值不更新;不支持携带值为空串。 mobile_phone 否 String [1-32] 手机号码,不带国家码。 此参数不携带或携带值为null时,取值不更新;不支持携带值为空串。 is_default 否 Integer - 是否默认地址,默认值为“0:非默认地址”。 1:默认地址 0:非默认地址 此参数不携带或携带值为null时,字段值更新为0;携带值为空串时,字段值不更新。 请求示例
  • URI GET /v2/customers/postal-addresses 表1 查询参数 参数 是否必选 参数类型 取值范围 描述 offset 否 Integer [0-2147483647] 偏移量。默认值为0。 此参数不携带或携带值为空或携带值为null时,取值为0;不支持携带值为空串。 limit 否 Integer [1-1000] 每次查询的个数。默认值为10。 此参数不携带或携带值为空或携带值为null时,取值为10;不支持携带值为空串。
  • URI GET /v2/systems/configs/provinces 表1 查询参数 参数 是否必选 参数类型 取值范围 描述 offset 否 Integer [0-1000] 偏移量,从0开始。默认值为0。 此参数不携带或携带值为空或携带值为null时,取值为0;不支持携带值为空串。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 例如,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 limit 否 Integer [1-1000] 每次查询的数量,最大1000。 该参数不携带时,取默认值10。 该参数不支持携带值为空、不支持携带值为空串、不支持携带值为null。
  • URI GET /v2/systems/configs/cities 查询参数 参数 是否必选 参数类型 取值范围 描述 province_code 是 String 最大长度:40 省份编码。 offset 否 Integer [0-1000] 偏移量,从0开始。默认值为0。 此参数不携带或携带值为空或携带值为null时,取默认值0;不支持携带值为空串。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 例如,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 limit 否 Integer [1-1000] 每次查询的数量,最大1000。 该参数不携带时,取默认值10。 该参数不支持携带值为空、不支持携带值为空串、不支持携带值为null。
  • URI GET /v2/systems/configs/counties 查询参数 参数 是否必选 参数类型 取值范围 描述 city_code 是 String 最大长度:20 城市的编码。 offset 否 Integer [0-1000] 偏移量,从0开始。默认值为0。 此参数不携带或携带值为空或携带值为null时,取默认值0;不支持携带值为空串。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 例如,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 limit 否 Integer [1-1000] 每次查询的数量,最大1000。 该参数不携带时,取默认值10。 该参数不支持携带值为空、不支持携带值为空串、不支持携带值为null。
  • 请求消息 请求参数 参数 是否必选 参数类型 取值范围 描述 bill_cycle 是 String 最大长度:10 账期所在月份。 格式:YYYY-MM。 offset 否 Integer [0-2147483646] 偏移量,从0开始。默认值为0。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 例如,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 limit 否 Integer [1-100] 一次查询的条数,默认值为10。 请求示例 POST https://bss.myhuaweicloud.com/v2/bills/subcustomer-bills/res-fee-records/sub-customers/query HTTP/1.1Content-Type: application/jsonX-Auth-Token:MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ{ "bill_cycle": "2022-03", "offset": 0, "limit": 10}
  • URI GET /v2/accounts/partner-accounts/balances 参数说明请参见下表。 表1 查询参数 参数 是否必选 参数类型 取值范围 描述 indirect_partner_id 否 String 最大长度:64 云经销商ID。 获取方法请参见查询云经销商列表。 华为云总经销商(一级经销商)查询云经销商(二级经销商)余额时,需要携带该参数;除此之外,此参数不做处理。否则只能查询自己的账户余额。
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 描述 200 CBC.5001 非合作伙伴。 400 CBC.99000037 您没有操作该云经销商的权限。 403 CBC.0151 访问拒绝。 500 CBC.0999 其他错误。
  • 请求消息 请求参数 无。 请求示例 GET https://bss.myhuaweicloud.com/v2/accounts/partner-accounts/balances?indirect_partner_id=0977ffa9f20010790f0fc003f6900520 HTTP/1.1Content-Type: application/jsonX-Auth-Token:MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 描述 400 CBC.0100 参数错误。 400 CBC.99000000 无对该客户的操作权限。 400 CBC.99000035 非合作伙伴子客户。 400 CBC.99000037 您没有操作该云经销商的权限。 400 CBC.99000047 可回收金额的子客户拨款账户不存在。 400 CBC.99005003 余额不足。 403 CBC.0151 访问拒绝 500 CBC.0999 其他错误。
  • 请求消息 请求参数 参数 是否必选 参数类型 取值范围 描述 customer_id 是 String 最大长度:64 客户账号ID。您可以调用查询客户列表接口获取customer_id。 amount 是 BigDecimal - 回收的金额。 单位:元。取值大于0且精确到小数点后2位。 indirect_partner_id 否 String 最大长度:64 云经销商ID。获取方法请参见查询云经销商列表。 云经销商(二级经销商)回收云经销商(二级经销商)的子客户账户余额时,需携带此参数;除此之外,该参数不做处理;否则只能回收自己的子客户账户余额。
共100000条