华为云用户手册

  • ClickHouse系统调优 通过FusionInsight Manager查看主机上的CPU、内存、I/O和网络资源使用情况,确认这些资源是否已被充分利用,分以下几种情况: 每个节点资源占用都比较均匀 通过观察资源在每个节点都使用比较均匀,说明系统资源使用比较正常,可以先不关注,可以去分析SQL语句是否有进一步优化的余地。 有个别节点资源占用比较高 如果观察到个别节点占用资源较高,需要针对占用资源较高的节点分析,分析当前的SQL语句是什么原因导致部分节点占用比其他节点更多资源,是计算还是数据存储倾斜导致,或者是软件bug导致。 每个节点资源占用都比较高 如果集群所有节点资源占用都比较高,说明集群整体比较忙,需要单独确认需要调优的SQL语句,单独调优。如果SQL也无调优余地,集群资源达到瓶颈,需要通过扩容来提升查询性能,达到调优目标。 父主题: ClickHouse数据库调优
  • 创建MRS离线查询集群 进入购买MRS集群页面。 选择“快速购买”,填写软件配置参数。 表3 软件配置(以下参数仅供参考,可根据实际情况调整) 参数项 取值 区域 华北-北京四 计费模式 按需计费 集群名称 MRS_demo 版本类型 普通版 集群版本 MRS 3.1.0 组件选择 Hadoop分析集群 可用区 可用区1 虚拟私有云 vpc-01 子网 subnet-01 企业项目 default Kerberos认证 不开启 用户名 admin/root 密码 设置密码登录集群管理页面及ECS节点用户的密码,例如:Test!@12345。 确认密码 再次输入设置用户密码 通信安全授权 勾选“确认授权” 图1 购买Hadoop分析集群 单击“立即购买”,等待MRS集群创建成功。 图2 集群创建成功
  • 场景描述 Hive是建立在Hadoop上的数据仓库框架,提供大数据平台批处理计算能力,能够对结构化/半结构化数据进行批量分析汇总完成数据计算。提供类似SQL的Hive Query Language语言操作结构化数据,其基本原理是将HQL语言自动转换成MapReduce任务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。 Hive主要特点如下: 海量结构化数据分析汇总。 将复杂的MapReduce编写任务简化为SQL语句。 灵活的数据存储格式,支持JSON,CSV,TEXTFILE,RCFILE,SEQUENCEFILE,ORC(Optimized Row Columnar)这几种存储格式。 本实践以用户开发一个Hive数据分析应用为例,通过客户端连接Hive后,执行HQL语句访问OBS中的Hive数据。进行企业雇员信息的管理、查询。如果需要基于MRS服务提供的样例代码工程开发构建应用,您可以参考Hive应用开发简介。 本实践中,雇员信息的原始数据包含以下两张表: 表1 表1 雇员信息数据 编号 姓名 支付薪水币种 薪水金额 纳税税种 工作地 入职时间 1 Wang R 8000.01 personal income tax&0.05 China:Shenzhen 2014 3 Tom D 12000.02 personal income tax&0.09 America:NewYork 2014 4 Jack D 24000.03 personal income tax&0.09 America:Manhattan 2015 6 Linda D 36000.04 personal income tax&0.09 America:NewYork 2014 8 Zhang R 9000.05 personal income tax&0.05 China:Shanghai 2014 表2 雇员联络信息数据 编号 电话 邮箱 1 135 XXXX XXXX xxxx@xx.com 3 159 XXXX XXXX xxxxx@xx.com.cn 4 186 XXXX XXXX xxxx@xx.org 6 189 XXXX XXXX xxxx@xxx.cn 8 134 XXXX XXXX xxxx@xxxx.cn 通过数据应用,进行以下分析: 查看薪水支付币种为美元的雇员联系方式。 查询入职时间为2014年的雇员编号、姓名等字段,并将查询结果加载到新表中。 统计雇员信息共有多少条记录。 查询使用以“cn”结尾的邮箱的员工信息。
  • ClickHouse容量规划设计 为了能够更好的发挥ClickHouse分布式查询能力,在集群规划阶段需要合理设计集群数据分布存储。 当前ClickHouse能力为单机磁盘容量达到80%后会上报告警信息,磁盘容量达90%后集群会处于只读状态。 出现磁盘告警信息后需要考虑是否是容量不足问题,如果是容量不足问题需要尽快考虑集群扩容,提升集群整体容量存储。 ClickHouse节点及容量规划如下: 磁盘规划 由于ClickHouseServer业务数据主要存储在本地磁盘上,数据量可能会随着集群使用时间增长而增长,通常建议ClickHouse数据盘单独挂载,元数据盘共享第一个数据盘目录。 磁盘实际容量 由于磁盘存在1MB = 1024KB或者1000KB的不同算法,一般来说,磁盘实际可用容量 = 磁盘标注容量 * 0.9。 例如磁盘标注容量为1.2 TB,实际容量为1200 * 0.9 = 1080 GB。 计算公式 假设历史数据量为H,每日增量为A,单节点磁盘容量为C,数据保留M天,集群副本数为R,则ClickHouseServer物理节点数计算公式如下: ClickHouseServer物理节点数N = [R * (H + A * M)] / C 父主题: ClickHouse集群规划
  • ClickHouse调优思路 ClickHouse的总体性能调优思路为性能瓶颈点分析、关键参数调整以及SQL调优。在调优过程中,需要综合系统资源、吞吐量、集群负载等各种因素来分析,定位性能问题,设定调优目标,调优达到客户所需目标即可。 ClickHouse调优人员需要系统软件架构、软硬件配置、数据库架构原理及配置参数、并发控制、查询处理和数据库应用有广泛而深刻的理解和认识,才能在调优过程中找到关键瓶颈点,解决性能问题。 图1 调优流程 表1 调优流程说明 流程 描述 系统调优 对OS操作系统级参数和数据库的调优,充分地利用主机的CPU、内存、I/O和网络资源,提升整个系统查询的吞吐量,同时数据库参数也调整到最优状态。 SQL调优 审视业务所用SQL语句是否存在可优化空间,包括: 分析数据分布是否有倾斜,对于大表数据是否平均分布在各个shard。 分析建表语句,查看是否有建立分区、一级索引、二级索引、排序键是否指定等。 分析查询SQL是否使用了分区和索引,检查查询过滤条件比较频繁的列是否安排在建表时指定的索引及排序键的靠前位置。 数据库参数调优 通过调优数据参数,提升数据库性能,保障数据库稳定运行。 更多信息可参考ClickHouse社区文档相关调优内容https://clickhouse.com/docs/en/intro。 父主题: ClickHouse数据库调优
  • ClickHouse物化视图概述 由于TTL规则不会从原始表中同步到物化视图表,因此源表中带有TTL规则时,物化视图表同样需要配置TTL规则,并且建议与源表保持一致。 表1 普通物化视图与projection对比 物化视图类型 原表数据与物化视图一致性 灵活性 物化视图开发及维护复杂度 普通物化视图 数据从原表同步到物化视图需要时间窗。 灵活性较高,有新的业务可开发新的物化视图。 可开发复杂逻辑SQL语句的物化视图。 复杂度较高,需要开发很多物化视图,每个物化视图都需要单独去管理和维护。 projection 数据实时同步,数据写入即可查询到物化视图最新数据。 创建表时指定的物化视图语法,新的SQL业务需要修改表结构。 不需要开发很多物化视图,任意查询SQL会自动重写命中物化视图。 Projection仅在MRS 3.2.0及以上的版本集群中支持。 父主题: ClickHouse物化视图设计
  • ClickHouse参数调优实践 表1 ClickHouse参数调优汇总 参数名 参数描述 默认值 建议值 是否需要重启生效 max_memory_usage_for_all_queries 单台服务器上所有查询的内存使用量,默认没有限制。建议根据机器的总内存,预留一部分空间,防止内存不够导致服务或者机器宕机。 0 机器总内存的80% 否 max_memory_usage 单个查询在单台服务器的能使用的最大内存。 10G 50GB 否(新版本可通过多租户方式配置) max_bytes_before_external_group_by 确定了在GROUP BY中启动将临时数据转存到磁盘上的内存阈值。默认值为0表示这项功能将被禁用。一般:设置为max_memory_usage/2。 0 25GB 否 max_execution_time 单次查询耗时的最长时间,单位为秒。默认没有限制。 0 300 否 max_threads 执行请求的最大线程数。默认情况下是按照机器CPU核数自动确定的。单并发情况下线程数越大越好(该值要小于CPU核数),多并发情况建议设置为CPU核数/2的值。 CPU核数/2 64 否 max_result_rows 限制返回结果行数,默认为0不限制。 0 100000 否 distributed_product_mode 默认SQL中的子查询不允许使用分布式表,修改为local表示将子查询中对分布式表的查询转换为对应的本地表。 deny 根据场景定: deny/local/global/allow 否 background_pool_size 后台用于merge的线程池大小。 16 64 否 log_queries system.query_log表的开关。默认值为0,不存在该表。修改为1,系统会自动创建system.query_log表,并记录每次query的日志信息。 0 1 否 skip_unavailable_shards 当通过分布式表查询时,遇到无效的shard是否跳过。默认值为0表示不跳过,抛异常。设置值为1表示跳过无效shard。 0 建议使用默认值。异常时,调整为1,提供有损服务。 否 max_bytes_before_external_sort 如果没有足够的内存,可以使用该参数来设置外部排序(在磁盘中创建一些临时文件)。默认为0表示禁用外部排序功能,当内存不够时直接抛错,设置了该值order by可以正常完成,但是速度非常慢。 0 25GB 否 keep_alive_timeout 服务端与客户端保持长连接的时长,单位为秒。 10 600 否 max_concurrent_queries 最大支持的查询并发。 100 150 否 session_timeout_ms Clickhouse服务和ZooKeeper保持的会话时长,超过该时间ZooKeeper还收不到Clickhouse的心跳信息,会将与Clickhouse的session断开。 3000 120000 否 父主题: ClickHouse数据库调优
  • projection定义 CREATE TABLE test_projection_table( level String, type String, name String, city String, time DateTime64, PROJECTION projection_1( SELECT level, count() GROUP BY level ), PROJECTION projection_2( SELECT type, count() GROUP BY type ) ) ENGINE = MergeTree() ORDER BY (name, level, type)
  • 通过表属性修改方式创建projection 在创建好projection后还可以对projection进行修改,具体语句如下: ALTER TABLE test_projection_table ADD PROJECTION projection_3( SELECT type, level GROUP BY type, level )
  • Projection的使用 如下SQL查询的时候会走表达式: SELECT type, count() FROM test_projection_table WHERE type = 'A' GROUP BY type; 而如下SQL不会走projection,因为city不在projection的定义中。 SELECT city, count() FROM test_projection_table WHERE type = 'A' GROUP BY city; 具体可以通过explain查看执行计划,如果出现ReadFromStorage (MergeTree(with projection)) ,表示命中projection。
  • 参考案例 MergeTree引擎在建表的时候支持列字段和表级的TTL。 当列字段中的值过期时,ClickHouse会将其替换成数据类型的默认值。如果分区内,某一列的所有值均已过期,则ClickHouse会从文件系统中删除这个分区目录下的列文件。当表内的数据过期时,ClickHouse会删除所有对应的行。 在列上配置TTL: CREATE TABLE default.t_column_ttl ON CLUSTER default_cluster ( `did` Int32, `app_id` Int32, `region` Int32, `pt_d` Date, `create_time` Datetime, `product_desc1` String TTL create_time + toIntervalSecond(10), `product_desc2` String TTL create_time + toIntervalMonth(10), `product_desc3` String TTL create_time + toIntervalHour(10) ) ENGINE = MergeTree() PARTITION BY toYYYYMMDD(pt_d) ORDER BY (app_id, region); 在表上配置TTL: CREATE TABLE default.t_table_ttl ON CLUSTER default_cluster ( `did` Int32, `app_id` Int32, `region` Int32, `pt_d` Date, `create_time` Datetime ) ENGINE = MergeTree() PARTITION BY toYYYYMMDD(pt_d) ORDER BY (app_id, region) TTL create_time + toIntervalMonth(12); TTL详细使用见官网链接: https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/#table_engine-mergetree-ttl 通过外部系统管理数据的生命周期,定时清理过期数据。 清理数据SQL命令示例: DROP TABLE default.table_with_non_default_policy ON CLUSTER default_cluster NO delay; #删除表 ALTER TABLE default.table_with_non_default_policy ON CLUSTER default_cluster drop partition 201901; #删除分区 本地表建表参考: CREATE TABLE default.my_table_local ON CLUSTER default_cluster ( `did` Int32, `app_id` Int32, `region` Int32, `pt_d` Date ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/default/my_table_local', '{replica}') PARTITION BY toYYYYMMDD(pt_d) PRIMARY KEY(app_id) ORDER BY (app_id, region) SETTINGS index_granularity = 8192; 表引擎选择: ReplicatedMergeTree:支持副本特性的MergeTree引擎,也是最常用的表引擎,其他表引擎参考使用场景介绍进行选择。 ZooKeeper上的表元数据信息存储路径“/clickhouse/tables/{shard}/default/my_table_local”: {cluster}表示集群名称,{shard}是分片名称,{replica}是分片中的副本编号,这几个宏变量直接写即可,建表时不需要替换为常量值。 default:表示创建的表名放到哪个数据库下面,在创建表时需要根据实际情况进行替换。 on cluster:创建的集群 建表会创建到集群中所有节点上,否则需要自己手动一个个节点去创建,一个个节点创建过程比较繁琐,创建比较慢;如果在集群中部分节点未创建表,在查询时会遇到无表信息的错误提示。 no delay:立刻生效 在删除表或修改表语法中加上no delay,表示立即删除,否则会等8分钟以后进行删除,如果未加no delay语法,删除表后需要立即创建同名的表名可能会遇到错误,创建不成功。 order by:排序字段 查询时最常使用且过滤性最高的字段作为排序字段。依次按照访问频度从高到低、维度基数从小到大来排。排序字段不宜太多,建议不超过4个,否则merge的压力会较大。排序字段不允许为null,如果存在null值,需要做数据转换。 primary key:主键字段 创建主键索引,值为排序字段的前导列,否则不允许创建表,为访问频率最高的字段创建索引,提升查询性能,查询时会通过索引数据快速的找到数据文件中的数据块所在位置信息。 partition by:分区字段 分区键不允许为null,如果字段中有null值,需要做数据转换处理。 表级别的参数配置: index_granularity:稀疏索引粒度配置,默认是8192,一般不需要修改。 建表定义,参考链接: https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/
  • 规则 单表(分布式表)的记录数不要超过万亿,对于万亿以上表的查询,性能较差,且集群维护难度变大。单表(本地表)不超过百亿。 表的设计都要考虑到数据的生命周期管理,需要进行TTL表属性设置或定期老化清理表分区数据。 单表的字段建议不要超过5000列。 因为当一次插入的数据大小超过“min_bytes_for_wide_part”(默认值:10485760),ClickHouse写入会按每列1 MB(Nullable类型2MB)来预申请内存,容易出现内存超限的错误: Received exception from server (version 22.3.4): Code:241. DB::Exception: Received from localhost:9000. DB::Exception: Memory limit (for query) exceeded: would use 9.31 Gib (attempt to allocate chunk of 1048591 bytes), maximum: 9.31 GiB 可以通过调大“min_bytes_for_wide_part”来规避。
  • 一级索引设计 在建表设计时指定主键字段的建议:按查询时最常使用且过滤性最高的字段作为主键。依次按照访问频度从高到低、维度基数从小到大来排列。数据是按照主键排序存储的,查询的时候,通过主键可以快速筛选数据,合理的主键设计,能够大大减少读取的数据量,提升查询性能。例如所有的分析,都需要指定业务的id,则可以将业务id字段作为主键的第一个字段顺序。 根据业务场景合理设计稀疏索引粒度 ClickHouse的主键索引采用的是稀疏索引存储,稀疏索引的默认采样粒度是8192行,即每8192行取一条记录在索引文件中,实践建议: 索引粒度越小,对于小范围的查询更有效,避免查询资源的浪费; 索引粒度越大,则索引文件越小,索引文件的处理会更快; 超过10亿的表索引粒度可设为16384,其他设为8192或者更小值。
  • 二级跳数索引设计 跳数索引使用参考: 使用说明 对于*MergeTree引擎,支持配置跳数索引,即一种数据局部聚合的粗糙索引,对数据块创建索引,选择性的保留一部分原始数据(minmax、set), 或者是保留计算后的中间数据(bloomfilter)。在查询时,选择忽略加载不会包含结果的数据块,从而达到加速查询的效果。 索引定义 INDEX index_name expr TYPE type(...) GRANULARITY granularity_value Expr:属性表达式,基于字段或者字段的表达式来创建索引; type(...):支持的索引类型,minmax、set等; Granularity:创建索引的记录粒度。比如index_granularity = 8192,granularity配置为3,则使用8192*3条记录创建一条索引数据。 创建索引样例 CREATE TABLE skip_index_test ON CLUSTER default_cluster ( ID String, URL String, Code String, EventTime Date, INDEX a ID TYPE minmax GRANULARITY 5, INDEX b (length(ID) * 8) TYPE set(100) GRANULARITY 5, INDEX c (ID, Code) TYPE ngrambf_v1(3, 256, 2, 0) GRANULARITY 5, INDEX d ID TYPE tokenbf_v1(256, 2, 0) GRANULARITY 5, INDEX e ID TYPE bloom_filter(0.025) GRANULARITY 5 ) ENGINE = MergeTree() ORDER BY ID ; minmax索引 记录了一段数据范围内的最小和最大极值,其索引的作用类似分区目录的minmax索引,能够快速跳过无用的数据区间。 INDEX a ID TYPE minmax GRANULARITY 5 上述示例中minmax索引会记录这段数据区间内ID字段的极值。极值的计算涉及每5个index_granularity区间中的数据。 set索引 直接记录了声明字段或表达式的取值(唯一值,无重复),其完整形式为set(max_rows),其中max_rows是一个阈值,表示在一个index_granularity内,索引最多记录的数据行数。如果max_rows=0,则表示无限制。 INDEX b (length(ID) * 8) TYPE set(100) GRANULARITY 5 上述示例中set索引会记录数据中ID的长度*8后的取值。其中,每个index_granularity内最多记录100条。 布隆过滤器 bloom_filter索引 为指定的列存储布隆过滤器。 可选的参数false_positive用来指定从布隆过滤器收到错误响应的几率。取值范围是 (0,1),默认值:0.025。 支持的数据类型:Int*,UInt*,Float*,Enum,Date,DateTime,String,FixedString,Array,LowCardinality,Nullable。 ngrambf_v1索引 记录的是数据短语的布隆表过滤器,只支持String和FixedString数据类型。只能够提升in、notIn、like、equals和notEquals查询的性能,其完整形式为: ngrambf_v1(n, size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed) 这些参数是一个布隆过滤器的标准输入,如果接触过布隆过滤器,应该会对此十分熟悉。 具体的含义如下: n:token长度,依据n的长度将数据切割为token短语。 size_of_bloom_filter_in_bytes:布隆过滤器的大小。 number_of_hash_functions:布隆过滤器中使用Hash函数的个数。 random_seed:Hash函数的随机种子。 tokenbf_v1索引 是ngrambf_v1的变种,同样也是一种布隆过滤器索引。tokenbf_v1除了短语token的处理方法外,其他与ngrambf_v1是完全一样的。tokenbf_v1会自动按照非字符的、数字的字符串分割token。 INDEX d ID TYPE tokenbf_v1(256,2,0) GRANULARITY 5 索引创建详见官方文档 https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/#table_engine-mergetree-data_skipping-indexes 建表后再创建索引 ALTER TABLE table_name add INDEX min_max_index (etl_time) TYPE minmax GRANULARITY 3; 删除索引 ALTER TABLE table_name DROP INDEX min_max_index; 单表跳数索引数量 由于索引的创建对数据导入性能有影响,建议单表跳数索引的总数量控制在5个以内。
  • 表引擎选择建议 自助报表分析、行为数据分析,在不涉及重复数据聚合的情况下,建议使用ReplicatedMergeTree表引擎。 涉及到物化视图等聚合函数的场景,建议使用ReplicatedAggregatingMergeTree表引擎。 经常有数据去重或有update修改数据的场景下,建议使用ReplacingMergeTree表引擎,配合使用argMax函数获取最新数据。 表1 应用场景列表 引擎名称 应用场景 MergeTree ClickHouse中最重要的引擎,基于分区键(partitioning key)的数据分区分块存储、前缀稀疏索引(order by和primary key)。 ReplacingMergeTree 相对于MergeTree,它会用最新的数据覆盖具有相同主键的重复项。 删除老数据的操作是在分区异步merge的时候进行处理,只有同一个分区的数据才会被去重,分区间及shard间重复数据不会被去重,所以应用侧想要获取到最新数据,需要配合argMax函数一起使用。 SummingMergeTree 当合并SummingMergeTree表的数据片段时,ClickHouse会把所有具有相同主键的行进行汇总,将同一主键的行替换为包含sum后的一行记录。 如果主键的组合方式使得单个键值对应于大量的行,则可以显著的减少存储空间并加快数据查询的速度。 AggregatingMergeTree 该引擎继承自MergeTree,并改变了数据片段的合并逻辑。 ClickHouse会将一个数据片段内所有具有相同主键(准确的说是排序键)的行替换成一行,这一行会存储一系列聚合函数的状态。可以使用AggregatingMergeTree表引擎来做增量数据的聚合统计,包括物化视图的数据聚合。 CollapsingMergeTree 在创建时与MergeTree基本一样,除了最后多了一个参数,需要指定Sign位(必须是Int8类型)。 CollapsingMergeTree会异步地删除(折叠)除了特定列Sign1和-1值以外的所有字段的值重复的行。 VersionedCollapsingMergeTree 是CollapsingMergeTree的升级,使用不同的collapsing算法,该算法允许使用多个线程以任何顺序插入数据。 Replicated*MergeTree 只有Replicated*MergeTree系列引擎是上面介绍的引擎的多副本版本,为了提升数据和服务的可靠性,建议使用副本引擎: ReplicatedMergeTree ReplicatedSummingMergeTree ReplicatedReplacingMergeTree ReplicatedAggregatingMergeTree ReplicatedCollapsingMergeTree ReplicatedVersionedCollapsingMergeTree ReplicatedGraphiteMergeTree
  • ClickHouse集群业务规划 集群规模 建议单集群不超过256节点规模。 集群负载 对于不同业务负载的业务,需要分开集群部署,便于不同负载的业务进行资源隔离。 集群并发 由于ClickHouse单个SQL会最大化使用每个主机上的CPU/内存/IO资源,对于复杂SQL查询(复杂聚合、复杂join计算)能够支持50~100并发,对于简单的SQL查询,支持100~200左右查询。 如果集群有混合负载(要求极致性能的点查/范围查询和有大数据量聚合及join查询),建议将不同类型的负载拆分到不同集群;对于集群规划有远远超过100个并发业务系统,也需要设计将业务分摊到不同的集群。 父主题: ClickHouse集群规划
  • 使用说明 分布式表名称:default.my_table_dis。 本地表名称:default.my_table_local。 通过“AS”关联分布式表和本地表,保证分布式表的字段定义跟本地表一致。 分布式表引擎的参数说明: default_cluster:集群名称。 default:本地表所在库名。 my_table_local:本地表名。 rand():可选参数,分片键(sharding key),可以是表中一列的原始数据(如did),也可以是函数调用的结果。 如轮训方式:rand(),表示在写入数据时直接将数据插入到分布式表,分布式表引擎会按轮训算法将数据发送到各个分片。 该键是写分布式表保证数据均匀分布在各分片的唯一方式。
  • SDK源码和API文档 iDME Java SDK最新版本源码:请参阅应用发布历史下载最新版本源码。 iDME Java SDK历史版本下载地址:请参阅应用发布历史下载历史版本源码。 iDME Java SDK API文档:请参阅全量数据服务了解设计态各API的基本信息、请求参数、响应参数等信息。 为了避免不必要的繁琐代码排查与程序定位问题,如果您初次使用iDME或者数据量不大,推荐使用更加友好、图形化界面的数据建模引擎。 iDME Java SDK中提供如下JAR包: core-sdk-api-1.0.0-SNAPSHOT:包含接口的入参、出参、工具类等。 rdm-common-1.0.0-SNAPSHOT:包含数据建模引擎(xDM Foundation,简称xDM-F)的公共类。 rdm-delegate-1.0.0-SNAPSHOT:包含代理请求应用运行态的封装类。 应用名称.api-1.0.0-optimization-SNAPSHOT:包含用户模型生成的代码(客户端),例如entity、DTO、service、delegator等相关代码。 应用名称.impl-1.0.0-optimization-SNAPSHOT:包含用户模型实现的功能代码(服务端)。如果您已在华为云上部署应用,生成应用运行态,安装SDK时需忽略此JAR包。 应用名称.controller.api-1.0.0-{应用环境标识}-SNAPSHOT:包含用户模型生成的controller API代码(客户端)。 应用名称.controller.impl-1.0.0-{应用环境标识}-SNAPSHOT:包含用户模型生成的controller实现类代码(客户端)。如果您已在华为云上部署应用,生成应用运行态,安装SDK时需忽略此JAR包。
  • 变更内容 对云数据库GaussDB服务与云数据库GaussDB(for MySQL)服务进行拆分,独立发布。 原挂靠在云数据库GaussDB(for MySQL)服务下的云数据库GaussDB产品,包括数据库计算、数据库存储、数据库备份空间,拆分后将挂靠在云数据库GaussDB服务下。 原先在云数据库GaussDB(for MySQL)服务下有效期内的现金券、优惠券等优惠,拆分后将在云数据库GaussDB服务下同时生效。
  • 变更影响 拆分后,新购云数据库GaussDB实例在订购关系、计费话单、账单里显示的产品类型将由“云数据库 GaussDB for MySQL”变更为“云数据库GaussDB”。为免疑义,本次云数据库GaussDB服务从GaussDB(for MySQL)服务独立拆分,不会对华为云与您之间已生效的华为云服务网站规定的协议和政策、订单以及与云服务销售相关的其它协议(如涉及)构成任何修订或变更,也不对其效力产生任何影响。 如您对上述云服务拆分有疑问,请在本公告发出后的一个工作日内通过工单或者服务热线(4000-955-988或950808)与我们联系。
  • 响应示例 查询实例组件列表成功。 { "nodes": [ { "components": [ { "id": "cm_1", "role": "master", "status": "Primary", "distributed_id": "", "type" : "CM", "detail" : "" }, { "id": "etcd_7001", "role": "master", "status": "StateLeader", "distributed_id": "", "type" : "ETCD", "detail" : "" }, { "id": "dn_6001", "role": "master", "status": "Primary", "distributed_id": "60011", "type" : "DN", "detail" : "Normal" } ], "id": "7d19f72f8f514564bd92962a6fbddb7dno14", "name": "gauss-9e1a_root_0", "availability_zone_id": "cn-southwest-244a", "description": "az1", "status": "normal" }, { "components": [ { "id": "cm_3", "role": "slave", "status": "Standby", "distributed_id": "", "type" : "CM", "detail" : "" }, { "id": "etcd_7003", "role": "slave", "status": "StateFollower", "distributed_id": "", "type" : "ETCD", "detail" : "" }, { "id": "dn_6003", "role": "slave", "status": "Standby", "distributed_id": "60011", "type" : "DN", "detail" : "Normal" } ], "id": "aafc2e14234d4c9eadb481fb0a09a865no14", "name": "gauss-9e1a_root_2", "availability_zone_id": "cn-southwest-244a", "description": "az1", "status": "normal" }, { "components": [ { "id": "cm_2", "role": "slave", "status": "Standby", "distributed_id": "", "type" : "CM", "detail" : "" }, { "id": "etcd_7002", "role": "slave", "status": "StateFollower", "distributed_id": "", "type" : "ETCD", "detail" : "" }, { "id": "dn_6002", "role": "slave", "status": "Standby", "distributed_id": "60011", "type" : "DN", "detail" : "Normal" } ], "id": "d6c6c6e6b48c41d79d99d7240751d744no14", "name": "gauss-9e1a_root_1", "availability_zone_id": "cn-southwest-244a", "description": "az1", "status": "normal" } ], "total_count": 3 }
  • 响应参数 表2 参数说明 名称 参数类型 说明 nodes Array of objects 组件详情。 详情请参见表3。 total_count Integer 总记录数。 表3 nodes说明 名称 参数类型 说明 id String 节点ID。 components Array of objects 该实例节点下的组件信息列表,详情请参见表4。 name String 节点名称。 availability_zone_id String 节点所在可用区编码。 description String 可用区描述信息。 status String 节点状态。 表4 components说明 名称 参数类型 说明 id String 组件ID。 GTM:Global Transaction Manager,全局事务管理器。用于管理事务状态的部件。 CMS:Cluster Management Server,集群管理组件。是用于管理集群状态的部件。 DN:Data Node,和CN对应的概念。负责实际执行表数据的存储、查询操作。 CN:Coordinator Node,负责数据库系统元数据存储、查询任务的分解和部分执行,以及将DN中查询结果汇聚在一起。 ETCD:Editable Text Configuration Daemon,分布式键值存储系统,用于共享配置和服务发现(服务注册和查找)。 role String 节点角色。 master:组件所在节点为主节点。 slave:组件所在节点为备节点。 status String 组件状态。 Primary:该组件为主。 Normal:该组件状态正常。 Down:该组件处于宕机状态。 Standby:该组件为备。 StateFollower:该ETCD为备。 StateLeader:该ETCD为主。 StateCandidate:该ETCD为仲裁。 distributed_id String 分组ID,只有DN组件有分组DN,用于区分是否是同一个分片下的组件。其他组件为空字符串。 type String 节点类型,包括:DN, CN, GTM, CM, ETCD。 detail String 详情。
  • URI GET https://{Endpoint}/v3/{project_id}/instances/{instance_id}/components 表1 参数说明 名称 参数类型 是否必选 说明 project_id String 是 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 instance_id String 是 实例ID。 limit Integer 否 查询记录数。默认为100,不能为负数,最小值为1,最大值为100。例如该参数设定为10,则查询结果最多只显示10条记录。 offset Integer 否 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。例如:该参数指定为0,limit指定为10,则只展示第1-10条数据。 component_type String 否 组件类型,过滤拿到需要的组件类型的组件信息,默认为ALL。传参数会查询对应组件信息, "ALL": 查询所有组件类型。 "CM": 查询CMS组件类型。枚举值: ALL CN DN CM GTM ETCD availability_zone_id String 否 主组件所在可用区编号,筛选符合条件的组件,默认为ALL,查询实例所有可用区上的节点的组件信息。 当调用接口传入可用区编号时: 相对于DN组件,会查询出的DN分片中的主组件在该可用区上的这个分片的所有副本的组件信息。 相对于CN组件,CN组件没有主备关系,会查询出该可用区上的CN组件信息。 相对于其他组件,会查询该可用区上有没有某个组件类型的主组件,有则会返回该组件类型的所有组件信息,没有则不返回该组件类型的信息。
  • 响应参数 表2 响应Body参数 参数 参数类型 描述 switch_option Boolean 磁盘自动扩容开关。 limit_volume_size Integer 存储自动扩容上限。 min_volume_size Integer 最小扩容磁盘容量。 max_volume_size Integer 最大扩容磁盘容量。 trigger_available_percent Integer 可用存储空间率。 percents Array of integers 空间率集合。 step_size Integer 扩容步长,固定大小扩容方式。 step_percent Integer 扩容步长,百分比扩容方式。
  • 响应示例 查询磁盘自动扩容策略成功。 { "switch_option" : true, "limit_volume_size" : 200, "min_volume_size" : 160, "max_volume_size" : 240, "trigger_available_percent" : 20, "percents": [ 20, 25, 50 ], "step_size": 200, "step_percent": null }
  • URI GET https://{Endpoint}/v3/{project_id}/instances/{instance_id}/auto-enlarge-policy 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 instance_id 是 String 实例ID,严格匹配UUID规则。
  • 查看迁移任务详情 登录管理控制台,进入“对象存储迁移服务”页面。 在迁移任务列表的右上角,设置条件过滤迁移任务。 迁移任务组ID:如果迁移任务通过创建迁移任务组生成,输入任务组ID,可以筛选出该任务组下面的所有迁移任务。 任务组ID的具体信息,需要从迁移任务组页面获取。 任务状态:各状态说明参见表1。 表1 迁移任务状态 状态 说明 等待中 迁移任务创建后正在进行后台初始化操作或等待其他正在迁移中的任务完成。 迁移中 迁移任务进行中,对象数据正在从其他云服务商迁移至华为云。 暂停 迁移任务暂停,可手动恢复任务。 暂停中 正在暂停迁移任务。 迁移成功 迁移任务已正常迁移完成。 迁移失败 迁移任务失败,未成功完成迁移。失败的任务可手动重启。 单击迁移任务右下角的“详情”,可查看对象总数/已迁移对象数、成功对象列表路径、失败对象列表路径、忽略对象列表路径以及您在创建迁移任务时设置的各项参数信息。
  • 设置流量控制策略 迁移过程中,您可以根据实际情况,随时新增/修改/删除流量控制策略。 登录管理控制台,进入“对象存储迁移服务”页面。 在迁移任务列表,找到需要新增/修改流量控制策略的任务。单击迁移任务右下角的“详情”。 单击“流量控制”旁边的按钮。 如需新增流量控制,单击“新增流量控制”,设置“开始时间”、“结束时间”和“限制最大流量”。 如需修改流量控制,根据您的实际要求,修改“开始时间”、“结束时间”和“限制最大流量”。 如需删除流量控制,单击对应记录操作列的按钮。 限制最大流量的数值范围:1~ 200MB/s 。 最多可以创建5条记录。 单击“确定”,完成流量控制策略设置。
  • 查看迁移记录 迁移过程中,会生成迁移记录如成功对象、失败对象、忽略对象等列表文件,存放在您的目的桶中。 获取对象列表的方法请参见下表。 如果... 那么... 已迁移对象数大于0 在任务详情中找到“成功对象列表路径”,单击路径链接跳转到OBS控制台,下载相应的txt文件,查看成功对象列表。 说明: 成功对象列表路径说明:oms/task/任务名称/success_object_lists/时间戳.success_list.txt。 忽略对象数大于0 在任务详情中找到“忽略对象列表路径”,单击路径链接跳转到OBS控制台,下载相应的txt文件,查看忽略对象列表。 说明: 忽略对象列表路径说明:oms/task/任务名称/skip_object_lists/时间戳.skip_list.txt。 失败对象数大于0 在任务详情中找到“失败对象列表路径”,单击路径链接跳转到OBS控制台,下载相应的txt文件,查看失败对象列表。 说明: 失败对象列表路径说明:oms/task/任务名称/failed_object_lists/时间戳.failed_list.txt。 失败对象列表错误码详细说明参见查看失败对象列表。
  • 前提条件 已注册华为账号并开通华为云,完成实名认证。 已获取源端和目的端账号的AK/SK。 源端桶对应账户需要的权限包括:列举桶,获取桶位置,列举对象,获取对象元数据,获取对象内容。获取方式参见源端桶权限获取。 目的端桶需要的权限包括:列举桶,获取桶位置,列举对象,获取对象元数据,获取对象内容,上传对象,列举已上传段,取回归档存储对象。获取方式参见目的端桶权限获取。 已在华为云OBS服务中创建桶。 24小时内,单个Region内创建迁移任务组数量未满300个。 您过去24小时内已创建的迁移任务未满1000000个。 您名下处于“等待中”状态的迁移任务未满1000000个。
共100000条