“实时数仓”若干问?

2022-11-24 11:11:51 浏览数 (2)

近期接受ITPUB的专访,谈到关于实时数仓的若干问题。下面挑选其精华分享如下:

实时数仓、数据库、湖仓一体傻傻分不清?

1

确实,如果从一个初学者来说这些技术可能大家听起来会很容易觉得混淆,他们到底是什么样的一些关系?我为大家去简单的梳理一下。

1.大数据平台

我们先谈最基本的一个叫大数据平台,大数据平台是什么?大数据平台是一种利用大数据技术去解决数据问题的一种技术平台,也就是说它是一种技术的一些基本能力的集合,它并不一定是解决某一种具体的业务问题。比如说数据仓库就是我们解决数据的使用的某一个具体业务问题的一种产品,但是大数据平台它是个通用化的产品,那么这种通用化的产品可以解决数据的很多方面的诉求。我们可以通过大数据平台这个平台去自己灵活的组装成满足我们一个业务场景的一个具体的一个解决方案,它是这样的概念。也就是说大数据平台是一个通用化的技术平台。那么比较典型的比如像数据仓库领域,大家用得比较多的像过去我们用hadoop上面基于hive,现在我们可以看到很多的像input、procedure类似于clob这样的一些大数据平台,都可以解决我们一定数据的一些分析计算的问题。但是坦白讲大数据本身这个平台还是一个技术平台的定位,那么这是第一个。

2.数据中台

第二个我们再谈谈数据中台,可以说在过去的三到四年,数据中台是非常的火。国内也有一些初创的厂商,大家在做数据中台。数据中台是什么?我们要强调一点,数据中台其实并不是一个技术平台,它是一种业务平台,也就是说数据中台是把我们企业内部的数据服务通过业务的方式重新组织之后,为我们的前端业务系统提供支撑的一类平台。所以说这里边我们的数据的中台,可能更多的是面对于我们的业务侧解决我们的业务问题,那么它的底层会依赖于一些基础的技术。比如说我们可以基于一个大数据平台之上去构建出自己的数据中台或者是基于其他的一些技术组合去做我们的底层技术,去支撑我们的数据中台。但是从中台本身这个概念来讲,它并不是解决技术问题的,它是为了解决我们企业的数据业务问题。

3.数据湖

第三个是数据湖,数据湖的概念相对来说比数据仓库的概念要稍微晚一点。它的出现是为了解决什么样的问题呢?就是过去我们对于数据是一种非常标准化的,非常规格化的,做好了数据建模的一种组织形式。那么我们现在也看到,有更多的一些数据他们是没有严格按照我们的数据建模的,或者说他们是非常零散的,散落在各处的,非常的多模,存在不同的这种数据存储形式的这样一些数据。这些数据在过去是没有办法很好的把它组织管理起来的,后来因为大家有了这样的一些诉求就出现了数据湖技术。通过这个名字大家也可以看到数据湖是数据湖,它的含义就是像一个湖一样,把我们企业内部的散落在各处的数据能够集中在一起,然后我提供一定的数据的计算加工的这样一些能力,这是我们讲的数据湖。

那么数据湖和我们的数据仓库在之前是有一种对应的关系的。数据仓库更强调的是这种建模的,比较规整的,比较严格按照一个规范要求去预设好的这样一些条件的数据。那么这些数据往往存在我们数据仓库里面,它的计算查询的效率会更高一点,数据湖更涉及到没有做过这种很好的一些标准化的一些数据。所以这两个是有一种互补的关系。当然,从企业来讲,我现在存在着两个数据不同的载体,我的很标准的,预建模好的,很标准化的计算数据在我们的数据仓库里面。但是呢,还有一些数据湖的数据是非常散乱的。那么有没有一个数据的统一视角呢?这个时候就出现了我们的湖仓一体的这个技术。

4.湖仓一体

湖仓一体的技术就是融合的数据湖和数据仓库这两种技术,提供了一种大一统的一个解决方案。从更高的维度去看待我们企业内部的数据。所以说湖仓一体是提供了一种更全局的一个视角去看待我们的数据。

5.实时数仓

那么今天我们谈到的实时数据仓库实际上就是从另外一个角度去谈,对我们数据仓库中的实时性部分的需求做了特殊加强的一种技术平台,它提供的是我们对于实时数据仓库领域里面,对于那种需要我们的数据的采集计算加工处理,实现要求很高的一些领域的一种特有的一种技术,所以它也是一种技术名词。

尽管实时数仓的最终实现效果都是为了数据实时性要求,但实际表现形式却“五花八门”,很多企业用云数仓、湖仓一体架构解决实时数仓需求。您如何看待这种变化?到底什么才是实时数仓??

2

众所周知,数据仓库是一种非常久远的技术,从上世纪80年代到现在发展的已经有三、四十年的历史了。过去数据仓库主要是解决我们的一些离线问题,现在我们也看到越来越多的企业把数据仓库用在一些实时领域,就产生了所谓的实时数仓这样的一个概念。那为什么会有这样的一些需求呢?更多的是来自于我们企业对于数据实时性的要求,已经慢慢的变得更加重要,甚至在某些情况下会大于我们数据分析的价值。这个时候就凸显了我们实时数仓的一个意义。这里面我们看到现在有很多的技术去支撑我们的数据仓库,包括大家现在耳熟能详的像数据湖、湖仓一体以及云原生数仓等等很多的概念,他们跟实时数仓有什么样的关系呢?今天我们在这个场合会跟大家共同去探讨数仓技术以及实时数仓能给我们企业带来什么样的不同,什么样的价值。

实时数据仓库经历了哪几个重要发展阶段?从底层架构来看,实时数仓和离线数仓的最根本区别是什么?到底是哪些关键技术让实时数仓“梦想照进现实”?

3

先来看第一个问题就是数据仓库的发展。我之前也讲到数据仓库从上世纪80年代到现在三四十年的历史发展之中,数据仓库大概经历了几个阶段:

从早期的离线数仓,它解决了我们企业数据的分析基本问题,从原有的交易性数据库很难满足我们分析的诉求;离线的数仓提供了一种一定的数据规模下的数据分析的能力;现在随着我们对于数据实时要求性比较高,后面出现了一些实时数仓分支的技术。比如大家现在比较熟知的像Lambda架构、Kappa架构,这些架构的出现更多的是为了满足我们数据在实时处理、实时查询方面的一些诉求,这也是我们实时数仓的一个雏形。到了现在我们可以看到数据仓库在更多的领域得到了一些使用。刚才谈到的这些Lambda架构包括Kappa架构,也在很好的程度上去解决了实时的问题。当然了,我们现在有了更好的一些技术来去满足我们的实时数仓。

我们从本质上来看实时数仓和我们的离线数仓有什么样的区别呢?从这个名字上可以很容易的区分:一个是离线;一个是实时,这是它的最本质的差别。离线数仓是指我们的整个数据的获取、加工、处理、计算的整个流程是在离线的形式上,也就是说不是一个online在线的方式。实时数仓就反知它是提供了一种在线的实时的一个能力,这是两者最大的区别。正是有这个区别,使得我们实时数仓能够解决我们很多的业务场景中,过去用离线数仓无法满足的一些对数据实时性要求很高的场景,都可以用实时数仓去解决。

现在有什么样的技术去解决这样的问题呢?包括我们之前谈到的关于Lambda、Kappa这样的架构。其实它的背后都是我们的流式处理架构的一些发展,包括现在我们也有了一些像云数仓通过云端的基础设施对我们提供了很好的平台。包括也有一些像AI与数仓的结合,也包括一些其他的领域,其实这些技术的诞生都为我们的实时数仓做好了一些铺垫。

当然我们讲到传统数仓的技术对现有的实时数仓仍然具有很大的支撑的意义,包括比较典型的像MPP的架构,在我们实时数仓当中仍然是主流的实现的技术。可以说,正是这样的一些新兴技术和我们离线数仓既有的一些技术基础,共同打造为我们的实时数仓奠定了很好的技术基础,也为整个实时数仓未来的发展会起到很好的助力。

针对当前的传统企业,特别是金融企业,实时数据仓库的建设情况如何?对实时数据分析的需求,到底如何?

4

可以说实时数仓是一个跨领域、跨行业的一种基础技术,在不同的领域都能得到很好的应用发展。针对我们传统企业,以金融业为代表,他们其实对于数据有着更高的要求。我之前也是一名金融行业的从业者,金融行业素以数据应用高地著称,他们对于数据的严谨性、实时性的要求会非常的严格和苛刻。其实实时数仓的技术,对于金融行业会带来很非凡的意义。我们知道金融对我们数据要求会比较严格,在过去很多的金融场景受限于我们底层的技术,是没有办法很好的去实现的。现在有了实时数仓,其实对于金融业来说会有一些新的业务的突破。比如像我们比较常见的像实时的风控、反欺诈包括实时营销、在线分析等等很多的领域,正是因为有了实时数仓的出现能为金融行业去做了很好的基础,能够满足于一些金融行业更多的新的业务形态的诉求。除了金融行业之外,其他的一些企业包括像物流、制造业、游戏、电商等等等等很多的行业领域,他们对于数据的实时性要求都有其各自的特点。那么实时数仓的出现也为这些行业打开了一个新的一种业务的发展的可能性。

所以我说实时数仓在各个行业领域都会有着比较好的发展,当然受限于不同的行业发展阶段,实时数仓在不同行业的发展也有所差异。目前我们看到像以互联网企业他们在实时数仓领域实践会更加的…

从实时数仓落地的角度看,哪些行业发展速度最快?推动实时速仓快速发展的最根本原因是什么?在互联网行业,实时数仓技术应用更加广泛些,其背后的原因是什么?

5

  • 首先,互联网企业其业务发展速度是比较快的,有大量的新兴业务存在,这就促生对数据计算的更多诉求,实时数仓在其中会发挥较大作用。
  • 第二,就是技术储备,互联网行业在过去一二十年的发展,积累了大量技术,特别是一些互联网大厂,技术积累是比较深厚的。针对数据仓库这块,有比较深入的沉淀,包括前面谈到的Lambda、Kappa这样的新兴流式处理架构,都在一些大厂的得到非常多实践;同样包括新兴实时数仓技术,也有实践。所以说相对传统企业来说,互联网技术积累会更加丰富一点。
  • 第三,就是关于业务模型。互联网行业跟很多传统企业不同,其业务模型的往往是ToC的,相对来说业务模型的会简单一点,这对于实时数仓的技术落地会更加容易。对建模的要求也不高,通常一个简单宽表可能就能支持大部分业务了。
  • 第四,就是没有历史的包袱。一个企业是否是使用一种新技术,也取决于技术积累和技术栈演进发展。传统企业,多少会存在一定的历史包袱,存在存量业务很难去完全切换到新的技术栈。对于互联网来说,这方面包袱相对比较小,所以比较容易去采用一种新的技术架构。
  • 第五,就是技术的迭代发展,我们知道技术从来不是凭空而降,都是不断的演进迭代的。互联网行业,经过这么多年发展,对于数仓的使用经历从离线到流式到实时这一过程,这一演进过程也促进了实时数仓在互联网企业的发展。

不同行业、应用场景,在实时数仓方面的落地方案有哪些差异化特点?在底层的技术架构上又有哪些相同点?

6

个人观点,实时数仓是一种通用的技术,针对于不同行业落地,存在一定差异,但这个差异不大,更多是来自于行业自身的一些业务特点。举个例子,比如说传统数据库都有一个叫ACID的能力,也就是对数据一致性要求,过去在数仓领域不太强调这一概念。那么现在将实时数仓应用到更多线业务领域,这就对数据有了一致性要求,ACID能力就变得非常关键, 如果一个行业业务形态很强调这点的话,自然而然就会用到这样技术。

您认为哪些业务场景更适合用实时数仓平台或者解决方案?自研和采购三方厂商服务都存在怎样的优缺点?

7

实时数仓,跟所有新技术一样,都有其长处和短板,而不是一种万能的方案,在具体实施上面要分场景。之前大量使用的传统离线数仓与现有的实时数仓,两者不是替代关系,而是共存。在很多业务场景下,其实还需要两者来配合使用。一方面,实时数仓给我们提供了非常好的实时性,但相对而言在数据处理吞吐能力上,较离线数仓仍存在明显差距。如果说数据规模中等,对实施性要求较高且并发控制在一定范围内的情况下,实时数仓技术就比较合适 ;反之的比如说是一个大规模、甚至超大规模,更加强调数据吞吐能能或者是较高并发性要求下,传统离线数仓会更加合适。

另一个问题就是自研或引入三方服务上,这里涉及到企业自有的技术积累问题。数据仓库技术,特别是在之前发展,技术路线是相对比较发散的。从传统树仓到流式处理,有很多企业会自己去构建数据仓库系统,这显然对企业的数据技术人员有较高要求,实时数仓对企业的人员则会更高。这个时候呢,就需要看企业是否已经有较好的技术积累,能够驾驭好这样的数仓能力。如果说有一定技术积累,可以去用自研方式;反之更加建议使用三方厂商提供比较成熟产品及服务。特别是现在,很多实时数仓产品都提供类SQL的交互方式,可使用户使用门槛大幅降低,这对于企业数据人员会带来很大便利。

您认为离线数仓会被取代吗?云数仓会成为实时数仓的中级发展方向?

8

虽然实时数仓是主流趋势,但离线数仓短时间内也不会被完全取代。这两种技术,对我们来说都是需要的,也都很重要;而且在客户的很多场景里面也同时需要离线数仓和实时数仓,这两种技术是一个互为补充的关系。实时数仓为企业在一些实时性要求高的新业务探索方面

提供一些可能性,但在企业里仍存在大量的如T 1的离线报表,这种计算任务还是需要离线数仓的。

此外,之前谈到的湖仓一体与实时数仓也是不矛盾的。前者是提供了基于传统的数据仓库和数据湖技术的一种融合技术,提供一种更好的数据交互方式。当然,它呈现的形式可以是这种实时数据服务形式,也可以是一种离线的。这两个技术不是一个对等的概念。

还有就是关于云数仓。我相信大家都看到了这一点,云代表着未来这种方向。我们看到有越来越多的基础设施产品都搬到了云端,那么在云数仓上对数仓发展来也有着非常重要意义。数据仓库,一个特点就是资源消耗比较大,包括数据的存储资源和计算资源,而云恰恰为我们很好的解决这样问题。其本质是解决一个资源供给问题,所以说数据仓库和云的结合,会非常好的解决在资源需求上的一些痛点。同时云厂商也都在云这样好的基础设施之上为数据仓库领域做了定制增强,可以使数仓更好的利用了云端资源,这为客户会带来附加价值。比如说,资源的弹性调度能力、数据快速获取能力、上下游数据生态打通能力。这些都是云端为数仓所带来的一些加长成。

您认为实时数据仓库的最关键能力是什么?如何全面确保数据分析的实时性、正确性、稳定性?

9

实时数仓,还是一个快速发展中的技术,我们对它也抱有非常多期许,希望能给企业的数据应用带来很多的不同,因此我们看到对于实时数仓的关键技术要求,还在不断演进变化之中。这其中包括很多能力。

  • 第一,如实时数据获取感知能力,就是通过这个能力可快速捕捉到数据和数据变化;数据的实时计算加工等等。
  • 第二,传统数据仓库相对来说是比较重的,对于企业来说投入较大,那么实时数仓其实为我们提供了一种可简化的方式,即提供相对较低的使用成本,以一种更小、更节约化的架构去支撑现有企业的数据架构。
  • 第三,就是所谓的one data概念。过去数仓的一大特点,就是数据是要经过多级分层的,其目的是为了提升数据利用效率,而今天实时数仓的出现其实是为了我们开启一种新的可能性,就是企业数据可保存成一份,充分利用前端丰富算力进行计算。这一方式会大幅节约存储成本,在维护数据质量方面也很好。
  • 第四,就是便捷性,未来我们是希望实时数仓能够提供两个一站式能力。一种是面对开发人员的服务能力,包括数据建模、数据开发、模型预测等。一种是针对整个数据使用流程从数据的采集、加工、计算、展示,全流程能够通过实时数仓统一提供。

实时数仓与AI、云技术如何结合?

10

AI技术与数仓领域,能有多种结合点。第一就是数据仓库中的数据治理问题。我们知道数据仓库往往承担海量数据的汇聚存储职能,这里面就存在一个数据治理问题。可通过AI技术更好的描述企业数据内部使用,从整个数据的生命周期、从全局视角管理起来。第二就是AI技术和数据仓库的资源层面的结合。数据仓库(包括实时数仓)中关于数据存储和计算这两个大家最头疼的问题,因为这两个部分都是要耗费大量资源,AI技术其实可以很好的和我们这些数据资源的密集点去做一些结合,比如怎样去节省企业内部的数据存储成本,包括数据如何能更好的分布,使用包括冷热数据分离、数据分层等。

谈到与云或云原生技术的结合呢,本质来说云其实是改变了资源供给的方式,用一种更加灵活的方式,满足我们对底层资源的使用需求。数据仓库作为一种重度的资源的使用者,它和云或者云原生技术的结合,是可以找到一个很好的切合点。云,天然就会带来一定的优势,比如说超大规模、弹性伸缩等。还有一点就是云本身生态能力,我们知道已经有越来越多的企业选择把业务系统构建在云端,那么云端自然带有一个完整的生态,包括与数据上下游的联动,在数据产生、消费者之间更好的集成。利用云端生态整合能力,更好的去为企业提供数据的一站式使用体感,带来更多附加价值。

0 人点赞