现在公司的 ETL ,用的是 mysql 存储过程+事件或其他调度工具,来实现 DWD,和 DWS 层的数据转化。因为现在需要处理的表开始多了起来,后续想使用更专业的 ETL 来统一管理和处理。请问现在比较主流的工具是什么,Kettle ? spark ? 再简单说一下情况:主站 A 的数据分别同步到 B ,C ,D 库,然后在 BCD 库处理数据,分别在自己的库里转为 DWD 和 DWS 层。
1
awen233333 2023-11-30 17:09:16 +08:00
kettle 不建议,我觉得不好用,速度慢 bug 多,老是报莫名其妙的错,数据量小还可以凑合用一下
|
2
ChenKeLiang 2023-11-30 17:13:29 +08:00
dataworks
|
3
EarthChild 2023-11-30 17:19:01 +08:00
@awen233333 #1 那你推荐啊!
|
4
EarthChild 2023-11-30 17:19:21 +08:00
@ChenKeLiang #2 不要阿里系的。
|
5
sss15 2023-11-30 17:19:51 +08:00
盲推一波 flink cdc
|
6
heyline 2023-11-30 17:23:57 +08:00
可以试试 airbyte + dbt 的方案
|
7
yngzij 2023-11-30 17:31:27 +08:00
datax 可以考虑一下
|
8
awen233333 2023-11-30 17:34:27 +08:00
@EarthChild 我推荐的就是你不想用的😂
|
9
dot2 2023-11-30 17:46:38 +08:00
dolphinscheduler
|
10
haimianbihdata 2023-11-30 17:57:48 +08:00 via Android
海豚调度。datax flink cdc
|
11
hengtong 2023-11-30 19:07:05 +08:00 via iPhone
蹲一个
|
12
hengtong 2023-11-30 19:07:31 +08:00 via iPhone
dataworks 挺好的 就是贵
|
13
ursash 2023-11-30 19:32:27 +08:00
dbt 考虑一下?
|
14
kkadmin 2023-11-30 20:02:30 +08:00
Doris/StarRocks + Dolphinscheduler
|
15
ctrlaltdeletel 2023-11-30 20:24:41 +08:00
推荐 dbt ,以及 gitlab 的实践 https://about.gitlab.com/handbook/business-technology/data-team/platform/dbt-guide/
|
16
ddkk1112 2023-11-30 21:57:38 +08:00
mysql select 同步的话,datax 还不错
bin 同步考虑 canal 如果不想用阿里的,自己用 python 写同步脚本,也很快 |
17
tyrantlucifer 2023-11-30 22:11:19 +08:00
火山引擎 DataLeap 开发套件可以了解一下
|
18
leonhao 2023-11-30 22:14:45 +08:00
开 binlog 最省心
|
19
dlmy 2023-12-01 01:27:01 +08:00
强烈推荐 FlinkCDC ,大数据项目每天处理 5 亿条数据,处理流程如下:ODS -> DWD -> DWM -> DWS -> ADS ,暂时没发现什么问题
|
20
iv8d 2023-12-01 08:17:08 +08:00
kettle
|
21
noparking188 2023-12-01 08:41:01 +08:00 via Android
@heyline 这个好用吗,体验咋样
|
22
Chayebao OP @haimianbihdata 我目前就是有用到 海豚调度去调度存储过程,flinkCDC 做的数据同步,但是 etl 方面要怎么做 没太理解,大佬细说
|
24
noparking188 2023-12-01 08:45:49 +08:00 via Android
BCD 库换成 tidb ,开 tiflash ,调度用 dolphin 或者 airflow 之类,回写实时可以用 ticdc
tidb 生态全方位兼容 MySQL |
25
Chayebao OP @dlmy 我这边的情况是这样的, 有一个主站,每张表有‘type’字段 A,B,C 。 我用 flinkCDC 把 type 不同的数据 分离,分别同步到 A,B,C 库。接着,在各自的库,用 mysql 存储过程+海豚调度 处理数据,汇总,做 DWS 。如果不使用 mysql 存储过程,也就是要 再各部署 3 套 flinkCDC ,用 job 去做数据汇总么,还是说写好 job , 丢到海豚调度上处理。目前海豚调度能使用 flink 的那个功能我还不知道怎么使用。
|
26
noparking188 2023-12-01 08:51:32 +08:00 via Android
@noparking188 你只有 TP 的存储系统,你要加一个 AP 的存储系统做 ETL ,你现在的架构算是传统数仓,且远比不上 SQL Server ,SQL Server 那一套现在都逐渐被淘汰了,AP 数据库支撑不了的处理,你加 Spark ,tidb 生态有 tispark
|
27
Chayebao OP @noparking188 我们这边需求有点不一样 BCD 库要能单独拿出来,所以是 3 个 mysql 地址。
|
28
Chayebao OP @dlmy 我现在启动了 3 套 flinkCDC ,每套只有一个 JOB ,分别将主站的数据,分 type 同步到 3 个库,然后在 3 个分库,再起 flinkCDC ,实时处理数据 到 dws 层?
|
29
noparking188 2023-12-01 09:08:44 +08:00 via Android
@Chayebao 我建议,Fink CDC 同步的库换成 tidb ,开 tiflash ,SQL 只用改下加 comment hint 使用 AP 引擎,tidb 可以基本视作 MySQL 使用,调度还是用 dolphin ,支撑不了的复杂计算加 spark 集群,dolphin 可以直接集成,你所有的任务只要写 SQL 就够了
|
30
Chayebao OP @noparking188 意思是 我把我的 ETL 任务 sql 放到 tidb 上,还是用 dolphin 去调度? 那这个跟我使用 mysql 存储过程+dolphin 调度 一样的?
|
31
XuHuan1025 2023-12-01 09:30:16 +08:00
kettle 简单 没啥含金量,整别的就当带薪学习了
|
32
noparking188 2023-12-01 09:32:32 +08:00 via Android
@Chayebao 一样的,你可以和老板吹嘘你用了 HTAP 分布式 NewSQL ,可以同时支撑海量数据实时和离线处理,开发和业务改动最小,基本写 SQL 就行,只是费点运维。今天剩下的时间你可以快速做个 POC 验证下
|
33
Chayebao OP @noparking188 tidb 需要的资源呢,我们打算把 mysql 存储过程优化掉的原因就是因为存储过程太占资源,想用 java 去跑。
|
34
waterwave 2023-12-01 09:46:41 +08:00
Data X 比较好,我的部门用得很不错。
|
35
dif 2023-12-01 09:49:34 +08:00
新搞得建议 flink 吧。
|
36
noparking188 2023-12-01 09:53:12 +08:00 via Android
@Chayebao 什么资源
|
37
dayeye2006199 2023-12-01 09:57:46 +08:00 via Android
没人提 airflow ??
这个难道不是业界标准? |
38
yingqi1 2023-12-01 09:58:26 +08:00 1
如果你们的团队规模较大,技术水平也不错,可以考虑使用 fink 。
但是如果只有几个人,不建议采用如此复杂的技术栈(例如 Hadoop\fink ),因为这可能需要长时间等待才能看到成果。(举个例子,开源 fink cdc 如何整库同步,你需要多长时间解决)。 小规模改动:结合 Airflow 和 dbt 。Airflow 可以处理调度和数据传输(可以利用现成的插件),而 dbt 则用于统一的数据转换( Transform )开发。dbt 是未来的趋势,但需要做好持续集成和持续部署( CI/CD ),可以参考楼上 GitLab 的开源方案(我们之前也参考 gitlab 的)。 大规模改动:替换数据处理和数据仓库部分,但避免使用 Hadoop 生态系统,因为它过于复杂且难以快速看到成效。建议使用 ClickHouse 或其他 OLAP 类型数据库。 不要使用 Dolphinscheduler ,部署都不知道多少台机器了,直接单机 airflow+mysql ,杠杠的。 总的来说,把带薪学习的时间放在 DBT / CICD /DATAOPS 。 |
39
yingqi1 2023-12-01 10:03:02 +08:00
@dayeye2006199 我也觉得 airflow 算行业标准了。很感谢 Dolphinscheduler 开源,但是采用微服务把调度系统写的跟 web 后台管理系统似的,我们之前部署的毫无可用性。
|
40
Chayebao OP @yingqi1 目前数据开发就我一个人,项目不大,所以只简单用了 flinkCDC 做同步,mysql 存储过程+Dolphinscheduler 做 ETL 。谢谢大佬 我研究一下。flinkCDC 已经定好了做实时同步了 可能就没法改了
|
41
mywowo 2023-12-01 10:23:11 +08:00
异类, 用的 kestra
|
42
Mindzy 2023-12-01 10:28:16 +08:00
SeaTunnel + DolphinScheduler + StarRocks(Doris)
|
43
yingqi1 2023-12-01 10:30:53 +08:00
@Chayebao 就一个人,不要搞那么复杂,向钱看齐就好了。学 DBT/dataops 。真的要弄实时同步,也不要采用 finkCDC 了,直接用链接服务这类的工具。
|
44
heyline 2023-12-01 10:32:16 +08:00
你可以去 airbyte 文档看一眼,运行 docker 体验一下,我没用过 airflow ,我稍微看了一下 airflow ,感觉 airbyte 更简单一些 @Chayebao
|
45
Chayebao OP @yingqi1 flinkCDC 已经用上了,没法换了,现在要改进的是 ETL 。3 套从库的 ETL ,mysql 的存储过程都是一样的,每套都有 10 多张表,我想揉到一起管理
|
47
haimianbihdata 2023-12-01 10:35:31 +08:00 via Android
@Chayebao etl 现在一般只是拉数据。。同步数据了。。。计算可以放到数据库里面做,sql 调度分层这样
|
48
Nich0la5 2023-12-01 11:23:11 +08:00
fine data link 挺好用,不过收费的
|
49
liushawn1999 2023-12-01 11:41:12 +08:00
逛了一大圈发现原来 kettle 居然是最低级的,那我培训班的老师还教,就离谱,看来市面上用的工具比培训班教的差别好大啊,你们说的这些我一个都不知道
|
50
smallpigzbl 2023-12-01 11:42:30 +08:00
@heyline +1 DBT 是真的强
|
51
woncode 2023-12-02 01:15:12 +08:00 via Android
蹲一个,我们买了帆软的 FineDataLink ,确实比之前的 kettle 好用一些,可以聚合异源数据输入、基于日子实时同步等。
|
52
x2ve 2023-12-11 14:42:39 +08:00
@liushawn1999 #49 也算是招聘的要求之一,有这个经验也不错;数据工作本质是 SQLboy ,大头是业务分析,有行业经验搞起数据来才能更快入手。
|