评论

收藏

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

开发技术 开发技术 发布于:2022-09-30 10:26 | 阅读数:313 | 评论:0

DSC0000.jpg
前面我们讲了利用数据分发,如何把数据同步到ElasticSearch,利用ElasticSearch优秀的查询性能轻松支撑千万级别数据量的查询,同时也有一个点:将数据聚合至一处,Join查询字段做字段冗余,订单行表做嵌套文档没有详细讲,本文我们展开讲解一下如何做冗余和嵌套。
宽表代码处理
  概念介绍
宽表: 把多个维度的字段都放在一张表存储,增加数据冗余是为了减少关联,便于查询。查询一张表就可以查出不同维度的多个字段
窄表: 和我们MySQL普通表三范式相同,把相同维度的字段组成一张表,表和表之间关联查询其他维度数据
维度表: 包含维度编码和该维度下的多个属性
事实表: 包含一个业务事件的相关属性

代码处理宽表
CloudCanal提供了可以让我们编写自定义代码的入口,我们可以在这基础上写我们的处理代码,比如Join其他表,查出子表的多行数据,再传输到ElasticSearch。
代码官方参考例子:https://gitee.com/clougence/cloudcanal-data-process


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

解决:
1、CloudCanal发现有类型问题,官方回复是"_Id是自动处理的,不支持自定义代码进行干涉。你需要干涉_Id涉及的列,自定义代码自己对AfterPkColumn和BeforePkColumn做处理即可"
2、界面上的配置就是摆设,不稳定担心后续会有坑,所以在代码层面处理:
      
  • 把索引的Id字段从Long类型变为Keyword类型,方便存储字符(规划是Id$表名)
      
  • 在增、改、删操作前,先把Id的值换掉

DSC0002.png

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包后上传
DSC0003.png


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

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

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

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

DSC0006.png
通过自定义代码处理,除了本文的宽表代码处理,我们还可以基于数据分发做非常多的操作,这给了数据分发组件非常大的可能性,在代码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/

DSC0007.png

DSC0008.jpg

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



评论

使用道具 举报

0 经验
0 文档
OPNE在线字典