华为云用户手册

  • 2021/05/31- WeLink手机端 V5.39.11 【新增功能】 消息 消息新增聊天记录漫游功能,支持批量恢复近90天的历史聊天记录 创建群组时,可以按角色分类选择联系人完成建群 发送的视频类文件,可以实现无压缩传送 群组的详情页,支持显示群号 会议 会议进行时,支持发送聊天弹幕进行互动 会议应用发起的会议,支持同步到WeLink日历 会议发起、预约等相关的消息,在会议号内进行通知 知识 博客及社区,支持删除和修改帖子 直播 预约直播时,支持设置演讲人及议程。设置后的演讲人及议程,在直播的简介区中展示 Android5.39.11&iOS5.39.9版本更新内容介绍.docx
  • 2024/2/1- WeLink手机端 V7.32.13 【新增功能】 公众号 长文本消息展示优化 会议体验优化 云空间体验优化 Andriod7.32.13 & iOS7.32.7版本更新内容介绍.docx Android 7.0 及以上系统(32位)WeLink 下载 Android 5.0 ~ 6.0 系统(32位)WeLink 下载 Android 5.0 ~ 6.0 系统(64位)WeLink 下载
  • 2023/11/30- WeLink手机端 V7.30.11 【新增功能】 搜索 支持通过英文名和工号精准找人 云名片体验优化 公众号体验优化 Android7.30.11 & iOS7.30.7)版本更新内容介绍.docx Android 7.0 及以上系统(32位)WeLink 下载 Android 5.0 ~ 6.0 系统(32位)WeLink 下载 Android 5.0 ~ 6.0 系统(64位)WeLink 下载
  • 2023/8/31- WeLink手机端 V7.27.9 【新增功能】 云名片 云名片功能优化,一键生成可对外分享的个人云名片 消息体验优化 通讯录体验优化 Android7.27.9 & iOS7.27.11版本更新内容介绍.docx Android 7.0 及以上系统(32位)WeLink 下载 Android 5.0 ~ 6.0 系统(32位)WeLink 下载 Android 5.0 ~ 6.0 系统(64位)WeLink 下载
  • 2021/03/17- WeLink手机端 V5.34.7 【新增功能】 消息: 自动解散的群组被搜索后,可再次激活使用 知识: 文档式公告支持上传视频文件和在线播放 支持对社区的发帖、问答的提问、发布后的博客进行修改 会议: 支持在会议列表中取消正在召开的会议 考勤: 支持根据个人情况自由设置上班前、下班后的打卡提醒(该功能仅在付费租户内上线) Android5.34.7 & iOS5.34.9 版本更新内容介绍.docx
  • 2021/04/30- WeLink手机端 V5.37.9 【新增功能】 日历 创建线上会议类型日程后,支持在日历中进行再次编辑。编辑后的会议类日程可同步至会议We码 登录 支持海外用户使用邮箱登录WeLink(注:暂时只支持荣耀邮箱登录;邮箱仅支持账号登录不支持注册) 消息(增值服务,2021年4月30日起可购买) 当前IM消息云端存储周期为90天,企业可通过购买消息存储周期服务套餐将存储周期延长至180天、360天、720天 Android5.37.9 & iOS5.37.15版本更新内容介绍.docx
  • 2021/04/16- WeLink手机端 V5.36.9 【新增功能】 消息 更新默认表情,新增三套表情包 日历 日历新增普通日程、视频会议和语音会议三种日程类型 创建线上会议类型日程时,会议信息可同步至会议We码 直播 支持匿名评论功能 支持主播在PC端进行公告颜色设置,移动端公告增加颜色显示 登录 支持华为账号一键登录,用户无需输入手机号验证码(适用设备:已安装HMS Core的设备) Android5.36.9 & iOS5.36.19 版本更新内容介绍.docx
  • 2021/04/06- WeLink手机端 V5.35.9 【新增功能】 会议 观看共享时新增发言人视频小窗,并支持下拉关闭 视频画面上新增云录制快捷入口,方便控制录制进度 直播 公告支持由主播进行发布,并在评论区中展示(主播发布公告需在PC端操作,移动端仅支持公告展示) 云空间 最近访问记录支持一键清除(达到10条或以上记录底部才会出现清除按钮;按文件类型筛选时不会出现清除按钮) Android5.35.9 & iOS5.35.19 版本更新内容介绍.docx
  • 2024/6/6- WeLink手机端 V7.36.9(NEW) 【新增功能】 云空间 分享云空间文件支持不同用户设置不同权限 消息 消息首页,支持自定义会话分组 消息体验优化 Android 7.36.9 & iOS 7.36.15版本更新内容介绍.docx Android 7.0 及以上系统(32位)WeLink 下载 Android 5.0 ~ 6.0 系统(32位)WeLink 下载 Android 5.0 ~ 6.0 系统(64位)WeLink 下载
  • 2024/5/6- WeLink手机端 V7.35.13 【新增功能】 安全 安全截屏图片支持二维码识别 会议 视频会议支持会中画面一键锁定,防误触 研讨会体验优化 Android 7.35.13& iOS 7.35.11版本更新内容介绍.docx Android 7.0 及以上系统(32位)WeLink 下载 Android 5.0 ~ 6.0 系统(32位)WeLink 下载 Android 5.0 ~ 6.0 系统(64位)WeLink 下载
  • 2020/08/07-WeLink PC端 V6.7.4 【新增功能】 新增公司全员群和部门群。 管理员在后台创建公司全员群和部门全员群后,可同步至PC端,并会有“全员”或“部门”标识,方便员工快速找到相应群组。 切换企业列表支持显示其他企业未读消息数。 多企业用户在左上角切换企业列表,可看到其他企业未读消息数,方便快速处理不同企业消息。 通讯录功能优化。 个人详情页支持显示自定义字段信息 企业管理员在管理后台设置自定义字段信息后(扩展信息),可显示在PC端个人详情页。 通讯录人员列表可显示员工职务信息 通讯人员列表新增职务栏目,可显示员工职务信息。 【体验优化】 登录WeLink后,快速刷新已有会话列表,减少等待时间,提升使用体验。 PC6.7.4版本新功能介绍.docx
  • 2020/11/11-WeLink PC端 V7.0.19 【新增功能】 会议共享支持显示水印:在管理后台开启“会议水印”设置后,通过PC端共享屏幕时,支持显示水印。 预约会议支持发送邮件日历:在预约会议-高级设置里可开启发送邮件日历功能,会议预约成功后与会人员账号绑定邮箱可收到邮件日历。 UCD改版,优化用户体验:界面风格变化,颜色更加丰富,整体更加美观。 框架优化,提升性能及稳定性。 修复在桌面云环境下WeLink云盘无法上传下载文件的问题。
  • 2020/09/27-WeLink PC端 V6.10.1 【新增功能】 通讯录个人详情页可按自定义设置显示部门样式。 在“管理后台-设置-通讯录设置-员工信息设置-部门显示样式设置”中,可自定义部门显示样式,设置后可显示在PC端通讯录个人详情页。 通讯录个人详情页面支持显示主管信息。 在管理后台为员工设置主管信息后,可在PC端通讯录个人详情页查看到主管信息。 直播新增热门推荐。 直播首页新增热门推荐,可查看平台为用户推荐的精彩直播内容,企业管理员可在直播管理后台将自有直播内容(直播回放或重要直播)设置到推荐位。 修复部分已知,提高版本稳定性。 PC6.10.1新版本功能介绍.docx
  • 2020/05/26-WeLink PC端 V6.5.5 【新增功能】 通讯录:支持显示员工多部门信息,完整显示员工部门信息。 【体验优化】 会议优化:多项体验提升,会议功能更好用。 视频会议默认开启美颜效果,开会更舒心。 预约会议时间支持按分钟选择,更精准。 会议分享卡片优化,新增会议二维码。 群组发起会议时,支持取消勾选无需入会人员。 与会者列表支持查看摄像头开关状态。 会中关闭摄像头后,屏幕中会显示与会成员头像。 头像更换更快捷,用户可快速更换新头像。 PC6.5.5版本新功能介绍.docx
  • 2020/05/06-WeLink PC端 V6.4.3 【新增功能】 新增扫码登录:手机端扫码快速登录PC端。 新增快速切换企业:无需退出登录,即可一键切换企业。 新增企业认证标识:企业列表增加认证企业标识,准确识别已认证官方企业组织。 【体验优化】 会议优化: 支持广播多画面:在Web会议管理平台设置广播多画面后,PC端支持显示多画面。 支持锁定共享:主持人锁定共享后,仅主持人可以发起共享。 首次加入会议默认关闭摄像头:用户首次用WeLink入会时,默认关闭摄像头。 屏幕共享更流畅:共享视频时,提升视频播放流畅性。 会议降噪效果提升:可有效屏蔽会议中的背景噪声。 视频会议体验更佳:解决偶现视频花屏、视频会议卡顿的问题。 云笔记优化:可在客户端内打开,无需跳转浏览器。 IM优化:历史消息新增“加载更多”按钮。 PC6.4.3版本新功能介绍.docx
  • 2020/07/08-WeLink PC端 V6.6.6 【新增功能】 会议。 主持可移除与会者。 音视频设备检测功能,快速检测、排查设备问题。 支持音频降噪,可有效消除说话时的环境杂音。 增加网络检测功能。 可检测WeLink网络连接状态,方便定位会议网络连接和无法登录等问题。 IM消息支持合并转发。 在单聊和群聊对话窗口,选中多条对话消息后,可将选中的消息合并转发给同事或者群聊,消息以卡片形式呈现。 【体验优化】 会议。 会议中对方网络不佳时,小画面将显示网络信号状态格。 发言时,列表中的麦克风图标会随音量大小动态变化。 密码输入错误提示优化。 当用户第一次和第二次输错密码时,系统会提示:“账号或者密码错误”。 当用户第三次输错密码时,系统会提示:“账号或者密码错误,连续5次错误将锁定账号15分钟(当前错误3次)”。 当用户第四次输错密码时,系统会提示:“账号或者密码错误,连续5次错误将锁定账号15分钟(当前错误4次)”。 当用户第五次输错密码时,系统提示“错误次数过多,请15分钟后再试”。 如用户输错次数大于5次,系统会提示:“账号锁定,请15分钟后再试”。 PC6.6.6版本新功能介绍.docx
  • 2020/04/14-WeLink PC端 V6.3.4 【新增功能】 会议功能更新: 支持编辑已预约会议:会议预约成功后,可对与会人员、会议时间等信息进行二次编辑。 语音会议支持录制:在发起语音会议(预约语音会议)的高级设置中开启“录制会议”,会议开始后,即可录制。 支持锁定会议:在Web端会控页面或客户端会控页面,支持锁定会议,锁定后,仅可通过主持人邀请入会,未被邀请的用户无法主动入会。 批量导出历史会议记录:在个人会议管理平台,可以批量导出历史会议记录。 新增业务模块: 用户可以查看待办、审批,会议日程卡片;使用各类企业应用,访问应用中心,便捷处理各类办公类事务。 云空间集成: 云空间集成PC客户端,不需要再跳转浏览器。支持超大文件传输、批量上传下载、秒传、断点续传等特性,体验更流畅。 PC端支持打开我的客服: 点击搜索框右侧的“客服”图标,用户可与WeLink官方客服联系,快速寻求官方帮助。 PC6.3.4版本新功能介绍.docx
  • 2020/03/21-WeLink PC端 V6.2.34 【新增功能】 新增云笔记:快速建立文字、手写和Markdown笔记,随时保存工作灵感。 会议邀请:支持一键邀请团队参会,快速将团队内所有成员拉入会议。 支持打开卡片消息:新增支持打开移动端分享到PC端投票、话题等卡片消息。 支持接收公众号消息:新增支持接收和打开WeLink团队等系统公众号推送的消息。 【体验优化】 会议体验优化。 声音效果提升,解决回声、丢字问题,声音更清晰,沟通更舒心 屏幕共享更好用,顶部菜单栏变细,不会遮挡共享内容 会议邀请更直观,邀请后自动打开与会者列表,方便查看邀请用户呼叫状态 电话外呼体验优化,提升用户使用体验。 PC6.2.34版本新功能介绍.docx
  • 规则 物化视图(Materialized View)显式指定聚合表。 在创建物化视图时,使用TO关键字为物化视图指定数据存储表。 如果不显示指定聚合表,则会创建隐式表.inner.mv1,与物化视图绑定。 用于数据预聚合的物化视图,聚合表使用聚合引擎。 如果不用聚合引擎,则每次数据插入,会对明细表的全量数据重新计算,而不是只处理增量数据。 聚合表中,聚合指标定义成聚合类型(AggregateFunction)。 物化视图的指标列与聚合表中对应字段名称一致,命名规范如下: {aggrateFunction}_{columnName}_state 聚合表创建样例: CREATE TABLE counter_daily_agg ON CLUSTER default_cluster ( day DateTime, device UInt32, count UInt64, max_value_state AggregateFunction(max, Float32), min_value_state AggregateFunction(min, Float32), avg_value_state AggregateFunction(avg, Float32) ) ENGINE = SummingMergeTree() PARTITION BY tuple() ORDER BY (device, day);
  • 建议 不建议表中存储过多的Nullable列,可以考虑字符串使用“NA”,数值型用0作为缺省值。过多使用Nullable将消耗更多内存。 建议规划好业务所需的列,必要时可提前预置一些属性列,避免频繁的增删列。 数值类型:UInt8/UInt16/UInt32/UInt64、Int8/Int16/Int32/Int64, Float32/Float64等,选择不同长度,性能差别较大。 建议根据业务场景所需选择最小满足的类型使用。 示例 CREATE TABLE counter ON CLUSTER default_cluster ( `when` DateTime DEFAULT now(), `device` UInt32, `value` Float32, `value64` Float64 ) ENGINE = MergeTree PARTITION BY toYYYYMM(when) ORDER BY (device, when) 表中有Float32类型的字段value和Float64的字段value64插入数据的查询表现如下: INSERT INTO counter SELECT toDateTime('2019-01-01 00:00:00') + toInt64(number / 10) AS when, (number % 10) + 1 AS device, (device * 3) + (number / 10000) AS value, value FROM system.numbers LIMIT 100000000; 往value和value64插入相同的数据,总数据量1亿条。 查询Float32字段 耗时:0.750秒。 查询Float64字段 耗时:0.929秒。 结果:Float32类型的查询时间比Float64更快。 低基数维度(基数1万内),建议使用LowCardinality修饰符,提升查询性能。 维度的基数(Cardinality):指的是该维度在数据集中出现的不同值的个数。例如“国家”是一个维度,如果有200个不同的值,那么此维度的基数就是200。 根据官方建议和实践经验,在维度基数小于1万的时候,对维度字段做LowCardinality编码,导入性能会有略微下降,查询性能提升明显,数据存储空间下降明显。 在默认的情况下,声明了LowCardinality的字段会基于数据生成一个全局字典,并利用倒排索引建立Key和位置的对应关系。如果数据的基数大于8192,也就是说不同的值多于8192个,则会将一个全局字典拆分成多个局部字典(low_cardinality_max_dictionary_size参数控制,默认8192)。 示例 CREATE TABLE test_codecs ON CLUSTER default_cluster ( `a` String, `a_low_card` LowCardinality(String) DEFAULT a ) ENGINE = MergeTree PARTITION BY tuple() ORDER BY tuple(); 其中,字段a是原生字符串,字段a_low_card基于a做了低基维编码。 数据存储的对比 查询性能对比 查询性能有5倍的提升。
  • 规则 写本地表,查询分布式表,提升写入和查询性能,保证写入和查询的数据一致性。 只有在去重诉求的场景下,可以使用分布式表插入,通过sharding key将要去重的数据转发到同一个shard,便于后续去重查询。 外部模块保证数据导入的幂等性。 ClickHouse不支持数据写入的事务保证。通过外部导入数据模块控制数据的幂等性,比如某个批次的数据导入异常,则drop对应的分区数据或清理掉导入的数据后,重新导入该分区或批次数据。 大批量少频次的写入。 ClickHouse的每次数据插入,都会生成一到多个part文件,如果data part过多, merge压力会变大,甚至出现各种异常影响数据插入。建议每个批次5k到100k行,写入字段不能太多,太多字段情况下要减少写入行数,以降低对写入节点的内存和CPU压力,每秒不超过1次插入。 多副本并行导入。 有大数据的导入场景,建议将数据提前拆分成多份,在一个shard内的多个副本同时导入,以分摊一个节点导入数据的压力,同时能提升数据入库的性能,缩短入库时间。 常见错误: Too many parts(304). Merges are processing significantly slower than inserts 原因分析:MergeTree的merge的速度跟不上目录生成的速度,数据目录越来越多就会抛出这个异常。
  • 建议 一次只插入一个分区内的数据 如果数据属于不同的分区,则每次插入,不同分区的数据会独立生成part文件,导致part总数量膨胀,建议一批插入的数据属于同一个分区。 写入速率 单节点写入速度为50~200MB/S,如果写入的数据每行为1Kb,那么写入的速度为50,000到200,000行每秒,如果行数据容量更小,那么写入速度将更高,如果写入性能不够,可以使用多个副本同时写入,同一时间每个副本写入的数据保持均衡。 慎用分布式表批量插入 写分布式表,数据会分发到集群的所有本地表,每个本地表插入的数据量是总插入量的1/N,batch size可能比较小,导致data part过多,merge压力变大,甚至出现异常影响数据插入; 数据的一致性问题:数据先在分布式表写入节点的主机落盘,然后数据被异步地发送到本地表所在主机进行存储,中间没有一致性的校验,如果分布式表写入数据的主机出现宕机,会存在数据丢失风险; 对于数据写分布式表和数据写本地表相比,分布式表数据写入性能也会变慢,单批次分布式表写,写入节点的磁盘和网络IO会成为性能瓶颈点。 分布式表转发给各个shard成功与否,插入数据的客户端无法感知,转发失败的数据会不断重试转发,消耗CPU。 大批量数据导入要分时、分节点、扩容 如果数据盘为SATA盘,当大批量数据集中插入时候,会抢占磁盘,使得磁盘长时间处于繁忙状态,影响其他alter类操作的效率。 尽量避免批量导数据的SQL并发执行,会给磁盘和ClickHouse并发能力带来冲击。 Kafka数据入库 不建议建ClickHouse kafka表引擎,进行数据同步到ClickHouse中,当前CK的kafka引擎有会导致kafka引擎数据入库产生性能等诸多问题,通过用户使用经验,需要应用侧自己写kafka的数据消费,攒批写入ClickHouse,提升ClickHouse的入库性能。 使用分区替换或增加的方式写入数据 为避免目标表写入脏数据导致的删改,先将数据写入临时表,再从临时表写入目标表。 操作步骤如下: 创建一张与目标表table_dest结构、分区键、排序键、主键、存储策略、引擎都一致的临时表table_source。 先把数据写到临时表,一次只写入一个分区的数据,检查临时表的数据准确无误。 使用以下SQL查看目标表的分区: SELECT partition AS `partition`,sum(rows) AS `count` FROM system.parts WHERE active AND database=='数据库名' AND table=='表名' GROUP BY partition ORDER BY partition ASC; 如果目标表存在该分区,将分区替换到目标表,到集群的每个节点上执行如下语法: ALTER TABLE table_dest REPLACE PARTITION partition_expr FROM table_source; 如果目标表不存在该分区,将分区增加到目标表,到集群的每个节点上执行如下语法: ALTER TABLE table_dest REPLACE PARTITION tuple() partition_expr FROM table_source;
  • 内容介绍 本文主要描述ClickHouse数据管理全生命周期过程中,数据库规划、建模设计、开发、调优、运维的规则建议和指导。 通过这些约束和建议,指导开发者在ClickHouse数据库开发使用过程中能够最大化发挥数据库的优势,保障ClickHouse数据库高性能、稳定可靠运行。用户可更专注于上层业务,释放数据更大的价值。 表1 ClickHouse设计规范说明 项目 描述 数据库规划 集群业务规划、容量规划、数据分布。 数据库设计 Database设计、宽表设计、分布式表设计、本地表设计、分区设计、索引设计、物化视图设计。 数据库开发 简单查询、聚合查询、join查询、数据增/删/改等SQL开发。 数据库调优 调优思路、参数调优、系统调优、SQL改写调优。 数据库运维 监控、告警、日志、系统表/视图。
  • ClickHouse日志详细信息 日志类型 日志文件名 描述 ClickHouse相关日志 /var/log/Bigdata/clickhouse/clickhouseServer/clickhouse-server.err.log ClickHouseServer服务运行错误日志文件路径。 /var/log/Bigdata/clickhouse/clickhouseServer/checkService.log ClickHouseServer服务运行关键日志文件路径。 /var/log/Bigdata/clickhouse/clickhouseServer/clickhouse-server.log /var/log/Bigdata/clickhouse/clickhouseServer/ugsync.log 用户角色同步工具打印日志。 /var/log/Bigdata/clickhouse/clickhouseServer/prestart.log ClickHouse预启动日志。 /var/log/Bigdata/clickhouse/clickhouseServer/start.log ClickHouse启动日志。 /var/log/Bigdata/clickhouse/clickhouseServer/checkServiceHealthCheck.log ClickHouse健康检查日志。 /var/log/Bigdata/clickhouse/clickhouseServer/checkugsync.log 用户角色同步检查日志。 /var/log/Bigdata/clickhouse/clickhouseServer/checkDisk.log ClickHouse磁盘检测日志文件路径。 /var/log/Bigdata/clickhouse/clickhouseServer/backup.log ClickHouse在Manager上执行备份恢复操作的日志文件路径。 /var/log/Bigdata/clickhouse/clickhouseServer/stop.log ClickHouse停止日志。 /var/log/Bigdata/clickhouse/clickhouseServer/postinstall.log ClickHouse的postinstall.sh脚本调用日志。 /var/log/Bigdata/clickhouse/balance/start.log ClickHouseBalancer服务启动日志文件路径。 /var/log/Bigdata/clickhouse/balance/error.log ClickHouseBalancer服务运行错误日志文件路径。 /var/log/Bigdata/clickhouse/balance/access_http.log ClickHouseBalancer服务运行http日志文件路径。 /var/log/Bigdata/clickhouse/balance/access_tcp.log ClickHouseBalancer服务运行tcp日志文件路径。 /var/log/Bigdata/clickhouse/balance/checkService.log ClickHouseBalancer服务检查日志。 /var/log/Bigdata/clickhouse/balance/postinstall.log ClickHouseBalacer的postinstall.sh脚本调用日志。 /var/log/Bigdata/clickhouse/balance/prestart.log ClickHouseBalancer服务预启动日志文件路径。 /var/log/Bigdata/clickhouse/balance/stop.log ClickHouseBalancer服务关闭日志文件路径。 /var/log/Bigdata/clickhouse/clickhouseServer/auth.log ClickHouse服务认证日志。 /var/log/Bigdata/clickhouse/clickhouseServer/cleanService.log 重装实例异常产生的记录日志。 /var/log/Bigdata/clickhouse/clickhouseServer/offline_shard_table_manager.log ClickHouse入服/退服日志。 /var/log/Bigdata/clickhouse/clickhouseServer/traffic_control.log ClickHouse主备容灾流量控制日志。 /var/log/Bigdata/clickhouse/clickhouseServer/clickhouse_migrate_metadata.log ClickHouse元数据搬迁日志。 /var/log/Bigdata/clickhouse/clickhouseServer/clickhouse_migrate_data.log ClickHouse业务数据搬迁日志。 /var/log/Bigdata/clickhouse/clickhouseServer/changePassword.log ClickHouse修改用户密码日志。 数据迁移日志 /var/log/Bigdata/clickhouse/migration/数据迁移任务名/clickhouse-copier_{timestamp}_{processId}/copier.log 参考使用ClickHouse数据迁移工具,使用迁移工具时产生的运行日志。 /var/log/Bigdata/clickhouse/migration/数据迁移任务名/clickhouse-copier_{timestamp}_{processId}/copier.err.log 参考使用ClickHouse数据迁移工具,使用迁移工具时产生的错误日志。 /var/log/Bigdata/tomcat/clickhouse/auto_balance/数据迁移任务名/balance_manager.log 参考使用ClickHouse数据迁移工具,勾选一键均衡产生的运行日志。 clickhouse-tomcat日志 /var/log/Bigdata/tomcat/clickhouse/web_clickhouse.log ClickHouse自定义UI运行日志。 /var/log/Bigdata/tomcat/audit/clickhouse/clickhouse_web_audit.log clickhouse的数据迁移审计日志。 ClickHouse审计日志 /var/log/Bigdata/audit/clickhouse/clickhouse-server-audit.log ClickHouse的审计日志文件路径。 父主题: ClickHouse数据库运维
  • 日志路径 ClickHouse相关日志的默认存储路径为:“${BIGDATA_LOG_HOME}/clickhouse”。 ClickHouseServer运行相关日志:“/var/log/Bigdata/clickhouse/clickhouseServer/ *.log”。 ClickHouseBalancer运行日志:“/var/log/Bigdata/clickhouse/balance/*.log”。 ClickHouseServer审计日志:“/var/log/Bigdata/audit/clickhouse/clickhouse-server-audit.log”。 ClickHouse数据迁移日志:“/var/log/Bigdata/clickhouse/migration/${task_name}/clickhouse-copier_{timestamp}_{processId}/copier.log”。
  • 数据修改 建议慎用delete、update的mutation操作 标准SQL的更新、删除操作是同步的,即客户端要等服务端反回执行结果(通常是int值);而ClickHouse的update、delete是通过异步方式实现的,当执行update语句时,服务端立即返回执行成功还是失败结果,但是实际上此时数据还没有修改完成,而是在后台排队等着进行真正的修改,可能会出现操作覆盖的情况,也无法保证操作的原子性。 业务场景要求有update、delete等操作,建议使用ReplacingMergeTree、CollapsingMergeTree、VersionedCollapsingMergeTree引擎,使用方式参见:https://clickhouse.tech/docs/zh/engines/table-engines/mergetree-family/collapsingmergetree/。 建议少或不增删数据列 业务提前规划列个数,如果将来有更多列要使用,可以规划预留多列,避免在生产系统跑业务过程中进行大量的alter table modify列操作,导致不可以预知的性能、数据一致性问题。 对于批量数据清理,建议根据分区来操作: ALTER TABLE table_name DROP PARTITION partition_name; 禁止修改索引列 对索引列的修改会导致现有索引失效,触发重建索引,期间查询数据不准确。 如果业务场景必须修改索引列,推荐用ReplacingMergeTree引擎建表,使用数据写入+去重引擎代替数据更新场景:https://clickhouse.tech/docs/zh/engines/table-engines/mergetree-family/collapsingmergetree/。
  • 数据查询建议 建议查询指定分区 通过指定分区字段会减少底层数据库扫描的文件数量,提升查询性能,实际经验:700个分区的千列大表,需要查询一个分区中有7000万数据,其他699个分区中无数据,虽然只有一个分区有数据,其他分区无数据,但是查询指定分区为百毫秒级性能,没有指定分区查询性能为1~2秒左右,性能相差20倍。 慎用final查询 在查询语句的最后跟上final,通常是对于ReplacingMergeTree引擎,数据不能完全去重情况下,有些开发人员习惯写final关键字进行实时合并去重操作(merge-on-read),保证查询数据无重复数据。可以通过argMax函数或其他方式规避此问题。
  • 规则 大批量少频次的插入。 内容要求:ClickHouse的每次数据插入都会生成一到多个part文件,如果data part过多则会导致merge压力变大,甚至出现服务异常影响数据插入。建议一次插入10万行,每秒不超过1次插入。 一次只插入一个分区内的数据。 内容要求:如果数据属于不同的分区,则每次插入,不同分区的数据会独立生成part文件,导致part总数量膨胀。甚至写入报错“Merges are processing significantly slower than inserts“。一批次写入的数据,对应的分区数太多。ClickHouse建表之后insert batch时,会对不同的分区创建一个目录。如果一个batch里面的数据对应了过多的分区,那么一次insert就会生成较多的分区目录,后台merge线程处理速度跟不上分区增加的速度,社区规格是每秒不超过一个数据目录。 具体的操作:确认一个batch的数据对应了多少个分区,insert的时候,尽量保证一个batch包含的分区数是1。 慎用delete、update操作。 内容要求:建议使用CollapsingMergeTree、VersionedCollapsingMergeTree引擎或根据分区批量清理。 ClickHouse需要写本地表。 内容要求:连接balancer写入报错Request Entity Too Large。这是由于Nginx对http请求体大小有限制,而一次写入的数据量超过了这个限制。 规避:修改Nginx配置项client_max_body_size为一个较大的值。 解决:写本地表,不要通过balancer写入数据。
  • 操作步骤 先获取clickhouse-example样例代码工程。 代码获取地址:https://github.com/huaweicloud/huaweicloud-mrs-example/blob/mrs-3.1.2/src/clickhouse-examples/。 在样例工程“conf”目录下有一个“clickhouse-example.proerties”配置文件,其中各项的配置的作用如下所示: #连接节点或Balancer的ip列表,ip之间用逗号隔开 loadBalancerIPList= #是否需要开启ssl,如果取值为true,则loadBalancerHttpsPort必填 sslUsed=true #端口号 loadBalancerHttpPort= loadBalancerHttpsPort= #ClickHouse安全模式开关,安全模式集群时该参数固定为true。 CLICKHOUSE_SECURITY_ENABLED=true #连接的用户名 user= #连接的用户的密码 password= #集群名称 clusterName= #数据库名称 databaseName= #表名称 tableName= #一个批次写入的条数 batchRows=10000 #写入数据的总批次 batchNum=10 #ip:port。安全模式下https端口,普通模式下http端口 clickhouse_dataSource_ip_list= #ip:tcp port native_dataSource_ip_list=ip:port,ip:port,ip:port 在Demo.java有三种连接JDBC的样例:节点的JDBC连接、banlancer的JDBC连接和tcp端口的banlancer的JDBC连接。 Demo提供了createDatabase、createTable、insertData和queryData的样例。
  • 数据分布设计 Shard数据分片均匀分布 建议用户的数据均匀分布到集群中的多个shard分片,如图1所示有3个分片。 假如有30 GB数据需要写入到集群中,需要将30 GB数据均匀切分后分别放到shard-1、shard-2和shard-3的3个分片节点中,以充分发挥MPP查询时并行计算能力,避免数据在shard间倾斜计算出现木桶效应,导致SQL查询性能较差。 可通过弹性负载均衡(Elastic Load Balance,简称ELB)访问ClickHouse,来实现数据均匀。 Shard内数据副本高可靠存储 数据写入单shard中的一个副本后,ClickHouse会自动异步将数据同步到其他副本,如图1中的shard-3。 如果将10GB数据导入ClickHouse Node 5节点副本,ClickHouse会自动异步将数据同步到ClickHouse Node 6节点副本,保证shard-3分片数据的高可靠性存储。
共100000条