数据库上的数据怎么读比较有效率

2023-08-10 02:14:20 +08:00
 ltltfuture
场景如下:
供应商有一个 sql sever db 在 azure 上,我们只有读权限,上面有上 TB 的 data (比如 10TB )
现在我要做一个 source 基于这个 db 的 ETL pipeline (用 spark 处理)
目前看来有两种选择:
1. 直接 spark jdbc 连接 db 在里面用 query 读数据做 transformation
疑虑:直接在 sparksession 上写 query 会不会性能很差,或者 OOM 问题
2. 把数据 extract 出来成 parquet 放入云储存(比如 S3),然后 spark 做 ETL
extract 我查了一下可以用 spark 或者 sqoop
不知道那种更合适
不知道有没有大佬指点一下
724 次点击
所在节点    问与答
4 条回复
netnr
2023-08-10 06:24:52 +08:00
推荐用 DataReader 逐行读取处理
ltltfuture
2023-08-10 07:07:35 +08:00
@netnr 这个能分布式吗,速度如何?
netnr
2023-08-10 08:45:41 +08:00
那就每个节点读取分页,比如有 1 亿条数据,十个节点,每个节点读取 1 千万条
mmdsun
2023-08-10 13:07:32 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/963926

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX