00:00
同学们好,欢迎来到上硅谷。今天呢,我们来学习一门新的技术,叫塔。那么首先呢,我们来了解一下水,它是什么?其他的呢,是一个简单易用的数据集成框架,嗯,说到这儿呢,也需要对数据集成有一个感性上的认识。那么我们说一下什么是数据集成。是想用这样的场景哈,你这是一个公司完了之后,刚开始的时候呢,主营业务是电商,于是有一个部门呢,主管电商的开发。后来呢,这个短视频又火了,那么又搞了一个新的部门,然后他呢去主管。我们说这个短视频的开发,然后后面呢,又因为增加了一些业务横向拓宽,那么技术部门呢,可能越来越多。这个时候呢?因为不同的部门它有不同的业务需求,那么就有可能有不同的业务选型,呃,技术选型,假如说这个部门A他选了一个关系数据库是MYSQL,完了,部门B呢,他选了一个h base这种KV类型的数据库,那么部门C呢,他选了一个文档型数据库漫DB。
01:00
那么你可以看到,就是在我们整个公司里面呢,实际上有三个这个技术部门已经出现了三种数据结构不同的异构的数据库,那么这种情况下。而导致什么呢?也就是说我的部门A的数据没有办法给部门B的数据直接用,因为数据的结构是不同的,那么这个时候采用的方式呢,往往有两种,其中一种呢,就是说我部门A呢,哎,做一个API,然后部门B呢也做一个API,部门C呢也做一个API。完了之后呢,你需要什么样的数据呢?直接从我这个API里面来抽取啊,来进行访问,拿到你的数据,那么这样的话呢,就属于应用集成,另外一种呢,就是说我通过一些数据同步工具啊,进行我的数据共享啊比也就是说我通过这种数据同步的框架啊,来实现一个数据库,在底层实现一个数据库的这个来回同步。那么这个过程呢,就叫数据集成。哎,这也就是我们C塔诺的一个作用啊,这就是什么是数据集成,那么我们可以继续看哈,它支持一个海量数据的实时同步啊,它怎么样实现实时的,这个我们后面会讲。
02:03
然后塔诺的前身是自2021年10月12日更名为塔。那么2021年12月9日呢?斯塔诺正式通过阿尔法奇软件基金会的投票决议,以全票通过的优秀表现正式成为阿法奇的孵化器项目。啊,3月18日,也就是我们录视频课的两周前,那他正式发布了首个阿帕奇的版本V2.1.0。那么可以看出呢,这个can这个框架目前还处于一个比较早的阶段。那么我们来看一下塔在在做什么啊,简单来讲呢,就是我们过去做一个这个Spark和弗Li项目的话,你是需要去编代码的,但是如果你用S的话呢,你只你只需要去写这个配置文件,那你把这个配置文件写好之后呢,这个SAN会把这个配置文件翻译成具体的Spark和link的一个代码。我们现在可以详细来说一下。我想一下你以前在写flink代码的时候,要先干什么,首先呢,你要去创建一个环境对象,完了之后在这个环境对象上呢,去调用它的这个我们说的一个设置检查点。
03:09
的方法,然后设置专架后端对吧,完了之后呢,再去艾特source,去把这个数据源加载进来,完了之后呢,去对它生边各种算子来对这个数据进行一个处理,完了之后呢,之后我们去ADD think来把这个数据输出到外部的一个呃源源里面去,那么这样呢,你整个就是我们的一个link job的代码。呃,但在实际的开发中呢,呃,你比如说这个设置,呃,一个环境啊,包括什么的这个去配置各种连接的这些代码,很多都是重复的。嗯,那么这样的话呢,我们其实有很多样板代码,于是呢,这个诺呢,他把这些东西呢,全部抽象出来,在我们的整个配置文件中呢,我们可以看到,呃,An诺呢,巴斯巴克的代码,还有弗林代码抽象面这四个块。首先呢,是我们的英文块,也就是说我们去声明弗Li或者Spark,就是他那个任务执行的一个环境,然后那么source呢,呃,就是我们说这个一个fli的作业,Fli的job,它去哪里读取数据。
04:08
然后我们知道那个SS里面,我们比如说有各种那个啊,具体的啊。Source function是吧,他在那里面又把这些东西呢,抽象为的插件,然后完了之后我们说数据进来了,那么今天接下来就是对这个数据进行运算或者转换啊,那么can呢,把这一部分又抽象为了transform。啊,一样的,就是里面各种的处理步骤呢,An诺把它抽象为了plug,也就是我们说的转换的插件啊,最后呢,数据的输出一样是an诺呢,把它抽象为了SK,也就是说我们的SAN,实际上也就是把这个Spark和F的这个东西没有做内部修改,它就是在Spark和flink之上做了一层包装啊,我们以后呢,使用S。实际上呢,它并没有自己的一个计算引擎,它是使用Spark和flink的为引擎。然后来。对这个配置文件解析完之后的一个任务进行一个提交,也就是说can把你写的这个配置文件。
05:08
翻译成具体的弗Li克和Spark任务,然后提交到弗Li克和Spark的集群上去执行。那么显而易见呢,它这样通过配置文件去声明Spark和flink job,它为我们带来了一个好处,就是啊,我们进入了一个低代码的开发环境,然后这样一来的话。我们维护Spark和flink job呃,Job的时候,他在不是一个个独立的炸包。而是一个什么呢?而是一群配置文件啊,这样的话呢,也方便我们后期的维护。
我来说两句