本文分享自华为云社区《【华为云Stack】【大架光顾】第7期:湖仓一体天花板,大数据一站式SQL剖析技术实际》,作者:华为云HetuEngine首席架构师 武文博。

(一)背景

早在2020年5月华为云寰球分析师大会中,华为率先提出“湖仓一体”概念,并落地在华为云FusionInsight智能数据湖解决方案中。其中,HetuEngine河图引擎承当一站式SQL剖析引擎角色,使能跨源、跨域的一体化剖析落地。基于云原生架构,让“逻辑数据湖”大规模数据交融剖析提效50倍,本文将具体论述HetuEngine在实现一站式SQL剖析所面临的挑战、技术架构和案例。

(二)需要和挑战

咱们调研了上千家客户,对于一站式SQL剖析场景,客户提出了一些需要和冀望:

  1. 跨域逻辑协同,通过计算去中心化,反对高度灵便、简单拓扑的算力网络,并充沛复用现网的硬件设施和数据资源,节俭投资;
  2. 在跨源方面,买通数据源,将零散的数据,以高性价比的形式实现交融剖析,缩小ETL,节省时间老本;
  3. 云原生已是2021年的热词之一,大数据也不例外,跨源、跨域逻辑协同的数据虚拟化引擎也须要云原生的加持,以实现基于云的弹性伸缩、动静多租、对立入口;

正是因为政企业务爆发式增长,使其对大数据平台的性能要求越来越高,挑战也随之而来。

  1. 跨域要高效

在跨域协同计算时,临时性工作多,需灵便麻利的SQL化跨域协同能力,以较小的数据老本和较短的耗时协同剖析散落在不同机房、不同数据中心、不同数据源的数据,要求有如下特点:

• 一条SQL语句跨地区执行

业界现有的一些跨域协同计划并不是以SQL语句来实现的,而是在SQL引擎之上建设的一层非SQL接口的任务调度框架。这类实现计划技术难度较低,然而对于业务用户来说应用简单,灵活性差,不可避免地存在屡次数据落盘和拷贝,实时交互式查问场景无奈满足时效性要求。

通过一条SQL语句实现跨地区分布式执行,从技术角度看,带给了业务用户优良的用户体验和极低的学习门槛,接口简略扩大灵便。相应地,跨域协同SQL引擎自身就必须要克服一系列由此产生的艰难与挑战。

• 提供近似本地应用体验

要实现跨域SQL拜访,须要思考的次要限度条件如下:

1) 网络条件:跨域要面临的网络条件,往往要比本地网络条件劣化很多倍,客户常常碰到如高时延、低带宽、网络抖动、网络代理瓶颈、网段隔离等挑战;

2) SQL语法:如何在SQL语句层面很不便的表白出想要拜访的数据中心上面的数据源的表?如何确保跨域SQL语句写法可能与本地SQL语句无缝连接?

3) 数据与系统安全:如何确保本地区以外的SQL用户只能感知到本地管理员对外开放的数据列表?如何做到本地区的计算资源、网络资源不被内部SQL申请所耗尽?

第1个问题间接关系到跨域协同的性能体验,第2个问题间接关系到跨域联邦SQL是否易落地、容易被业务用户所承受,第3个问题决定了跨源联邦SQL引擎是否胜利上线。

如果跨域联邦SQL引擎无奈做到高吞吐(单服务IP端口达到1GB/s的传输能力)、高性能(1000公里间隔内100ms响应,亿行数据秒级拉取),那么很难认为这个跨域联邦SQL引擎达到实在商用程度。

• 动静感知不同地区的元数据

在晚期的业界跨域计划中常常提到集中管理的全局元数据。这类计划的实质还是依附中心化的主SQL引擎+集中存储的核心元数据来实现跨地的数据拜访,通过繁琐、简单的全局元数据采集、汇总来回避了革新传统SQL引擎内核所面临微小技术挑战。相应地,这类计划上线后,须要继续投入治理运维人力进行跨地区的元数据汇总,每次上线或者下线一个数据中心都会牵一发而动全身,成为一个盛大、旷日持久的革新工程。

为了彻底解决上述计划的弊病,新一代的跨域联邦SQL引擎要具备跨域动静感知元数据的能力。客户通过简略部署配置即可间接上线,无需染指相似元数据管理等与业务强耦合的简单筹备工作中。反之,通过批改配置即可让一个Region/DC脱离联邦SQL查问网络。

  1. 跨源要易用

跨源剖析中首要问题是如何实现多源异构SQL化剖析,目前,市场上真正满足客户需要的引擎并不多,次要是因为:

• 一条SQL拜访多个异构数据源

要实现这个指标,升高客户应用大数据的门槛,简而言之要做4个“一”:一个SQL语句,一个元数据模型,一个拜访入口,一个鉴权体系。既要实现对多源异构数据的对立SQL查问和剖析,又要放弃与传统数据库的SQL语法体验统一。

• 跨源保障高性能

在跨源拜访方面,要解决两个关键问题:

  1. 如何尽可能地升高被拜访的数据源的进口数据量和数据传输损耗;
  2. 如何尽可能地升高跨源SQL引擎的计算工作量和导入数据量。

• 数据源信息可自定义,可实时刷新,要害敏感信息主动加密

这一点的必要性对于业务管理员来说显而易见,然而往往被开源社区或尚未达到商用程度的跨源引擎所疏忽。要做好这一点,须要从部署、元数据管理、服务化等多个角度进行建设。从对外接口类型看,跨域、跨源剖析引擎要具备两个类型的接口:

• 业务接口

面向一般SQL用户,提供对立的服务化拜访入口,屏蔽前方的多个计算实例细节信息,提供与传统OLAP引擎统一的业务交互体验;

• 治理接口

面向平台、业务管理员,提供常见的运维治理配置服务,波及——用户认证、资源调配、数据源信息集中管理、业务拜访权限定义等能力。这些业务配置信息须要欠缺的后盾零碎提供加解密治理和长久化存储。

上述两个接口面向不同的角色凋谢,不同的角色的用户感知不到其它角色的行为。从而实现信息隔离和高水平的服务化。

总之,现实的成果是——不管用户正在拜访的是跨域的数据,还是跨源的数据,咱们都要让业务用户的应用体验与传统的OLAP引擎体验保持一致。这也正是数据虚拟化力求达到的成果。

  1. 引擎云原生化

近年来,云原生技术方兴未艾,一大批云原生的数仓、OLAP引擎、湖仓一体引擎正在迅猛发展,有影响力的剖析引擎都已搬迁上云。其中海内提供云原生大数据服务,比拟有代表性的有Databricks、Snowflake等,其市值已达千亿美元。

咱们认为,一款云原生的剖析引擎至多要具备以下能力:

• 租户资源隔离化

云原生状态下,要求实现租户之间资源齐全隔离,通过资源隔离打消运行危险,晋升数据安全。

• 资源策略灵活化

灵便的资源策略有助于升高经营老本,常见的资源策略包含——动静资源分配实时失效,反对动静、动态部署形式,单个租户实例要反对无损业务的弹性伸缩。

• 故障疾速主动复原,在线滚动重启

云原生动静部署在带来灵活性的同时,也造成了单个实例的理论运行物理地位的随机性。万一产生故障时,须要整个零碎具备自动检测、主动重新部署实现疾速复原。同时,在线滚动重启也是当下云原生引擎的标配。

(三)数据虚拟化引擎HetuEngine

随着大数据平台在各行业的疾速倒退,大数据集群出现零散式建设、湖仓割裂、来回搬迁等新挑战,客户对于跨域高效、跨源易用、云原生化提出了更高的要求。

传统计划广泛波及了下图中的1、2点。对于单企业、小规模业务场景而言,在业务倒退初期根本可满足需要,然而对技术开发、保护人员的技能要求较高,一旦业务发生变化就须要从新定制开发,手工变更部署计划,易造成信息泄露。

为了打造一款成熟、可商用的虚拟化引擎,咱们须要站在客户理论应用场景角度登程,系统性、端到端地设计一款平安、易用、易运维、可扩大的数据虚拟化引擎。

实践经验表明,上图中3、4、5、6点是决定一款数据虚拟化引擎是否满足业务理论需要、是否高效上线业务的要害。

**HetuEngine架构
HetuEngine是华为云FusionInsight团队自研的一款高性能分布式SQL查问&数据虚拟化引擎,可与大数据生态无缝交融,实现海量数据秒级查问;反对多源异构协同,使能数据湖内/湖间/湖仓一站式SQL交融剖析。**


图 HetuEngine架构图

咱们齐全基于云原生2.0的技术理念施行了HetuEngine顶层架构设计,这一点决定了HetuEngine从一开始就是为云服务化、“湖仓一体”而生。对立的云服务层在带来极简操作和极致运维体验的同时,也为引擎层的多实例、弹性伸缩、跨域跨源对立拜访入口、数据虚拟化等能力奠定了软件架构根底。

面向跨域、跨源、云原生三大维度,HetuEngine别离具备如下架构劣势:

  1. 跨域联邦剖析:SQL化、一致性体验、动静感知

HetuEngine对外提供规范、对立的SQL拜访入口,同时通过后盾治理接口的实现在线、实时、无损业务的运维变更操作,并保障所有变更操作可能疾速同步到每一个计算实例,从而保障了SQL入口的一致性体验。

与此同时,跨域联邦查问场景中,每个地区的HetuEngine可能做到主动感知其它地区对外开放的元数据信息,按需动静实时感知和获取,从而升高了跨域元数据同步的平安危险和负载压力。

HetuEngine内置提供了高性能平安加密传输通道,使得跨地区间网络通信问题迎刃而解。该跨域联邦SQL剖析计划平安高效,实用于公网、专网等多种网络类型混合组网,反对穿透NAT。反对亿级数据秒级跨域,反对去中心化跨域组网,反对受控对外开放数据,跨域协同效率晋升50倍。

  1. 跨源协同剖析:低门槛、高性能、安全可靠

HetuEngine提供可视化的数据源信息管理页面,实现一站式数据源信息配置和实时在线失效,防止了每次做数据源信息变更须要重启计算引擎实例的麻烦。针对不同数据源类型,HetuEngine会针对性提供不同的性能优化配置参数,并反对设置与具体业务环境需要强相干的个性化配置参数,通过前台页面一站式实现配置,免去了95%的运维累赘。

在性能方面,HetuEngine增强了对DWS、ES等数据源的计算下推能力,实现了绝对开源软件提速5倍的高性能跨源协同剖析成果。同时,HetuEngine实现了对Hive SQL语法兼容性加强,在反对100% Presto SQL语法的同时,还可撑持90%的HQL业务平滑迁徙。

  1. 云原生加持:弹性伸缩、动静多租、对立入口

得益于云原生技术架构,HetuEngine容许管理员通过后盾接口进行可视化的对立运维操作,从而实现一键式动静部署、多计算实例在线滚动重启、人工/全自动触发的计算实例弹性伸缩(无损业务),实现多租户的资源配置变更及动静失效。

HetuEngine的对立服务化入口能够很容易帮忙用户实现SQL客户端的接入和业务申请的提交,极大升高了业务用户的学习老本和开发成本。同时也帮忙业务利用开发人员实现将业务层与后盾服务层解耦的目标,为前期的继续扩容与降级变更操作带来的隐形福利。

HetuEngine的多计算实例架构人造具备横向扩大的劣势,能够满足“湖仓一体”对海量数据、多实例、高并发的久远需要。

(四)最佳实际

随着金融业的疾速倒退和大数据技术生态的不断完善,近年来工行与华为继续联结翻新,通过引入FusionInsight智能数据湖,工行大数据技术从仅对大数据批量加工,已延展到大数据实时计算、联机查问、数据可视化、平安管控等金融利用场景,一直晋升工行服务实体经济的能力,倾力打造服务于经济高质量倒退的数字工行。 目前工行已建成同业最大的单集群,已部署上线的FusionInsight MRS云原生数据湖和DWS云数据仓库集群规模达2000+节点,撑持了300+总行利用、分行及团体子公司的平台化大数据利用开发,日均承载批量计算作业数达20万+,强力撑持了行内、行外的金融数据服务。

中国工商银行大数据平台撑持了全行约13000名数据分析师的交互式查问业务场景,原先通过离线计算引擎来撑持,分析师广泛反映响应工夫过长。从2021年工行开始引入交互式查问引擎(HetuEngine),使得分析师灵便查问的响应工夫从均匀1000秒升高至20秒,提效50倍,目前已将HetuEngine面向全行推广。

(五)写在最初

在业界现有的跨域、跨源剖析引擎中,可能同时做到以下几点的,以后已知的仅有HetuEngine,这得益于:

• 三位一体:跨域、跨源、交互式查问一体化;

• 云原生:动静多租户、弹性伸缩、对立入口;

• 规模商用:提供端到端的平安解决方案;

目前,HetuEngine曾经在政务、金融、运营商、大企业行业规模交付,对原有交互式查问、跨源跨域剖析业务晋升倍数,并驱动客户业务继续翻新。

将来,HetuEngine还将在自学习优化、SQL平安、物化视图、索引、存储等维度,持续构筑外围竞争力,减速客户“湖仓一体”架构落地和数字化转型。

华为云FusionInsight MRS云原生数据湖提供一个架构实现三种数据湖,即离线数据湖,一站式提供AI、BI多引擎,规模最大反对6万+;实时数据湖,分钟级供数,全自助剖析,时效从T+1到T+0;逻辑数据湖,HetuEngine实现跨湖、跨仓协同提效50倍。目前FusionInsight MRS曾经用于60多个国家和地区,联结800+ISV服务于3000+政务、金融、运营商、泛企业客户,助力客户构建一企一湖,一城一湖。在2021年12月27日公布的IDC中国2021H1大数据市场报告中,华为云FusionInsight获得市场第一,更多信息请关注华为云社区。