您的位置:  首页 > 技术杂谈 > 正文

干货分享 | HZERO系列组件之数据分发组件(三),自定义代码处理

2022-09-30 11:00 https://my.oschina.net/u/4580203/blog/5581368 汉得数字平台 次阅读 条评论

前面我们讲了利用数据分发,如何把数据同步到ElasticSearch,利用ElasticSearch优秀的查询性能轻松支撑千万级别数据量的查询,同时也有一个点:将数据聚合至一处,Join查询字段做字段冗余,订单行表做嵌套文档没有详细讲,本文我们展开讲解一下如何做冗余和嵌套。

宽表代码处理

概念介绍

宽表: 把多个维度的字段都放在一张表存储,增加数据冗余是为了减少关联,便于查询。查询一张表就可以查出不同维度的多个字段

窄表: 和我们Mysql普通表三范式相同,把相同维度的字段组成一张表,表和表之间关联查询其他维度数据

维度表: 包含维度编码和该维度下的多个属性

事实表: 包含一个业务事件的相关属性

 

代码处理宽表

CloudCanal提供了可以让我们编写自定义代码的入口,我们可以在这基础上写我们的处理代码,比如Join其他表,查出子表的多行数据,再传输到ElasticSearch。

代码官方参考例子:https://gitee.com/clougence/cloudcanal-data-process

ES索引主键处理

MYSQL同步ElasticSearch,_Id无法在一个任务中自定义不同字段,只能用Id,界面上配置的_Id值有时候可以生效,有时候不能生效,比较诡异

解决:

1、CloudCanal发现有类型问题,官方回复是"_Id是自动处理的,不支持自定义代码进行干涉。你需要干涉_Id涉及的列,自定义代码自己对AfterPkColumn和BeforePkColumn做处理即可"

2、界面上的配置就是摆设,不稳定担心后续会有坑,所以在代码层面处理:

  • 把索引的Id字段从Long类型变为Keyword类型,方便存储字符(规划是Id$表名)

  • 在增、改、删操作前,先把Id的值换掉

CloudCanal发布代码

自定义代码打包

  • 子工程下Src/main/resources/META-INF/cloudcanal/plugin.properties中修改为需要使用的类;

  • 子工程下Mvn -Dtest -DfailIfNoTests=false -Dmaven.javadoc.skip=true -Dmaven.compile.fork=true clean Package 打包;

  • 将Target下的Jar包拷贝出来,重命名为自己需要的命名。

 

上传自定义代码

在创建任务的过程中,上传自定义Jar包,选中打包的Jar包后上传

 

自定义代码部署更新

首次任务配置时,可以上传Jar包,后续代码如果有更新,可以在任务管理界面更新Jar包,更新后任务会重启,后续的增量数据就会走新的Jar包。

Debug自定义代码

如果使用CloudCanal自定义代码碰到问题,在任务的日志界面可以查看到报错进行定位,同时也可以打开CloudCanal Debug模式,任务启动将自动等待Debug链接。

入参数设置

任务详情->参数设置

配置DebugMode参数

找到DebugMode参数,配置为True。生效配置并重启任务。任务启动后将会停止并等待远程Debug客户端连接。 

启动远程Debug

远程Debug,以Idea为例,设置任务运行地址(Sidecar容器或运行节点Ip ,以及默认8787端口)

通过自定义代码处理,除了本文的宽表代码处理,我们还可以基于数据分发做非常多的操作,这给了数据分发组件非常大的可能性,在代码Demo的地址中,有不少自定义代码处理案例,大家可以自己尝试动手,利用代码处理自定义分发的数据,从而达到数据处理的目的。

 

往期推荐

1汉得企业级数字化PaaS平台 HZERO 1.9.0 版本正式发布!

2汉得aPaaS低代码平台-飞搭 2.3.0 RELEASE正式发布!

3重磅发布 | 汉得iPaaS全域集成平台 集星獭 1.5.0 版本正式发布

4干货分享 | HZERO系列组件之辅助开发核心包,一招搞定开发!

5干货分享 | HZERO系列组件之消息管理组件,满足您的多种发送需求

6干货分享 | HZERO系列组件之数据分发组件(一),广播表快速入门

7干货分享 | HZERO系列组件之数据分发组件(二),ElasticSearch同步方案

 

联系我们

产品试用请登录开放平台。请在 PC 端打开:

https://open.hand-china.com/market-home/trial-center/

产品详情请登录开放平台:

https://open.hand-china.com/document-center/

如有疑问登录开放平台提单反馈

https://open.hand-china.com/

图片

图片

▲ 更多精彩内容,扫码关注 “四海汉得” 公众号

 

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接