Castled 源码解析 - connector 模块WarehousePollContext 说明

connector模块中的WarehousePollContext是比较重要的

代码说明

  • 关于pipeline 格式的定义
    了解pipeline格式定义,对于分析后边的代码是很有意义的,可以知道依赖的模块
 
public class PipelineConfigDTO {
 
    @NotNull
    private String name; // 名称
 
    @NotNull
    private JobSchedule schedule; // 调度信息,主要是关于任务调度的
 
    @NotNull
    private Long appId; // 关联的appid,外部服务在Castled 中称之为app
 
    @NotNull
    private Long warehouseId; // 配置的warehouse 定义
 
    @NotNull
    private String sourceQuery; // 数据查询sql
 
    @NotNull
    private QueryMode queryMode; // 处理模式,全量以及增量
 
    private AppSyncConfig appSyncConfig; // 关于app 的一些配置,从定义上来说属于重复定义,因为appid 可以代表
 
    private CastledDataMapping mapping; //  datawarehouse 与app 的数据schema 映射处理(基于了cfl处理)同时注意Castled 是需要主键的,这个在好多reverse ETL 都有说明
 
}
  • WarehousePollContext定义
    WarehousePollContext 在poller 中是比较重要的,poller大部分都是需要依赖此对象的数据进行处理的,依赖上边定义的pipeline参数
 
public class WarehousePollContext {
 
    private WarehouseConfig warehouseConfig;
    private List<String> primaryKeys;
    private String query;
 
    private QueryMode queryMode;
 
    //uuid and not the incrementing id;
    private String pipelineUUID;
 
    private Long pipelineId;
    private Long pipelineRunId;
 
    private String dataEncryptionKey;
 
    private RecordSchema warehouseSchema;
}

说明

pipeline 以及context 是将app 以及poller 关联的对象,是比较重要的,后续web app 会用到这些

参考资料

https://github.com/castledio/castled
https://oss-docs.castled.io/

posted on 2022-01-31 22:58  荣锋亮  阅读(36)  评论(0编辑  收藏  举报

导航