首页 > TAG信息列表 > CASTLED
Castled 源码解析 - container 模块说明
container 属于Castled api 后端服务,后端包含了任务调度,db 迁移,有几个服务是比较重要的 主要是pipelineservice,ExternalAppService,WarehouseService,而且官方还提供了一套基于events 的处理 主要包含PipelineEvent,CastledEvent,其他的主要是基于dropwizard 开发的rest api 了,整Castled 源码解析 - connector 模块WarehousePollContext 说明
connector模块中的WarehousePollContext是比较重要的 代码说明 关于pipeline 格式的定义 了解pipeline格式定义,对于分析后边的代码是很有意义的,可以知道依赖的模块 public class PipelineConfigDTO { @NotNull private String name; // 名称Castled 源码解析 - connector 模块几个中间表定义
Castled 的connector利用了schema 以及中间表进行数据存储(包含的已经提交的,未提交的) 官方使用了一个属于snapshot(快照),对于数据的处理,官方使用了excep sql 函数,基于不同 时间的snapshot 利用excep 就可以知道数据的变动 几个提供的中间表 主要在ConnectorExecutionConstants 中Castled 源码解析 - connector 模块app部分说明
app 部分属于Castled处理外部链接的核心,主要包含了ExternalAppConnector以及DataSink 核心组件 ExternalAppConnector 选取了部分 DataSink 选取了部分 BufferedObjectSink 此对象是在每个DataSink实现都会包含的一个,核心是实现数据带buffer 的数据write处Castled 源码解析 - connector 模块connector以及poller说明
connector 属于Castled 一个比较核心的东西,包含了核心部分的datawarehouse数据poll 处理,同时也包含了对于不同外部服务集成的处理 当然才代码中我们也可以看到一部分基于stream 的处理(文件,jdbc,s3.。。。),auth部分基于了oauth目前更多是关注认证,但是没有授权的处理 以下主要说明下Castled 源码解析 - jarvis 模块说明
jarvis 模块主要保基于quartz 包装了一些调度以及任务管理,包含了刷新job ,全局job 同时也暴露为了一个通用的guice 模块,同时基于jesque进行后台任务以及延迟任务的处理 通过代码会发现jesque 占比是比较多的(好多任务处理的,状态标记的),而且quartz更多是 与后台work的处理,主要处理Castled 源码解析 - common 模块说明
Castled 的comon 模块包含了一个比较核心的东西form处理(官方成为CFL),同时也包含了一个常用的工具类CFL 是基于注解处理的,整体代码不是很多,比较重要的是schema,cfl,同时包含了Castled 自己开发的一个简单队列(阻塞以及带偏移的),同时定义了一些关于数据处理的接口定义,可以用来进行扩展 说来自Castled 官方的一篇性能对比
转自:https://medium.com/castled/fastest-reverse-etl-platform-census-vs-hightouch-vs-castled-3d2975dd4e55Fastest Reverse ETL Platform: Census vs Hightouch vs CastledIt is not even a year since the term Reverse ETL was coined. Since then, hundreds of modern dcastled 简单原理说明
主要是一个简单的原理说明,具体的后续会从代码层面说明 参考图 poller 接口定义 public interface WarehouseDataPoller { WarehousePollResult pollRecords(WarehousePollContext warehousePollContext); WarehousePollResult resumePoll(Warehcastled 运行试用
castled 官方直接提供了docker-compose 一键运行 环境运行 docker-compose git clone <a href="https://github.com/castledio/castled.git">https://github.com/castledio/castled.git</a> cd castled docker-compose up -d pg 准备