湖仓一体,可以提供数据湖的开放格式、低成本存储,以及强大的管理能力。数据分析、机器学习、实时计算、音视频检索等都可以从“湖”里汲取数据,从而让数据治理更加便捷高效。

在传统行业数字化转型过程中,尤其像在金融行业,全域数据统一管理、集中开发和融合共享是必然趋势,这是时下湖仓一体被寄予厚望的重要原因。那么,如何架构经过验证的湖仓一体解决方案,并推动它很好的演进?

近日,网易数帆举办了“企业级流式湖仓服务Arctic开源发布会”。发布会上,详细介绍了网易数帆如何理解湖仓一体、Arctic项目的孵化和成型,这一项目可以解决哪些问题、发挥怎样的能力、能够为大数据从业者带来什么,以及社区的建设和未来的发展。

产品发布:开放式架构下的开源流式数仓平台

在长期服务客户的过程中,网易数帆总结出自己的数据建设方法论:DataOps、DataFusion,以及DataProduct。发布会开始,网易数帆大数据产品线总经理余利华就如何在这一方法论之下架构开源流式数仓平台,以及如何进行Arctic项目孵化进行了深入分享。

在网易数帆的大数据技术体系架构中,最底层是基础设施,即存储计算能力架设;底层之上是数据研发层,提供包括数据传输、实时开发、离线开发、数据测试、任务发布、任务运维等能力,覆盖DataOps整个过程;再往上是数据中台,在这一层,数据研发和治理的一体化、中台架构解决数据孤岛,以及设计基于ROI的数据资产沉淀方法是主要亮点;数据中台再往上是数据产品,可基于无代码的方式建设场景化的数据产品。

首先,在技术架构上,该体系最大的特点是开放式,可让各模块独立成为一个项目:存储单拉出来是HDFS,缓存单拉出来是Alluxio,执行引擎和查询拉出来是Spark、Impala,等等。每个模块独立成一个项目,通过松耦合的方式组装在一起就形成了开放式大数据技术体系。这样的架构好处显而易见,包括能力全面、生命力强,以及建设成本较低。

其次,第二个技术特点是开源,包括采用直接开源的软件,以及在开源软件不能满足的情况下给社区做Patch。这样一来不仅能够被社区评审和检验,公司本身也不用长期维护Patch,降低维护成本。截至目前,网易数帆在Spark领域累计合入提交了近600多个Patch,同时也培养了一位Spark committer。网易数帆在整个大数据发展史上,培养了多位Apache的committer。

此外,如果社区确实无法满足开源需求,才会进行自研开源,比如Kyuubi。这个项目在立项时,开放式架构的其他层有Spark、Impala、Parquet等开源技术可选,但是缺少统一的多租户安全的SQL网关,因此Kyuubi诞生。目前这个项目已进入Apache孵化,并在阿里云、腾讯云、中国移动、小米等公司落地,有17位committer和83位贡献者。

当然,在建设中台的过程中,也面临不小的挑战。首先,是技术不统一,实时技术和离线技术采用两套技术栈,带来的问题是整个系统的运维复杂,同时存储冗余也浪费成本;其次,研发体系的割裂让成本增加。此外,应用开发也十分复杂,将实时表和离线表通过两种存储方式存储,不仅增加了用户理解困难度,冗余数据也带来了数据口径的指标二义性问题。

在余利华看来,以上问题的解决核心在于提供流式数仓平台,把实时表和离线表相结合,一张表既可以支持流式消费、流式写入,也要支持批量查询和更新。

在基于数据湖的开放式架构中,从下到上分别是文件系统层,实现数据的存储和访问;文件格式,定义文件和数据之间的关系;表格式层,定义文件与表之间的逻辑关系;最上层是接口,是以SQL的方式统一访问的入口。

如果要支持流式数仓,需要在表格式层动点“小手术”,引入Iceberg、Delta等新型表格式。新型表格式解决了数据更新、大表访问性能、数据增量消费等问题,但是仍然遗留了不少问题。余利华举了三个例子:第一是小文件问题,频繁数据写入,带来很多小文件,导致查询性能很差,有时候性能会下降一半;第二是兼容性问题,是否能兼容目前最主流的HIVE格式,简化应用推广,是否能兼容Iceberg/Delta等格式,数据中台还是那个数据中台,我们只是多了选择表格式的自由;第三是流式更新问题,Iceberg、Delta表格式流式更新能力较弱, 用在数据库到大数据实时同步场景性能有所不足, 短期内需要做一些增强。

为对以上问题进行针对性解决,网易数帆和华泰证券一起研发了企业级的流式湖仓服务Arctic,并将其开源。

Arctic技术架构:实现开箱即用的元数据服务

据网易数帆大数据实时计算技术专家、湖仓一体项目负责人马进介绍,公司自2020年开始关注数据湖新技术便聚焦于构建流批一体和湖仓一体的架构。最初想要采用Flink+Iceberg,但在真实场景应用时发现过多问题,因而进行了自主设计,便是Arctic的雏形。

也是从2020年开始,Hudi和Iceberg进入不少开发者的视野,随着它们从Apache孵化到毕业,Table format的概念逐渐被更多人接受。首先,Table format定义了哪些文件可以构成一张表,像Flink、Spark、Trino、Impala,任何引擎都可以根据Table format去查询检索数据;其次,Table format规范了数据和文件的分布方式,任何引擎写入数据都要遵照这个标准。

事实上,在有了Table format之后,可以基于数据湖来实现类似于消息队列的功能,数据延迟会从毫秒或者秒级降级为分钟级别,像实时更新、读时合并。行业内很多公司推广数据湖的主要场景时,主要以实时更新以及读时合并平替如Kudu、Doris、Greenplum这些支持更新的数仓系统。

进一步,在企业需要怎样的数据湖这个问题上,有三点值得注意:首先,如果只关注数据湖Table Format个别中间功能,推广起来会比较困难;其次,当用数据湖做消息队列时,可能引入很多小文件,小文件的管理需要保持关注;最后,还有一个隐形的问题——成本分摊,以前消息队列的成本由业务团队承担,现在用一个公共的数据湖底座,成本的合理分摊也需要注意。

因为存在以上问题,业内很多公司在是否使用数据库新技术作为替代解决方案这个问题上都比较纠结。那么,Lakehouse技术如何给企业带来更大价值?

在马进看来,应用场景一般期望在数据中台层、方法论层可以使用一套规范或流程把实时和离线,以及更多的AI场景统一起来。而Lakehouse这个概念创造出来的意义,就是拓展产品的边界,让数据湖能更多的服务于流的场景和AI的场景,他表示:“Lakehouse,或者说湖仓一体给业务终端带来的是体系上的收益,而不在于对某个功能的使用。”

为了实现这样的效果,Arctic在lceberg和Hive之上增加了更多实时场景的能力,面向DataOps提供开箱即用的元数据服务,让数据湖更加合用和实用。

具体来说,Arctic包含两个核心组件:元数据服务AMS,在系统中的定位是下一代HMS的角色;以及包含了整套optimizer的组件和机制,可以实现持续的后台数据自优化。

具体到架构和组件的设置,在数据湖层包括change files、base files,分别对应changestore和basestore;上层则设置了一个AMS,是三元组的元数据中心,支持和HMS做同步。同时,AMS会提供事务和冲突解决API;在Optimizer层,有一整套完整的扩展机制和管理机制,包括Optimizer container和Optimize group。此外,在Arctic架构中匹配了单独的管理界面Dashboard,提升湖仓本身的管理体验。而在Table format的兼容性设定上,主要提供两种方案,其一是Iceberg,包括basestore、changestore都是独立的Iceberg表,均可兼容到Iceberg的V2版本;其二是Hive的兼容模式,如果用户使用的是Hive formate兼容,它的change数据还是存在Iceberg里面。

谈及做开源的初衷,马进表示说:“过去我们做开源可能缺少统一的步调,去年领导层也下定决心,明确了未来做开源会以更加专注的方式。以Arctic项目为例,我们不会做任何的商业隐藏。从组织架构上,会以独立的团队推进开源,如果有商业转化会由其他的团队来推进。”

在发布会最后,来自华泰证券的大数据流计算技术专家陈丰进行了关于Arctic在金融数据平台的应用实践案例分享——帮助公司初步建成了数智中台实时湖仓,并在业务支撑中取得了预期的效果。

湖仓一体最大应用难点在选型,好的开源气质是“不隐藏”

1、湖仓一体能解决最核心的问题是什么,是如何解决的?

马进:对湖仓一体的概念理解,在国内可能有一些分歧。这个词最早是阿里提出的,当时提湖仓一体更多是想把MaxCompute和私有化的Hive结合起来,让用户私有化的Hive扩展到云端的MaxCompute中来。但我们如今所说的湖仓一体概念更多是指Databricks提出的Lakehouse这样的概念,它解决的核心问题是基于数据湖的技术,包括云端的对象存储,比如亚马逊的S3,阿里云的OSS,以及在私有化场景中主要是Hadoop,在这些数据湖的生态之上构建BI、AI和流计算,包括各种应用场景中的工具使用。

湖仓一体要做分层,首先要有对基础软件的需求,需要有一套管理系统以及对应的底层技术,能够让数据湖满足我们对各种各样场景的需求,包括对离线的需求、实时的需求,以及机器学习、特征计算这些不同应用的需求。

另外,我们可能需要在产品端,针对Lakehouse湖仓一体的技术做一些适配,让它的整个规范流程能够用这样一个底座实现最简洁的方式。所以回到这个问题,湖仓一体核心的问题其实就是将产品的边界、方法论的边界拓展到实时场景、AI场景,形成完整的、对用户友好和便捷的工具到基础软件的生态。

2、湖仓一体在各产业场景中面临着哪些共通的应用难点,有哪些解决方案?

马进:我觉得湖仓一体最大的应用难点在于选型,我们现在的湖仓一体选型非常多,有Delta、Iceberg、Hudi等。因为不可能让数据分析师、算法工程师、数据科学家们直接操作底层的东西,肯定会有一层产品的包装,以及相应的工具配套。但是这些做工具的人或者做产品的团队很难选型,比如选出什么样的东西对我来说最合理、最好。

所以我们会发现一个现状,虽然这个技术方向很热,但真正把数据湖Format这套技术应用到生产场景中,进而做大规模的推广其实是非常少的,用一句更加通俗的话说,这属于“雷声大雨点小”。所以,最重要的原因是我们现在开源的这些技术功能和产品需求还有很大的距离。

我们推出的开源项目,它的目标或者核心意义在于拉平目前开源Table format与产品之间的距离,我们的定位叫做流式湖仓服务。从概念上就能看出来,并不会基于数据湖重新造一套东西出来。我们更关注怎么能帮助企业和用户把这个东西用起来。在这个过程中,比如说存在管理的问题、适配的问题,都会在这一层基础软件层解决。

3、刚才我们谈到了DataOps,您是怎么看这个技术的?

马进:说起DataOps,很多人会说一长串,不管是流程上还是规范上,说明这个概念还比较抽象,所以需要很多的解释。我个人认为DataOps有点类似于DevOps,更多是给用户提供一套工具集,让用户可以开发数据,同时使用数据的流程变得简单,这个事情是可以体系化的运作的。

比如,我们最早面向数据分析师的数量是几个、几十个,现在大的企业有几百个数据分析师和数据科学家,这就需要多租户的能力。我们通过一套DataOps平台,从数据开发到持续集成,到后续运维,其实有一套方法论。所以,简单来说,我觉得DataOps就是对这套方法论进一步的抽象,它有进化的过程,最原始是数据开发运维平台,到后面有数据中台,可以在平台层沉淀更多的业务能力,在这后面我们强调业务在持续迭代过程中的敏捷性,就到了DataOps。

4、Arctic有持续自优化的能力,具体是怎么实现的?如果已经用了Delta或者Iceberg,迁移到Arctic需要做什么准备工作?有什么需要注意的?

马进:Arctic的持续自优化功能实现涉及两个方面:一是判断湖仓表数据发生了哪些变化,要了解用户新写进来的数据,尤其是小文件,会在引擎的connector中提供对接能力,用户每一次数据提交都会上报到元数据中心,可以实时感知到用户新写入了哪些数据。之后,元数据服务后台会提供一套优化器——optimizer调度服务,可以调度一些持续在进展中的进程做小文件合并,并且我们有整套机制为用户提供一套最佳优化实践。

至于企业已经用了Delta或者Iceberg,迁移到Arctic需要做哪些工作这个问题,首先我们的架构是开放的,从生态位角度来讲可以拥抱Delta,但目前这个工作还没有做,主要还是面向Iceberg。如果企业已经用了Iceberg,把一张表变成Arctic其实非常方便,后续会在社区中提供相应原地升级方案,用户只需要通过一个命令,就能把Iceberg表变成Arctic表,并且它同时依然是一张Iceberg表,可以用之前Iceberg表的所有功能。在使用的时候只需要区分它是用Arctic catalog还是Iceberg Catalog访问,就可以选择用各自的哪些功能,升级的过程是原地升级,而且只是个元数据的变更,会非常快速。

5、您认为好的开源项目是什么样的?Arctic未来会怎么做开源的建设?

马进:一个好的开源项目应该是比较纯粹,符合开源气质的项目。可以拿Delta和Iceberg两个项目来举例,从我的角度讲,Iceberg是非常符合开源气质的项目,因为它本身早期就是从Netflix内部需求孵化出的项目,然后开源出来给更多企业使用,不会说哪个功能是内部使用不对外开放,或者跟自家的某些功能做深度绑定。

Delta是一个非常优秀的项目,它的理念也非常好,自开源伊始它的理念在整个行业都是很超前的。但从当时开源的状态来说,并不是非常纯粹的开源项目,包括有些功能没有放在开源社区里,以及跟Spark深度绑定,有比较强的商业气息。

从我个人视角来看,一个好的开源项目首先应该符合开源气质,不管是团队还是项目本身,不应该有任何隐藏。目标应该通往基金会孵化,贡献给更多的用户和开发者,不只是国内,还有国外的用户。所以,Arctic未来做开源社区建设,我们也会秉承不隐藏的理念,包括和更多的国内外用户沟通,尽可能把项目推向更高的舞台。

— 推荐阅读 —

☞渡过“寒冬”,看云原生数据库如何助力企业降本增效与持续创新
☞Python 霸榜,学 SQL 工作更吃香,2022 IEEE 编程语言榜单发布!
☞涉嫌出售 50 亿个人数据,甲骨文面临集体诉讼

lceberg、Hive不够用?开箱即用才是硬道理!相关推荐

  1. 品牌才是硬道理——一线、二线主板品牌集中营品牌才是硬道理——一线、二线主板品牌集中营...

    品牌才是硬道理--一线.二线主板品牌集中营 现在的DIY市场可谓鱼龙混杂,令人眼花缭乱,为了让大家把这纷扰看个清清楚楚明明白白真真切切^_^,我准备分期把市场上各配件的常见品牌作以简要介绍,让大家对品 ...

  2. HighNewTech:2019.08.09程序猿界大事件之【你好,我是鸿蒙OS】~【来了,老弟】—技术才是硬道理,开源方能建立新生态!

    High&NewTech:2019.08.09程序猿界大事件之[你好,我是鸿蒙OS]~[来了,老弟]-技术才是硬道理,开源方能建立新生态! 导读       2019华为开发者大会在今日举行, ...

  3. 梦燕服饰:企业数字化走得快不是真本事,走得稳才是硬道理

    一摞摞的布料被铺平,切割成衣服各部位的样式:厂房内的缝纫机不断轰鸣,一件件成衣出现在流水线的尽头,叠放整齐--这是出现在无锡梦燕服饰的繁忙景象. 梦燕是一家以女装为主的连锁零售企业,同时涵盖一部分男装 ...

  4. 提升自己的实力才是硬道理

    个人 如同country一样, 拥有自己的硬实力才是硬道理,其他都是虚的. 提升自己的实力,为他人创造价值,才是硬道理. 知而不行,是为不知. 知道一些道理,却不去做,跟不知道有什么区别.

  5. 转载:十年驾车经验总结:活着,才是硬道理

    一个优秀的驾驶员,应该对自己负责.对家人负责.对他人负责,对生命心存敬畏! 现实生活中,违章又无处不在,为什么呢? 原因一.侥幸心理.平时不系安全带,偶尔酒后驾驶,平时闯闯红灯,晚上出来飚飚车,从来没 ...

  6. 坚果投影仪陷入双11刷单漩涡?良性发展才是硬道理!

    2018双11已经过去一周,高潮过后,潜在的问题开始逐渐浮出水面. 一方面,作为买家,是很多消费者买的实际货品与买之前看到的图片相差太大,买之前觉得是"貌美如花",到手试穿却是&q ...

  7. 成长与危险相伴是常态,加强安全审计才是硬道理

    废话不多说,一组数据带你们直观的感受加密货币在2021年是怎样的跨越式发展. 根据比特安数据检测中心多方面调查统计显示,比特币的价格从年初1月1日的28994.01美元到年尾12月31日涨到了4630 ...

  8. 电子行业求职,技术才是硬道理

    http://cv.qiaobutang.com/knowledge/articles/5194a6750cf2f49d1f1de39f 前言: 谈起电子产业(也称电子信息产业),相信每个生活在现代社 ...

  9. 37游戏叫板外国进口 用设计抢滩市场才是硬道理

    近年来,游戏产业获得了前所未有的迅猛发展, 3月6日,由上海三七玩网络科技有限公司主办的首届中国国际游戏大会CIGC在上海世博洲际酒店盛大开幕,本次盛会以"民族游戏,国际视野"为主 ...

最新文章

  1. PHP 截取字符串专题
  2. java连接数据库不使用框架_实体框架数据库连接不重新连接
  3. 为什么 char 数组比 String 更适合存储密码?
  4. 2020年中国服装行业数据中台研究报告
  5. Spring mvc中自定义拦截器
  6. C语言入门之指针用法教程
  7. 西电继续教育计算机试题答案,西安电子科技大学网络与继续教育学院微机原理试题...
  8. vscode html 格式化_详解VSCode 格式化不符合预期的问题
  9. hive并行执行job
  10. matlab 窄带通,MATLAB 窄带随机过程
  11. 用python写一个文字版单机斗地主
  12. 域名dns被劫持怎么办、dns被劫持怎么办、dns被劫持的解决方法
  13. JavaEE进阶知识学习-----Java8新特性知识学习-4-1-StreamAPI
  14. overflow and underflow
  15. Win7环境下MSCOMM32.OCX控件的使用
  16. vue 点击按钮实现随机颜色
  17. NLP之NLG入门理解
  18. 【软件测试】黑盒测试技术——等价类划分和边界值分析
  19. python画蜡烛图_Python量化交易-绘制蜡烛图 !这个图不像你的钱哦!
  20. 单片机定时报警C语言程序,求一个51单片机定时闹钟程序。要C语言。能够调时间...

热门文章

  1. CSS 内外边距 float positio属性
  2. PHP重定向SEO,PHP类网站301重定向实战站长SEO必修课
  3. 函数对象,嵌套,空间与作用域
  4. 洛谷P1873 砍树(二分)
  5. 文件系统专栏 | 之文件系统架构
  6. python predictabel_统计学习方法的python实现
  7. 【湍流】基于傅里叶变换实现大气湍流随机相位屏,增加了低频次谐波补偿附matlab代码
  8. hive求某天是当年第几周形如yyyyww
  9. 中国教育信息化行业发展价值分析与运营前景展望报告2022版
  10. 一念起,万水千山;一念灭,沧海桑田。