开源的 Tapdata Live Data Platform 是一个实时数据服务平台,目前已上线的 1.0 版本核心覆盖实时数据同步、实时数据开发、Fluent ETL 等场景,具备全量和增量复制、异构数据库间的同步与转换,表级同步以及任务监控等能力。
从0开始构建和部署 Tapdata 开源版本,需要完成三个步骤:
环境准备: Linux + Docker(当前版本仅支持 Linux 和 Docker 环境,基于非 Docker 的和非 Linux 的环境正在适配中,很快会和大家见面)
下载源码: git clone git@github.com:tapdata/tapdata.git && cd tapdata
通过一个命令,一键编译所有组件并启动服务: bash build/quick-dev.sh
另附代码结构解析及启动说明:
代码库主要组成部分(目录)
assets:用于存储我们的图片、logo 等静态资源
build:主要用于存放我们用来打包、编译或测试的脚本,不是框架的主要组成部分
connectors common:数据源的通用对象以及类的定义
plugin-kit:供开发者使用,如果开发者想在框架上开发一个自己的数据源,就可以用到这里的一些 API 方法
tapshell:目前 Tapdata 的开源项目没有暴露 UI 界面,整个系统的交互使用都是通过 tapshell 来运行的,是一个基于 Python 的交互式命令行工具
bin:我们后续会在这里放一些类似于启动/停止的脚本
connectors:目前 Tapdata 支持的数据源都在这里:
开源数据库 Apache Doris
测试用数据库 Dummy
ES/Kafka/MySQL/PG/OceanBase/RabbitMQ/RocketMQ……
dist:每次打包时的成品目录
engine:引擎,做计算时的一个主要仓库,可以用来做数据的读取、转换,以及聚合计算
manager:管理端,开发者的任务管理、日志上报、监控等信息都是通过这个组件来完成的。我们也是通过 manager 来完成任务的持久化(engine 本身仅运行任务,不做持久化)
README:一个中文版,一个英文版
编译说明:先把 plugin-kit 和 connectors common 编译完(编译出我们基本依赖的对象),再完成 engine 引擎编译,继续完成 manager 编译后,整个服务就可以跑起来了。最后通过 build 里的 DockerFile 打包成一个 All-in-One 的镜像,我们最终运行的是这个镜像。在运行之后,我们还需要把 connectors 下面的所有数据源注册到系统中去。
数据源注册:如果想要注册一个新的数据源,可以通过 accesstoken 来完成
Tapdata Live Data Platform 是一个自带 ETL 的实时数据平台,通过把企业核心数据实时集中到中央化数据平台的方式并通过 API 或者反向同步方式,为下游的交互式应用,微服务或交互式分析提供新鲜实时的数据。申请试用