-
>摘要:本文是我们对clickhouse做了最简单的支持obs的适配改造。 本文分享自华为云社区[《clickhouse存算分离在华为云实践》](https://bbs.huaweicloud.com/blogs/303532?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=ei&utm_content=content),作者: he lifu。 clickhouse是一款非常优秀的OLAP数据库系统,2016年刚开源的时候就因为卓越的性能表现得到大家的关注,而近两年国内互联网公司的大规模应用和推广,使得它在业内声名鹊起,且受到了大家一致的认可。 从网络上公开分享的资料和客户使用的案例总结来看,clickhouse主要是应用在**实时数仓**和**离线加速**两个场景,其中有些实时业务为了追求极致的性能会上全SSD的配置,考虑到实时数据集的有限规模,这种成本尚能够接受,但是对于离线加速的业务,数据集普遍会很大,这个时候上全SSD配置的成本就会显得昂贵了,有没有办法既能满足较高的性能又能把成本控制的尽量低?我们的想法是弹性伸缩,把数据存储到低廉的对象存储上面,通过动态增加计算资源的方式满足高频时段的高性能需求,通过回收计算资源的方式控制低频时段的成本,所以我们把目标放在了存算分离这个特性上。 # 一.存算分离现状 clickhouse是存算一体的数据库系统,数据是直接落在本地磁盘上(包括云硬盘),关注社区动态的读者已经知道最新的版本可以支持数据持久化到对象存储和HDFS上了,以下是我们对clickhouse做了最简单的支持obs的适配改造,和原生的支持S3一样: ### 1.配置S3磁盘  ### 2.创建表并灌入数据  ### 3.检查本地盘数据  ### 4.检查对象存储数据  从上面几个图片来看, 可以发现本地磁盘上的数据文件内容记录了obs上的文件名(uuid),也就是说clickhouse和obs对象之间是通过本地数据文件中的“映射”关系关联起来的,注意这个“映射”关系是持久化在本地的,意味着需要冗余以满足可靠性。 然后进一步,我们看到社区也在努力把clickhouse往存算分离的方向推进: - v21.3版本引入的Add the ability to backup/restore metadata files for DiskS3,允许把本地数据文件到obs对象的映射关系、本地数据的目录结构等属性,放到obs对象的属性里(object的metadata),这样解耦了数据目录必须在本地的限制,也解除了维持映射关系的本地文件可靠性而至少双副本的条件; - v21.4版本引入的S3 zero copy replication,使得多个副本间可以共享一份远端数据,显著的降低了存算一体引擎多副本存储的开销。 但事实上,通过验证测试可以发现当前阶段存算分离距离可以上生产还有很长路要走,比如:atomic库下的表怎么搬到对象存储上(表定义sql文件中标识唯一性的UUID和数据目录UUID的对应关系)、弹性扩缩容时候如何快速有效均衡数据(拷贝数据会极大拉长操作窗口)、修改本地磁盘文件和远端对象如何保障一致性、节点宕机如何快速恢复等等棘手的问题。 # 二.我们的实践 在云原生的时代,存算分离是趋势也是我们的工作方向,接下来的讨论将围绕华为公有云对象存储obs来展开。 ### 1.引入文件语义 这里需要重点强调下华为云对象存储obs和其他竞品的最大差异化点:**obs支持文件语义,支持文件和文件夹的rename操作**。这点对于我们在接下来的系统设计和弹性伸缩实现上非常有价值,所以我们把obs的驱动集成进了clickhouse,然后修改了clickhouse的逻辑,这样数据在obs上长的和本地一模一样了: Local Disk:  OBS:  有了完整的数据目录结构后,再支持merge、detach、attach、mutate以及part回收等操作就比较方便了。 ### 2.离线场景 From bottom to top,我们再来看系统结构,离线加速场景中去除了对zookeeper的依赖,每个shard一个replica:  然后是扩缩容节点时候的数据均衡功能,通过obs的rename操作完成对part级别的低成本移动(和clickhouse copier工具的数据重新分发均衡不一样),节点宕机后新节点从对象存储侧构造出本地数据文件目录。 ### 3.融合场景 ok,在上面离线场景的基础上我们继续融入实时场景(下图中的“实时集群”部分),不同业务的clickhouse集群,可以通过冷热分离分层存储的方式(这一功能相对比较成熟,业内普遍采用它来降低存储成本),把冷数据从实时集群里淘汰出来,再通过obs rename操作挂载到“离线集群”中,这样我们可以覆盖数据从实时到离线的完整的生命周期(包括从hive到clickhouse的ETL过程):  # 三.未来的展望 前面的实践是我们在存算分离方向的第一次尝试,还在不断的改进优化中,从宏观的角度来看仍旧是把obs作为拉远了的磁盘来使用,不过感谢obs的高吞吐,相同计算资源的前提下SSD和obs跑Star Schema Benchmark的性能延迟在5x左右,但是存储成本得到了显著的降低10x。未来,我们会在前面工作的基础上,去除obs作为拉远磁盘的属性,把单个表的数据统一在一个数据目录下,收编clickhouse的元数据,把它做成无状态的计算节点,达到sql on hadoop的效果,类似impala一样的MPP数据库。
-
您好,如题,断点续传支持的文件类型是本地文件路径,我们调用时,前端上传会是MultipartFile文件类型,需要读取文件内容转成file才能实现,这会背离断点续传初衷(失败后从断点开始上传),请问有更合适的方法实现吗?参考文档断点续传上传_对象存储服务 OBS_SDK参考_Java_上传对象_华为云 (huaweicloud.com)
-
您好,我使用java断点续传接口时,将服务关闭让上传失败后再次调用上传接口时发现上传进度又是从0开始了,请问这个续传应该怎么实现从失败的进度继续?参考的断点续传上传_对象存储服务 OBS_SDK参考_Java_上传对象_华为云 (huaweicloud.com)
-
官网下载的版本是OBSBrowserPlus-win64,不支持win server2012的操作系统,现在应该下载哪个版本的呢,急用,可电话联系18549921504
-
官网下载的版本是OBSBrowserPlus-win64,不支持win server2012的操作系统,现在应该下载哪个版本的呢,急用,可电话联系18549921504
-
感谢华为云团队给的这次学习的机会,我有幸参加了华为云HCIA-Cloud Service职业认证训练营活动。在本次活动中,认识了许多的小伙伴,也得到了班主任小助手的各种帮助,也感谢老师在课程中的精彩演讲。通过本次课程中我学习了通过HCIA-Cloud Service认证,将证明您掌握云服务概念和价值,华为云服务架构和生态,华为云计算服务、存储服务、网络服务、安全服务、管理与监控、关系型数据库、CDN&云视频服务和创新应用服务的管理和应用,具备使用各类云服务产品进行应用部署和维护的能力,可以助力企业实现ICT环境的云转型。我比较感兴趣的是对象存储。它具有数据稳定,业务可靠:OBS支撑华为手机云相册,数亿用户访问,稳定可靠。通过跨区域复制、AZ之间数据容灾、AZ内设备和数据冗余、存储介质的慢盘/坏道检测等技术方案,保障数据持久性高达99.9999999999%,业务连续性高达99.995%,远高于传统架构。还具有多重防护,授权管理:OBS通过可信云认证,让数据安全放心。支持多版本控制、敏感操作保护、服务端加密、防盗链、VPC网络隔离、访问日志审计以及细粒度的权限控制,保障数据安全可信。还具有千亿对象,千万并发:OBS通过智能调度和响应,优化数据访问路径,并结合事件通知、传输加速、大数据垂直优化等,为各场景下用户的千亿对象提供千万级并发、超高带宽、稳定低时延的数据访问体验。与此同时,他具备简单易用,便于管理:OBS支持标准REST API、多版本SDK和数据迁移工具,让业务快速上云。无需事先规划存储容量,存储资源和性能可线性无限扩展,不用担心存储资源扩容、缩容问题。OBS支持在线升级、在线扩容,升级扩容由华为云实施,客户无感知。同时提供全新的POSIX语言系统,应用接入更简便的优势。
jerryxiaofei
发表于2021-11-27 22:38:34
2021-11-27 22:38:34
最后回复
jerryxiaofei
2021-11-27 22:38:34
1036 0 -
# 场景描述 大文件的文本数据(好几个G),上传至OBS,通过CDM迁移,转换成拥有指定分割符和换行符的文本数据。# 故障现象 ### 现存文本数据的每一行数据后面,都有分隔符及换行符。而目标文本数据需要每行数据的后面没有分隔符只有换行符。# 解决方案 可以将文本数据上传到OBS,通过CDM迁移至另一个OBS,在迁移设置中更换换行符和分隔符,从而获得一个拥有指定分隔符和换行符的文本数据。# 操作步骤 ### 1、将文件上传至[源]OBS ### 2、开通CDM服务(按需)后,在【表/文件迁移】新建作业,点击源连接旁边的【+】新建连接。 其中:AK和SK可在华为云右上方【我的凭证】生成。 ( https://console.huaweicloud.com/iam/?region=cn-north-4#/mine/accessKey ) ### 3、配置连接源后新建作业,选择上面 上传至[源]OBS的文件,如下配置换行符和字段分隔符。 ### 4、配置好后运行作业,此时源OBS中的文件已迁移至目标OBS,文件也按配置做了转换。可下载迁移转换好的文件进行查看。  # 参考知识 1、CMD产品: https://www.huaweicloud.com/product/cdm.html 2、OBS产品: https://www.huaweicloud.com/product/obs.html
-
因为项目需要,appcube会安装到客户的本地环境,项目中需要用到文件存储功能,所以考虑使用华为云obs,但是不清楚线下部署的appcube,能否使用华为云的obs服务,是否有相关成功的案例,希望能给个方案
-
以下为个人整理总结,供大家参考讨论~块存储: 块存储是直接操作盘,通常将数据拆分成数据块,然后对盘进行直接的读写。块存储中检索方式就是利用地址。在块存储层面,使用者往往不感知数据的组织方式以及结构,仅仅使用最粗暴的方式将数据进行存储:即将数据按照固定的大小分块,每个块通过逻辑块编号(LBA,Logical Block Addressing)来进行寻址,通过提供对磁盘直接进行操作的接口来进行数据存储。 文件存储: 文件存储是我们在使用计算机过程中接触最多的存储类型。我们所说的文件或目录都来源于文件存储。如Windows上的NTFS,Linux上的ext4,XFS等。文件存储主要作用是用于对文件数据进行组织和管理。文件存储中的文件的数据包括:元数据和数据。数据是文件的实体内容;而文件元数据是指用于管理该文件的一些信息数据,如文件大小,名字和属性等。从功能上看,文件存储单纯的是一套管理软件。从层次上看,文件存储一般基于块存储之上。 文件和目录组成了一颗庞大的文件树,文件作为树的叶子节点。在Windows下,我们可以通过鼠标点击的方式一层一层的打开一个文件所在的路径;在Linux下,我们可以通过tree命令来查看某个目录下的子目录树。在文件存储中,访问文件采用路径方式进行交互式访问,也可以通过标准的文件系统接口进行访问。 对象存储: 对象存储将数据以一个独立的对象的方式进行存储。一个pdf文件,一个视频或其他任意类型的文件都是一个对象。在对象存储中,没有文件系统中的层次结构。对象存储中引入桶的概念,所有的对象存储在各个桶中,整体采用扁平化的方式进行管理。每个桶里的对象都是唯一的,通过对象名进行索引。在对象存储中,访问对象通常采用API方式进行访问。
-
上传的文本文件 “abcdefghijklmnopqrstuvwxyz0123456789”上传完成后报上面的错误 Error transferring http://s********ev.obs.cn-north-1.myhuaweicloud.com/20211101220513870 - server replied: Illegal character CNTL=0x15
-
通过API的PUT接口上传图像文件,按样例内容,只提供PUT,Date,和canonicalizedResource后生成的signature, 在文件上传完成后,报signature错,是不是有缺项?上传图像文件时,那些字段是必填的,如何填写,确保生成的signuture正确的。谢谢
-
【12月限时福利】拿码豆,换礼品!填问卷即有机会获得2000码豆! 即日起到2021年12月31日,先到先得!赶快行动起来 提交服务越多,获奖概率越大哦! 动动手指快快行动起来!冲鸭~~每周二在评论处公布获奖用户,码豆将在公布后3个工作日到账如果您是新用户请点击下列指路链接:OBS: https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=165473 EVS: https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=165483 CBR: https://bbs.huaweicloud.com/forum/thread-165781-1-1.html 如果您是老用户请直接前往服务台提交评价:OBS: https://console.huaweicloud.com/console/?from=bss#/obs/manager/csbs/vaultList EVS: https://console.huaweicloud.com/ecm/?from=bbs®ion=cn-east-3#/evs/manager/volumelist CBR: https://console.huaweicloud.com/console/?from=bss#/cbr/manager/csbs/vaultList 会员中心入口:https://devcloud.huaweicloud.com/bonususer/home 码豆奖励活动规则: 1)码豆可在码豆会员中心兑换实物礼品; 2)码豆奖励将于活动结束后的3个工作日内充值到账,请到会员中心的“查看明细”中查看到账情况; 3)码豆只能用于会员中心的礼品兑换,不得转让,具体规则请到会员中心阅读“码豆规则”; 4)为保证码豆成功发放,如果修改过账号名还请向工作人员提供修改前后的账号名; 5)码豆自到账起有效期1年,到期后系统将自动扣除到期码豆,请务必在码豆有效期截止前兑换完毕。
-
browserjs在前端上传文件,会暴露AK/SK,这个如何保证安全
-
【问题来源】【必填】 武农商 【问题简要】【必填】 obs外呼无法停止,和obs外呼乱序【问题类别】【必填】 AICC平台功能【AICC解决方案版本】【必填】 【AICC版本:AICC 8.15.1】 【UAP版本:UAP9600 V100R005C00SPC021】 【CTI版本:ICD V300R008C23SPC002】【期望解决时间】【选填】 尽快【问题现象描述】【必填】 问题1: 现场测试OBS功能,我们自己创建提交外呼任务执行后推送到华为平台,可以照常拨打,此时如推送的任务有十个号码需要拨打打,打了几个后我们点击停止任务,华为平台仍然在拨打并未停止.停止时,icd库会修改T_HUAWEI_OBS_USERDATA表 STAT字段为3 和T_HUAWEI_TASK FINISHSTATUS字段为1.希望知道平台这边拨打电话的逻辑是根据哪几个字段来判断,或则停止的逻辑.问题2:华为平台拨打电话的顺序是乱序的,与我们上传过去的数据,拨打顺序不一致,希望按照我们上传名单顺序拨打,可以添加个T_HUAWEI_TASK 表里 UNIQYEID字段进行排序之类的排序操作.
-
嵌入式系统需要集成OBS的服务,有没有相关集成的指南文档,谢谢
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签