00:03
大家好,欢迎大家来到腾讯云开发者社区,腾讯云大数据团队共同打造的腾讯云为德塔大数据开发与治理训练营,轻松掌握,一步到位。第4章第二节我们将为大家讲解MYSQL实时同步至DLC,我是腾讯云维迪塔产品经理Aaron。那刚刚我们已经准备好了数据集成的同步环境,我们就进入到我们的数据集成的页面来进行我们的实时同步操作。那我们因为给大家演示的是从MYSQL同步到DLC场景,我们先要确保我们有用这两个数据源,并且与v data塔进行了成功的连接。我们点击数据源管理,就进到了我们的数据源管理页面,然后点击新建操作,在这里就能够去创建我们的MYSQL数据源。这里我先给大家进行一个简单的介绍,然后以我们搭建好的MYSQL数据源去为大家进行讲解,那这里大家需要注意的是我们需要去填写我们的数据源名称,那显示名和描述是选填,大家根据自己的需要去进行一个填写来识别这个数据源就可以了。那数据权限的话,这里可以选择共享,或者是仅客人与管理员,那项目空间共享呢,就指的是这个项目下的所有成员都拥有使用这个数据源的资格,而仅个人与管理员,也就是创建数据员的本人与这个项目的管理员才有使用这个数据员的资格,那这里我们可以选择自建实力公网或者是跨账号实力,根据大家的选择去进行就可以了,如果选择自建实力的话,我们就要去选择我们这个区域和网络,我们确保我们这个区域和网络是可以进行联通的。
01:46
然后我们可以去填写这个数据源的PDBCUURL,那接下来我给大家看一下已经连接好的是MYSQL数据源是什么样的效果。
02:00
那以这个我们提前准备好的数据源为例,那我们可以看到这里也是填写了数据源名称,显示名,以及我们的啊获取的实例的地址,以及我们的数据库名称,用户名,密码等等,我们可以去进行一个联通性的测试。我们可以看到这个联通是通过的,那下面呢,我们可以进行一个资源组测试,这个资源组测试呢,是为了让我们确保我们后续在同步任务的过程中,我们的数据源和这个资源组也是可以联通的。那我们测完之后,我们确保了这个数据源的联通性,资源组和数据源的联通性,我们就可以去在同步过程中使用这个资源组,然后去确保完成之后,我们点击确认就建立成功了。那接下来的话就是DLC数据源,那同样我们也是去点击新建,然后这里去搜索DLC数据源就可以。那我们可以选择一个DLC的名称,我们就叫DLC,或者是为了避免重复,我们给它加一个后缀,那这里也是可以去。
03:05
填写它的显示名和描述的,然后呃,数据源权限跟刚刚一样,我就不重复介绍了,我们这里可以选择地域,然后就选择我们的DLC引擎,去选择我们的数据库,以及我们的呃数据库下的对应的具体库。这里告诉我们,这个名称还是重复的,我们再加一个其他标识。然后我们可以进行一个联通性的测试,也是联通通过的,那这里我们也可以让集中资源组跟他进行一个测试。那我们现在给大家介绍的是新建的方法,我们其实实是实际上也是准备了一个,呃,可以使用的DLC数据源的,我们这里还是使用我们已经准备好的。我们可以看到。这个就是我们事先已经准备好的数据源啊,我们点击测试这里也是联通通过的,然后我们点击我们后续要同步的时候使用的资源组啊,去进行测试,它也是同步通过的。
04:09
好的,那确保一切没问题之后,我们就可以去点击确定,然后我们两个数据源也都建立完成了,那接下来我们就可以去数据集成页面去进行这个实时的同步了。那首先要跟大家介绍的是这个单表同步操作。我们起好名字之后,点击我们选择,以表单模式为例,然后点击创建并配置。啊,这里我们就可以去配置我们的实时单表任务,然后我们这里选择MYSQL来源的话,我们就选择刚刚已经确保联通好的。这个数据源就可以。然后我们可以选择一张准备好的演示表。然后这里它会有一个分片列,那分片列顾名思义就是把表作为作为多个分片进行同步,那有主见的表我们建议优先选择这个主键作为分片列,那无主件的表呢,我们建议选择有索引的列作为分片列。
05:15
我们这个表下其实有很多个字段,那ID是我们的这个表主键,所以我们就选择ID就可以了,那读取模式可以选择全量加增量或者减增量,那全量加增量就是读取表中所有的历史记录,然后仅增量的话就是说从这个blog,这个消费变更中去消费它变更的数据。然后这里我们会有这个一致性语义。我们看一下一致性语义,它分为at least once和exactly onces, 然后要注意的是这个读取语义的话,这两种版本是不兼容的,那如果我们提交后修改,提交后如果修改了这个模式的话,是不支持带出状态重启的。所以我们这块儿演示的时候,我们选择还是这个exactly once, 然后这个过滤操作我们可以选择,呃,我们根据选择之后,就会根据指定的操作去变更数据啊,比如说我们选择插入。
06:09
然后目标端的话,我们这里就选择DLC,也是我们去选择一个已经准备好的,刚刚确认联通了的这个DLC数据表。然后我们可以选择库。和我们。要进行同步的那张表。这里写入模式也是可以去进行选择的,那up observe的话,它就是更新写入,那主键不冲突的时候它会插入型行,那主键冲突的时候的话,它会更新其他字段。那适用于是目标表有主件且需要根据原端数据实时更新的场景,它会有一定的性能损耗。那Open的话,它就是追加写,那无论是否有主件都会以插入的形式在后面去追加这个数据,那是否存在主件冲突要取决于目标端适用于无主件且允许数据重复的场景,这种情况下是没有性能损耗的。那全量pen的加增量observed的话就是会分阶段在原端,如果是全量的时候我们采用的是open pen的增量的时候采用的是abser。
07:14
这个模式目前只支持原端是my circle Oracle和T滴my circlele的数据源,那我们这里还是选择这个ABS observe的模式。然后我们可以选择我们的违建是ID,这里有一个写入优化,那写入优化就适用于频繁写入或者实时写入的场景,开启后优化会自动的合并文件啊,删除过期的快照,那如果是实时状态下的absd的话,我们是比较建议您去开启这个数据优化的,那如果后续还想更了解详细数据优化到底能带来什么,我们这里有一个调整链接,大家可以去进行打开,我这里就不再进行更详细的介绍了,那数据优化资源我们这这里可以去选择引擎的,因为这里。告诉我们了,数据优化的时候可能会产生呃大量任务,所以可能会占用我们的集群资源,那为了避免业务之间相互影响,我们强烈建议大家使用单独的集群资源,然后我们这里可以选择一个已经呃拥有的一个集群资源,然后接下来就是数据字段的配置了,我们这里可以看到,嗯,我们可以选择同名映射,就是根据原端的字段和目标端的字段把一致的进行一个直接的自动映射,或者可以选择同行映射,就是按照行数去进行自动映射,那如果这两个都不能满足您的话,那我们可以选择手动的去连接我们的映射方式。
08:38
那这里要注意的是,我们没有进行映射连接的字段是不会同步到我们的目标端去的。那整个的我们的这个任务的配置就完成了,接下来我们就要去选择资源组,我们就选择我们刚刚测试联通通过的这个资源组。然后我们确保一切已经完成之后,我们就可以在我们的左上角这里点击提交或者保存,我们可以直接提交,它会有一个前置的一个任务配置检测来自动帮我们保存。
09:16
那这里出现了一个告警,它就是告诉我们说。我们已经有一个同步的这个任务了,它是有一个相同的来源表,这是因为我在演示的时候提前的跟大家啊去进行了一个DEMO的搭建,然后这里还有一个告警,就是说我们资源余量不足了,那这个时候我们其实是要前往前往扩容的,否则的话可能容易导致任务运行失败。但是为了保证这个戴帽眼镜的一致性,我们还是可以选择忽略异常。然后在这里可以进行这个首次任务的提交。我们提交的话会有一些运行策略,这里的话第一个就是说是从默认点位开始同步,那全量和全量,加增量和减增量,它的默认点位也是不一样的啊,这有一个详细的介绍。
10:08
那这里还有一个就是从指定时间点开始同步,那我们本次的话就选择从默认点位开始同步。然后点击提交。好,我们的任务就提交成功了,那接下来我们返回我们的任务列表。刚刚要告诉大家的是,因为我们出现了这个资源组不足的情况,所以我们这个任务提交。在运行过程中是会失败的,所以这种情况下我们还是一定要去进行扩容的,因为我之前已经呃给大家搭建了几个DEMO,所以我们就以我们搭建好的这个DEMO为例,我们去看一下实时运行的这个运维的状态。那例如说这也是一个单表同步任务,那它正在现在正在运行中,也是说是把我们MYSQL的也是表同步到DLC的这个演示表中,那整个的任务我们看他已经走到了这个增量同步阶段。
11:05
我们这里看它已经运行了一个小时15分钟了,然后它这里会,嗯,把累计读取或者累计成功写入的调试条数就展示在这里。然后接下来就是这个关键事件,我们可以看到这个出现了几个关键事件,就第一个是任务确实启动了,第二个是任务因为一些原因它失败了,我们这里可以去展开去查看具体的异常消息,然后这里会提供相应的解决方案,那后续呢,任务又恢复了,然后我们这里也会有一个记录,那整个这个关键事件就是来记录这个任务运行过程中出现的一些。行为的,那这里呢,还有这个运行日志。运行日志这里我们可以看到,我们就记录了各种各样的一个日志,比如说error呀,或者一些debug呀,或者一些告警呀,或者一些具体的这个info消息啊,这个就很方便我们的同学去进行一个排查,那去查看这个任务具体当时发生了什么。
12:04
然后这里还有一个配置详情,配置详情的话就是能够去展示这个任务,整个同步过程中,它我们是怎么去设置的,来源是什么,目标是什么,然后以及我们的字段音设置怎么去配的呢?以及这个运行的设置是有哪些情况,我们都可以在这个页面去看到。然后这里还有一个操作历史,我们就可以看到,嗯,在11点的时候,这个任务启动了,然后它是一个演示的一个提交,然后在11点半的时候,它有进行了一个修改的,具体的操作人和一些操作状态就我们会全部的收录在这里的,那这里要注意的是,这个仅记录的是页面操作啊,它不记录的是这个接口open API的调用操作。那最后一个的话就是我们的告警订阅,其实我们这个任务已经运行起来了,但它运行过程中可能会出现一些问题,那这种情况下我们是可以给他关联一些已有的告警规则的,例如我们可以给他关联说任务失败时告警,或者说是每10分钟重启时进行告警啊,我们直接可以给他关联在这个任务里面。
13:12
那等于这个我们也给他配置了一个告警的监测。那整个的时事运维的一个详情页的介绍就结束了,那因为。具体的使用它有一定的啊操作成本,或者说是有一定更详细的一个介绍,我们还是建议大家去啊,我们腾讯云的官网上的产品文档,去详细的了解每一个页面,或者说每一个操作它的作用,那这里只是一个呃,快速入门的DEMO演示,所以就不进行更详细一步的介绍了。那接下来的话给大家介绍的是这个整库迁移的这个操作,那跟刚刚的单表同步不同,单表同步可能只是把呃数据库下的一张表实时同步到目标端数据库下的一张表,那整库迁移的话,我们是可以同步原端的所有库表的。
14:09
我们可以点击新建。然后进行创建。我们就进入了这个创建页面,我们可以选择MYSQL的DLC,然后我们点击下一步。我们同样还是要去选择我们刚刚已经确定联通过的那个数据源。然后这里可以选择所有库表或指定库表。我们本次呢,就还是选择指定库表,例如我还是要同步演示的这张表。那这种情况下,其实我们是可以不够多张表的,在此我们为了确保任务能够顺利运行,我们还是只先同步一张表。同样我们可以看到这里读取模式,它会分为全量加增量和减增量,这里我们还是选择全量加增量,那与知性语义我们还是选择X one, 然后就是数据严格只读取一次。
15:13
过滤操作,我们也同样选择插入,然后我们去配置目标端。然后目标端的话。我们也是。要选择我们刚刚确认已经联通过的。这个目标端,然后我们去选择形容模式,选择ABS observe, 它同样也是支持ABS openend的和全量up openend abser那具体的介绍啊,我们刚刚代表也有讲过,然后这里些也有详细的去给大家进行一个解释,我这里就不赘述了。嗯,跟大家介绍一下这个库表匹配的策略,那我们在同步的过程中是要去确定我们要同步到哪个目标库的,我们可以选择与来源库同名,但也可以选择自定义,我们选择与来源库同名的话,我们要确保我们这个目标端里是有和来源库同名的库的,那这个我们就比如说同步到这个A库中。
16:12
然后这个表策略的话啊,我们就选择与来源表同名,这里我们可以看到有一个批量建表操作,那这个批量建表的话,就是为了能够快速的去让大家在目标库下没有表的时候也能完成先建表再同步的这样一个操作,我们可以给大家简单演示一下,它会根据我们的库表匹配策略去进行一个匹配,那像我们这个匹配成功的意思就是说我们的目标库下是有这张演示表的,我们可以选择使用已有表,那如果说是我们其实跟没有匹配到的话,它就会展示在这里,展示在这里之后我们去勾选,然后点击开始建表,就可以把这张目标库下的表创建出来。由于我们这里已经有了,我们就使用这个eo表就可以。
17:00
然后接下来我们可以也是选择写入优化,我们可以选择是否开启,那我们开启之后呢,我们就要选择一个呃,优化资源。我们点击下一步,我们就可以进到我们这个,嗯。资源配置页面,那我们资源配置页面啊,我们是可以去选择。我们的资源组的,那比如说我们刚刚这个发现实时包已经不够了,那我们就开始选择一个,呃,还有容量的一个实时包。然后这里资源的分配方式,它也分为固定分配和呃按同步阶段分配,那固定分配的话,也就是说不管是全量还是增量,它的同步过程始终为当前任务分配的固定资源,这种情况下可以避免任务间的资源抢占,那适用于运行过程中数据可能存在较大变动的场景,那如果说我们去选择按阶段同。分配的话,他这边会根据全量和增量这两种不同的同步阶段去分配资源,然后能够去节约整体的资源使用量。
18:05
那这里我们还是选择固定资源的分配。呃,这里会有一个并行度,也就是说,呃,我们可以去设置这个任务。以多少的数量去进行并行运行?那这里我们可以看到一个消息处理策略,也就是说在原表原端这个表发生变化的时候,我们是去嗯进行怎样的一个告警。比如新增表,就是说目标端不存在的表是否自动创建,我们这里先都选择忽略变更啊,然后这个呃,消息策略也就不一一为大家介绍了,我们可以去这个产品的官网啊,去那个腾讯云官网的一个产品文档里面去进行一个详细的查看啊,每一个。操作或者说消息变更,它支持的都是不一样的,像例如我们这个删除表啊,它支持的是忽略变更日志告警或者任务出错啊,我们的新建表这边就就有自动建表,或者说忽略变更日志告警或者任种出错,每一个步骤都是不一样的。
19:09
这个大家根据自己的需要去选择就行了。然后接下来就是这个写入异常,那写入过程中就会目标端有时候会去写,写入的时候发生异常,这个时候我们就要去定一个写入异常的处理策略,那第一种就是异常,异常的重启,也就是说。如果部分表出现了写入异常,那所有表的任务都会去暂停写入,那这种情况下这个任务将会被持续重启到所有表都正常同步,那重启期间可能就会导致部分表的数据会有重复写入的状况,出出现那部分停止的意思就是说,嗯,我们部分表写入异常了,那仅停止该表的数据写入,其他表还是正常同步的,那已停止的表是不能在本次运行期间恢复写入的,嗯,这个大家需要注意一下。那忽略异常的话,就是说我们无法写入的异常数据标记为脏数据,那这个表的其他数据我们还是或者说是表任务内的其他表我们还是正常同步的,那这里就会出现一个脏数据处理策略,我们可以选择cos归档或者是不归档,那cos归档的话,我们就会把这个脏数据就同存储到我们的那个cos桶中,那如果不归档的话,我们这个脏数据就会被丢掉。
20:26
然后接下来就是一个任务运行策略,比如说最大重启次数,以及啊我们的这个任务告警,任务告警的话,我们也可以直接在这里选择,比如说任务失败是告警为10分钟内重启次数大于5次的告警,以及任务异常时告警。然后整个配置完毕之后,我们就可以进行下一步的这个配置预览,配置预览页就可以让我们再次检查一下我们整体的这个配置操作有没有问题,那如果有的话,我们在这个页面直接去相应的模块里去点击编辑就是可以去完成的,然后运行完成,我们点可以点击保存。
21:01
然后右上角可以进行一个提交了。呃,提交之后我们发现我们的检测其实都是配置完成的。我们的资源检测、任务检测以及数据源检测全部都是通通通过的,我们就可以直接点击下一步,然后这里就会有一个提交策略的选择,也是跟刚刚离线一样,它也分为是从默认点位开始和从指定点位开始,我们这里还是选择从默认点位开始。然后进行提交就可以了。同样我们也返回这个任务列表页。我们可以看到。啊,我们的这个整库演示的这个任务已经出现在我们这个实时列表页上面了,然后我们可以选择前往运维,或者是还是通过刚刚我们啊左侧的这个。菜单栏去进行。那整库同步这里一样,它也是会分为啊。
22:03
一些批量操作,以及一些点进去之后具体的详情页,这个详情页呢,我就不在这里重复进行介绍了,嗯,也是分为配置详情,统计指标,关键时间,运行日志,告警订阅和操作历史。这个和我们单表嗯,所拥有的详情页是一样的,具体的更进一步,每个页面的详细的一些介绍,或者一些使用的细则啊,我们还是建议去大家去官网的文档里面去进行详细的了解。那整个的实时的同步的这个过程中,给大家演示了单表的同步,以及整库的迁移,以及我们这个实时运维这些页面啊,怎么去运维这个任务,以及比如说我们这个单表任务,它点进去之后,它的详情,每个模块都是干什么的,给大家进行了一个初步简单的介绍,那我们这个数据集成,呃实战MYSQL同步至实时同步至DLC,整个过程就结束了,那欢迎大家呃感欢迎大家去官网去查看详细的细则,也感谢大家本次的收听。
我来说两句