00:00
业务数据了对吧?呃,首先呢,那么我们现在如果要是采集实现的话呢,这里我分两种方式对吧,一个呢是我们的开,一个是Maxwell对吧?那么具体如果要是做的话,咱们这会简单给大家说一说,对吧,具体我现在要完成什么样的一个功能对吧?具体功能呢,还是比较简单的,在这里我们呢去新加一个。这个是我们这个日活,不是日活,这个是首单啊,Sorry,这个呢是我首单,对呃,那么首先呢,在咱们这个首单这里对吧,那么他呢,应该先去找什么的,应该先去找我们现在这个关于业务数据库对吧?那把这个拿过来啊,把这个拿过来,呃,这是什么呢?这个呀,就是我们现在这个业务数据。业务数据对吧,那么咱们现业务数据呢,比如说我就是MY搜Q了啊,也就是我现在的数据啊,我已经啊放到我们这个MYSQL里边来了,对吧,那么它呢,作为我们现在的这个起点啊,作为起点,然后接下来那么你现在要把这业务数据给它采集一下,采集到哪呢?是吧,采集到我们这卡卡中啊对吧?所以说呢,咱们现在要把我的业务数据啊给它采集,采集到哪呢?采集到我们现在卡不卡里边卡不卡对吧?那么既然要产生卡不卡,那么咱们现在这里边你是不是在进入我的工具啊,对吧,那么这会就是到数据传输了,用谁呢?对吧?对,不太合适,因为咱们现在一般是不能从我们这个数据库里边拿过来,对不对,SOP呢,对这个scoop呀,这个好像可以从数据库里拿数据,但一般咱们是往一个DMS里边,对吧,而且是不是还在实时啊,对吧,所以说它呢,好像也不太行,对吧,那这里我们现在给大家介绍什么呢?两个一个呢是我们的。
01:58
Kindle,那另外一个呢,是我们这个Maxwell啊,就是说啊,我现在要把这个数据给拿过来,那需要借助一些我们这个采集工具或者数据同步工具,对吧,那么这个数据同步工具呢,那现在给大家介绍两种对吧?介绍两种一个呢是我们的KO。
02:15
那么另外一个呢,叫maxwa啊,那么这两个,那这两个其实目前呢啊都有用的啊,所以我这两个都给大家介绍了啊呃,使用我的Kindle或者ma来对咱们数据呢,来做一个我们的采集啊,来对数据做一个采集,那么采集到卡卡里边,那你卡夫卡是不得有一个我们的一个主题来存放的呀,对吧?那比如说啊,那在这里我们现在呢,有一个主题,这叫什么呢?叫机贸0523对,然后接下来这个是我业务数据对吧?这个是从什么先从我们的Kindle里边对吧?拿过来的吧?对吧,先在K里拿过来的对吧?哎,那么你把这个东西拿到之后呢,注意啊,那咱们肯定对做一些我的处理对吧?那么谁来处理的呢?是不是应该是我SPA traininging来去做处理啊,对吧,那这里应该是我们个Spark streaming对吧,这个程序,然后他呢,去读取我们这个卡卡数据,然后对我们的卡卡数据呢来做。
03:15
的一个处理这啊应该再来连一条线啊,这个是我SPA streaming它呢去读取我们现在这个数据对吧,那目前咱们现在啊,先别考虑这么远,就把这块呢给做出来就行啊,就先把这个这这这这个东西啊给做出来,就是先给大家介绍咱们这工具啊,啊就体怎么来用,对吧?那么首先我们说两个工具,一个是canon,一个是mywell,对,那先来看谁呢?先来看咱们这个canon对吧,先来kon,什么是canon对吧,Canon它本身是咱们的阿里的对吧,这样的一个数据传输的一个中间件对吧,那么阿里当初啊,为什么去咱们这个开发或者研发咱们的kon呢,对吧,那么因为咱们阿里呢,它本身对吧是一个什么阿里它其实现在是不光是就是To B嘛,对吧,像阿里巴巴b To B多一点,现在其实说他什么对吧,TOC啊对吧,TOC是吧,这种多一点对吧,那么咱们但是呢,就是说这个其实我们现在这个大家伙,不知你们到阿里批没批过货呀。
04:15
啊啊1688是吧,诶对,咱们现在呢,在咱们这里边对吧,那个其实我们是什么呀,它是我们这个BTOC的对吧,那还有什么就是企业对企业的对吧,那么有一些To B的业务啊,就b To B业务对吧?那么因为什么呢?因为业务本身的特性对吧,那么有可能什么呢?就是卖家他主要集中在我们国内,对然后买家呢,主要集中在我们这个国外,其实很多对像今天早晨开始听那个广播还是对,其实中国有很多小镇对吧,这个小镇呢,比如说对吧,这个什么世界百分之多少多少的对吧,这个东西产生在这儿,世界中国百分之多少多少东西都产生,这像这个早晨我听那个广播技绍什么的,说咱们现在这个中国70%的袜子是吧,都是在那个小镇上产的。
05:05
都在在小镇产的对吧?哎,对对吧,然后那我现在呢,这里肯定什么呀,他那小镇除了咱们现在这个国内业务之外,还有什么,还有好多我们这个国外的一些我们外贸订单,对吧?那么这里呢,他就衍生一个需求了,什么呢?说我现在啊,那有国内的数据,那么咱们现在呢,那我在海外它肯定呢也有一些我们的机房,对吧,那么我现在呢,就涉及到这个杭州啊,它的机房要和我们现在海外的机房呢,要做一个我们数据的同步啊,要做数据同步对吧,也就是说只要是在咱们国内呢的下了,或者说我现在的下订单,或者怎么怎么样的,对,或者说我现在上什么商品,那这个时候呢,我应该马上对吧,把它同步到我们现在海外的机房去,对吧,那么这个时候呀,那就涉及到一个我们这个数据同步的一个这样的一个需求了,对吧,那么在我们一零年的时候呢,对吧,那么阿里它开始的尝试什么呢?基于数据库的一个日志解析,就把这数据库啊,它的一个。
06:06
操作日志给拿过来,然后接下来从操作日志里边来获取我们现在增量变更来进行同步,比如说我现在在咱们某一个地方对吧,在中国某个地方对吧?诶我现在呢,对吧?去对通过我们这个登陆阿里的BB的网站,然后接下来我网址里边维护了一个商品,那维护商品这个商品首先你维护到哪儿呢?是不是肯定要先维护到咱们这国内的机房了,对吧?肯定在我这国内数据库里面插一个,但是你想一想,你现在这个东西你查完之后,你是不是得马上同步到咱海外的机房上去啊,对吧?诶那么只不过咱们现在这个技术啊,他已经把我们现在这个这这这个这个这个这个实现已经非常完美了,就你感觉不到是我现在都过了两天的同步,过去不是这样,这不基本是已经实时的,对吧?哎,那么咱们只不过呢,他怎么去实现这个实时同步的,对吧,那么他们呢,是想这么做的,哎,我现在啊,你只要是往咱们数据库里发生一个数据,数据库本身要记录一下你的操作啊,把你的操作给记录下来。
07:06
比如你添加一个商品啊,比如你修改了一个什么什么,他把你的操作记了下来,然后接下来呢,那我从当前的一个这个数据库本身记录的一个操作日志中,然后对我这个操作呢来进行解析,对吧?然后把这个操作拿到哪儿呢?拿到咱们这个国外,海外的机房里边,把这个操作呢再执行一下啊其实这个思路不光是在咱们这里边有吧,对你像我们这个在前面学的很多东西是不是也这样的,这个备份的时候,我是不是可以把操作日志给记一下,然后记住之后,然后我现在在到到哪去执行一下,是不是都是这样,对吧?诶咱们现在呢,其实他也是这么做的,对吧?也这么做的对吧?那么kind呢,其实就是我们当初阿里啊,他用Java开发的,基于我们这个数据库增量日志这么解析的一个工具,对吧,那么其实最早的时候对吧,最早的时候它出现在哪呢?阿里啊,它在做我们这个国内和海外这个同步的时候,它其实有一个产品叫我们这个al是吧,这个东西基本上是吧,这个东西呢,就是关门。
08:06
啊,这个其实也也咱们这院就给开源了,但其实现在呢,又并不是特别多啊,又并是特别多对吧?哎,那么咱们现在呢,他在进行同步的时候,对吧?那我们其中呢,短kind是我们的order这里的一部分,它主要做的什么呢?比如这是国内的数据库,然后这是海外数据库,然后接下来那么咱们现在呢,会通过我这个日志,把数据库本身日志来记录一下变更,然后接下来那么我现在呢,诶这个这里面的过程就不用去管它,然后通过什么呢?通过它内部的处理,相当于把我这个变更呢给达到,然后接下来对吧,那么咱们现在把这变更呢,在我海外服务器上对吧,给他执行一下,那其最后呢,把这个达到一个数据同步的一个目的,对,其实最早的时候呢,就是一个这样的场景啊,就是一个这样场景对吧?哎,那么咱们当初这个东西它应用谁呢?它主要呢是支持了MYSQL对吧,因为那个时候他数据库业务,它主要放在MYSQL数据库上去,对吧?哎,那么这块呢,他如果要想实现同步的话,他利用什么?它利用MYS。
09:06
有个机制叫什么呢?叫blog,这个blog是什么?大家想一想,我要想同步,首先第一件事,你是不是得把它的操作日志给我记住一下呀,对吧?这个blog就是买搜狗数据库本身它所提供的一个功能,它会干什么呢?它会自动的把我当前数据库做了哪些操作给记录下来,对吧?然后记录完之后呢,诶,我把这个操作交给谁,交给咱们的KO对吧?来进行一个我们的处理来进行处理啊,其实就是这样的一个东西啊,其实就这样一个东西,对吧?然后接下来除了这种使用场景之外呢,那么在国内啊,一开始咱们这Kindle出现的时候,它主要呢,其实应用的场景是这。啊,这个场景是什么呢?这个场景啊,其实呢,是我们的一个缓存的场景,比如说啊在咱们这里我呢有这么几个角色,一个是应用服务器,你可以把它理解成你的一个外部站点,就你的网站,然后这块呢,是数据库对吧,你可以成我现在的存放数据的地方,然后还有一个叫什么呢?缓存服务器,缓存服务器目前咱们学过谁呀?Red是吧?哎,Red可以算咱缓存服务器对吧?然后接下来,那我现在呢,那么如果说要想从我们这个什么我这个网站查东西,那么用户首先是不是得先登录到你这个这个网站呀,那么登录到网站再查的时候,那你说从哪查呢?这个数据本身是不是肯定在数据库里边,对吧?但是直接从数据库查这个效率是不是比较低啊,所以说呢,他会在red里边来缓存一份对吧?诶所以说我们第一次在查的时候呢,诶他首先呢,到ready里边查对吧?哎,我现在查完之后发现ED没有,那如果ready没有查到数据,那你是不是应该尝试了一下,你是不是要去咱们数据库里边查一下。
10:46
哎,所以说诶,我现在啊,首先要查查谁查缓存对吧,然后查缓存之后呢,我发现没有,那没有怎么办?那你到数据库里查一查,看一看这个数据库里边是不是有对吧?那么如果说我现在啊,数据库里边有的话,那你是不是应该从数据库里把这数据查出来,给用户展现出来,用户在这同时要做一件事情。
11:06
干什么呢?你是不是得把你从数据库读的东西,然后放到缓存里边去,对吧,往缓存里更新一下嘛,对吧,这是我们现在读的一个需求,对吧,假如说同学们,那么你现在呢,你在这里你不光读,然后你读的数据之后呢,你还这个数据做个修改。比如用户,诶我现在从这里边我读了个商品,原来商品呢,卖200块钱,后来我看,诶这个东西啊,现在竞争很激烈,卖多少卖100对吧,你不光是读,那你还要干什么呢?你要对这上面做个修改,那么大家想想你要修改的话,这里边是不是有两个地方要做修改呀,一个是什么,一个是缓存,那另外一个数据库对不对?那你说我们直接在开发程序的时候,我们能保证他修改时候应该首先要修改谁呀,是不是修改数据库啊,对吧?但是这里有问题了呀,对吧?本来我这缓存里面有了缓存中缓存200,然后你数据库里边,我现在一修改,你现在把这个数据库里这个价钱改成多少,改成100了,那这里是不是就有问题,咱们当前我数据库里边数据和缓存数据说不一致的呀,那这个时候你是不是在同步一下对吧?那么谁来同步呢?那第一种方式你程序员同步,只要你改呢,那么这个时候你马上在咱们这里面把缓存给清一下。
12:16
对吧,那这样的话就效率稍微稍微低一点呗,什么呢?就是我现在在访问的时候,只要对他做修改,相当于把缓存的数据给干掉了。啊,你下次再来的时候,你查款都查不到,你就多一次从数据库查询的操作呗,对吧,这第一种方式,那么第二种方式是什么呢?第二种方式就可以利用我们这kno,这kno干什么呢?就是你现在如果说你在应用服务器里边,你在网站上这个数据啊做修改了,你是不是相当于对我的数据库做了一个改变呀,对吧?那个数据库本身它干什么呢?它会记录一下你当前改变操作,然后接下来我的ke会监控一下你当前做了哪些修改,然后接下来他会把咱修改给同步到哪,同步到我们这缓存里面去。
13:01
啊,通过缓存去,那么除了我这个缓存还有什么呢?还有我们这个什么卡不卡对吧,这样也行,对吧,所以说呢,它其实就相当于什么呀,它相当于是不是有个监听者在这监听于咱们数据库的变化的,对吧,一开始对吧,对我数据库啊对吧,这个对我的kind的应用,就这种场景呢,对吧,用的比较多对吧,然后随着我大数据的一个发展,对吧,咱们的数据量变得越大,对吧,然后接下来那么这种场景呢,对吧,其实呢也有用的,但是呢,另外一个场两个场景其实呢,也发展现在用的比较多了,哪两个场景呢?其实抓取业务数据变化啊,其实主要是新增变化,对吧,然后干什么呢?因为制作拉链表,拉链表的概念,你们是不是前面在我们这个离线列边都要是接触过呀,对吧,那么除了它之外呢,其实这里还有一个抓取业务表的一个新增和变化数据干什么呢?用来做实时统计,那其实我们现在这里用的是这种场景,对,就是你现在可以把当前啊,你新增的或者变化数据给拿到,拿到之后呢,我可以干什么要。
14:01
后来智能拉链表你们离线可能会用到,那么要不然我把当前数据拿过来,我实时对他进行统计。对吧,那也就是说我现在这里边我是干什么的,你可以操作数据库,你对数据库不停的在操作,我现在开,我是不是可以把你把你把你的操作给记录下来,技术下来放在哪呢?我可以放在咱们卡卡里面啊,我可以放在卡卡里边,那么我有了卡卡之后,我使用咱SPA stream,我是不是可以对你做一个实时分析的,对吧?所以说我们现在使用的是这种场景啊,我们现在使用的是KO它的一个这种场景,对吧?那么。
我来说两句