数据中台,我还能爱你吗(文末送书)
时间:2022-08-25 21:30:00
背景
从阿里巴巴2015年提出的大中台数据中台战略,到2019年大厂和中台服务商大兴数据中台,再到2021年大厂又开始拆中台。数据中台从甜甜变成牛太太只用了两年时间。为什么数据中台这么快就不香?
(注:数据中心平台的概念相对模糊,有些人说是商业概念,有些人说是技术概念,这里我们只从技术的角度讨论,即数据中心平台是技术概念)
为什么数据中台难?
从技术上讲,中台的结构是相当合理的。在前台和后台之间夹一个中间平台,屏蔽后台的数据存储,以满足前面无尽的变化需求。前台跟随界面,自然不稳定,总是有各种各样的数据请求,这是不可避免的。后台应该主要负责数据存储,把不同形式和规模的数据以合适的方式整理好,大数据倒腾起来动静太大,要求有一定的稳定性。如果前台要求后台直接做,后台管理的事情太多了。在一定程度上,灵活的要求和规则的数据存储是两个不同优化目标的需求。同一团队同时处理同一套硬件,容易发生精神分裂症。此外,后台由许多前台共享。如果直接向前台提供灵活的数据服务,也可能导致前台之间的耦合程度过高,维护成本立即急剧增加。同样,把这些数据处理放在前台也是不合适的。一方面,它们不安全。另一方面,前台团队也忙于使界面更好、更流畅,没有太多时间思考数据。有了中台就好多了。后台专注于管道存储,前台专注于管道界面,前后台之间的差距由中台抹平。分工明确,各司其职,效率自然提高。
既然结构合理,为什么不能继续呢?
原因是什么都有,但大多数都没有提到想法。因为大多数说这些话的人不写代码,而且大多数写代码的人不能轮到说话了。技术的根本原因是,行业还没有准备好让数据中台落地的技术!
中台为前台提供数据服务。什么是数据服务?收到请求后,返回一些合适的数据。如何获取返回数据?计算!就是把数据库在后台做的事搬到中台。
那你打算用什么技术来写这些计算代码呢?
Java?开玩笑?写一个稍微复杂的小组总结可能有几百行。你如何提高我的效率?还想快速应对前台的变化?我把这个代码写了好几天。下周见。
中台要做的这些任务,也是之前数据库要做的事情,绝大多数都是与结构化数据相关的计算。而 Java 这些高级语言基本上没什么好用的结构化数据计算类库,原先用 SQL 几句几十句话能搞定的事,现在用 Java 几百甚至几千行代码。长代码不仅难写,而且容易出错。而且,Java 程序员的成本也很高,效率没有提高,钱倒花太多,那又何苦呢?
你可能会说,Java支持Stream这些问题将来可以解决。Stream它看起来不错,但实际上并非如此。Stream中间计算结果和最终结果应提前定义,结构的定义和赋值非常麻烦,如果不定义,阅读和使用就不直观。而且Stream虽然支持lambda语法,但是界面规则比较复杂,但是阅读障碍明显增加,代码不短。Stream结构化对象如record\entiry\Map不方便的根本原因是Java缺乏来自底层的专业结构化数据对象和强有力的支持。
与Stream类似,Kotlin缺乏计算能力也是由于缺乏专业的结构化数据对象造成的。动态数据结构无法支持,难以真正简化Lambda语法,不能直接引用字段等。Kotlin也缺乏一些重要的基本函数,如关联计算,开发人员仍然需要硬编码来完成计算,开发过程仍然困难。
但是,似乎有些大厂的中台架构实施得很好,怎么解释呢?
也许大厂人才多,Java 代码积累丰富,更容易开始这些计算。此外,事实是,虽然这些大型互联网制造商很大,但业务的复杂性远远不能赶上传统行业你可能无法理解大工厂能做什么。更重要的是,大工厂又开始拆除中间平台了,不是吗?
不用 Java,那我们继续用 SQL 行不?
嗯,你必须在中间阶段放置一个数据库,从后台移动一堆数据,然后移动到中间阶段。移动了多少数据?似乎所有的数据都可以用来计算,所以你必须移动整个背景的数据。但这东西也可以被称为中间阶段吗?只是把背景移到一个位置,只是吃饱了。
在没有不依赖数据库、可集成嵌入、支持多种数据源、简单、方便、丰富、强大的结构化数据计算能力的情况下,数据中心平台是一个幻想,结构好看,但不能着陆。强迫中间平台,除非你的业务足够简单,否则它只会增加开发成本和效率,灵活性没有增加,但有很多麻烦。
数据中心平台受到计算能力的影响。在具有上述特征的计算引擎之后,数据中心平台的合理架构才能真正发挥作用,数据中心平台才能真正着陆、开花和结果。
开源SPL:中台数据计算引擎
开源计算引擎SPL具有数据平台所需的所有特性,不仅提供完整的计算能力,而且开放的计算系统可以直接基于多个数据源进行计算。同时,丰富的计算库和敏捷语法可以很容易地完成复杂的结构化数据计算,SPL优秀的集成保证了数据中台的各个环节都能轻松分布,从而处理数据,帮助数据中台发挥应有的作用。
逻辑上SPL数据处理介于应用程序和数据源之间,提供上计算服务,屏蔽下多样性数据源的差异,完美地适应数据中心平台的结构。
SPL提供了标准JDBC/ODBC/RESTful接口可以像调用存储过程一样要求SPL计算结果。
JDBC调用SPL 代码示例:
Class.forName("com.esproc.jdbc.InternalDriver"); Connection conn =DriverManager.getConnection("jdbc:esproc:local://"); CallableStatement st = conn.prepareCall("{call splscript(?, ?, ?)}"); st.setObject(1, 3000); st.setObject(2, 5000); ResultSet result=st.execute();
热切换能力
SPL采用解释执行机制,自然支持热切换。这对稳定性差、经常需要新修改的中台数据处理非常友好。
SPL服务脚本与Java独立程序,外置Java此外,修改和维护可以独立进行,脚本修改和上传可以实时生效,以确保中间平台能够不断提供服务。
使用SPL在中台实现数据处理逻辑,可有效降低数据服务与框架之间的耦合。整个中台架构也比较合理。
敏捷语法
作为专业的数据计算引擎,SPL通过结构化数据处理设计了特殊的敏捷计算语法SPL语法能快速实现数据处理任务,及时响应前台多变的数据要求。
即使在敏捷语法和过程计算的支持下使用,SQL复杂的计算难以完成(更不用说了Java了),用SPL它也很容易实现。例如,根据股票记录查询股票的最长连续上涨天数,SQL(oracle)写法如下:
select max(continuousDays)-1 from (select count(*) continuousDays from (select sum(changeSign) over(order by tradeDate) unRiseDays from (select tradeDate, case when price>lag(price) over(order by tradeDate) then 0 else 1 end changeSign from AAPL) ) group by unRiseDays)
试着读这句话SQL,是不是很绕?这是理由SQL由特征(缺乏离散性、集合不完全等)决定。).同样的想法,SPL写起来简单多了,不用绕道:
A | |
---|---|
1 | =db.query(“select * from AAPL order by tradeDate”) |
2 | =A1.group@i(price |
从数据库中取出数据(数据源可以是任何东西)SPL计算引擎的开放性)SPL符合数据中台的目标。
SPL还提供了简单易用的服务IDE环境,在IDE编码调试不仅非常方便,而且可以实时查看过程计算的每一步计算结果。网格格式编码代码自然整洁,通过网格名称引用中间计算结果,无需定义变量,非常方便。
强计算
数据中台的计算引擎需要独立的计算能力。SPL作为独立计算引擎,计算能力不依赖数据库,提供了非常丰富的结构化计算库,具有完整的计算能力。集团汇总、循环、过滤、集合计算、有序计算等。
SPL它还提供了许多高性能算法,以确保计算效率、内存和外存计算、索引机制、复用和其他在行业中首次使用的算法,并支持平行计算,以进一步提高计算性能。
开放性
SPL它还具有非常开放的计算能力,可以连接各种数据源,RDB、NoSQL、CSV、Excel、JSON/XML、Hadoop、RESTful、Webservice无需数据库的帮助,数据实时性和计算实时性都可以直接对接和混合计算。
众所周知,不同的数据源各有优势,RB计算能力较强,但IO吞吐能力弱;NoSQL的IO效率高,但计算能力很弱;而文本等文件数据完全没有计算能力,但使用非常灵活。SPL不仅可以基于这些数据源混合计算,在实施计算时还可以充分保留原有数据源的优势。
除了原生计算语法,SPL也提供SQL支持(相当SQL92标准),可以使用SQL查询文本、Excel、NoSQL等非RDB数据源,这样就极大方便了熟悉SQL的应用开发人员。
总结一下,数据中台落地的关键在于计算引擎,而计算引擎需要具备独立且完备的计算能力、应对多样性数据源的开放性、开发的高效性以应对不停变化的前台需求,还能支持热切换以确保中台持续提供服务。从这些方面来看,SPL的确是数据中台计算引擎的不二之选。
SPL资料
- SPL官网
- SPL下载
- SPL源代码
欢迎对SPL有兴趣的加小助手(VX号:SPL-helper),进SPL技术交流群
粉丝福利1
送两本《Java核心技术》,一本卷I、一本卷II
如何免费获得该书呢?:
- 本文优质评论一条,且该评论点赞数是最高的!可优先挑
- 本文优质评论一条,且该评论点赞数是第二高的!
- 点赞数并列第一的,以评论的时间谁早,谁优先挑!
- 统计截止时间:2022/06/01 21:59:59
粉丝福利2
送冰河大佬的新作:《深入理解分布式事务》一本
如何免费获得该书呢?:
- 本文优质评论一条
- 关注下面的小虚竹公众号,输入“儿童节快乐”
- 博主会随机抽一名幸运粉丝
- 注:没有优质评论的,不算,会重抽!
- 统计截止时间:2022/06/01 21:59:59