SQL Server 数据库迁移到 PostgreSQL 或者其它云原生 OLAP 库有哪些比较好的方案

2023-04-22 23:25:10 +08:00
 noparking188

SQL Server 上

  1. 数千张表、TB 级数据;
  2. 一次性全量迁移;
  3. 字段类型尽可能兼容;

想请教大家迁移到 PostgreSQL ,有什么比较好的方案推荐的。

发散一下,分成两个步骤:

  1. 从 SQL Server 转换建表 DDL 为目标数据库格式、导出数据为通用格式( JSON 、Parquet...);
  2. 导入数据到目标数据库上目标表。

主要想讨论和请教的是从 SQL Server 这类传统数仓迁移到比较新的各种云上数仓有什么好的、成熟一点的方案参考。

谢谢大家

1283 次点击
所在节点   SQL Server
17 条回复
v2wtf
2023-04-22 23:56:02 +08:00
吐槽一下:你这个上 TB 的数据,tmd 谁能给『真正适用实际情况』的建议?给了你敢用?

这种量级的数据迁移,起码要一两个专业人士专门到现场沟通详细情况、制订方案,光是数据迁移本身恐怕没有把月搞不定,再加上相关的系统的迁移、改造,恐怕三个月能下来已经是非常乐观的估计了。
512357301
2023-04-23 00:24:58 +08:00
花钱。
省心,还能甩锅。
mooyo
2023-04-23 00:26:33 +08:00
大客户可以开工单给云厂商沟通协助
ihacku
2023-04-23 00:30:13 +08:00
deorth
2023-04-23 00:30:32 +08:00
之前一个项目给客户做的数据库迁移,XXTB ,1X0W RMB 。两个专人现场三个月。业务改造是客户自己的事。
liprais
2023-04-23 00:33:52 +08:00
给楼主支个招
你就跟阿里云说你要上云,让他们出方案
billzhuang
2023-04-23 08:31:54 +08:00
babelfish +1
netnr
2023-04-23 09:21:37 +08:00
类似的情况,百来张表,几个 G 的数据

先下载一个工具 https://fishcodelib.com/DBMigration.htm
用于数据库转换,主要用于表结构转换,表数据转换也支持,但速度一般

表数据迁移可以用 kettle 工具来做,我自己没怎么用过,但我们的业务有用这个来同步数据

我一般用自己写的 C# 控制台程序,逐行读取表数据分批表复制写入,实践过几百万的数据量
(我其实是想实践测试一下,交个朋友!🤡)
noparking188
2023-04-23 09:37:12 +08:00
@billzhuang 感谢,这个参加 AWS webinar 听他们介绍过
noparking188
2023-04-23 09:38:24 +08:00
@ihacku 感谢,这个听 AWS 的介绍过
noparking188
2023-04-23 09:40:19 +08:00
@v2wtf 哈哈,吐槽合理,不过我只是想和大家发散性思维探讨一下可能的方案,随意脑洞,我来实验
noparking188
2023-04-23 09:43:46 +08:00
@liprais 哈哈这个可行,不过云厂商的 Solution Architect 没想象的万能,有时候还比较不靠谱
noparking188
2023-04-23 10:37:51 +08:00
@netnr #8 感觉这个类似 AWS 的 SCT ,不过我看了只有图形界面,就算百来张表也不好一张张去复制粘贴吧,有 API 接口就好了。
我目前的实现单表最大 ~5000 万、~60GB ,光从 SQL Server export 数据就三四十分钟了。import 导目标库耗时为 export 的 ~30%。当然光这样看没参考价值,强依赖两边数据库的软硬件配置
netnr
2023-04-23 12:08:27 +08:00
不是可以全选表
netnr
2023-04-23 12:13:30 +08:00
另外提个醒 这种单边数据行比较多,可以考虑导入数据后再建索引,导数据开启缓存模式
noparking188
2023-04-23 13:08:42 +08:00
@netnr #15 感谢建议,不过换了数据库系统是不是应该重新设计索引,迁移旧库的索引感觉没必要
v2wtf
2023-04-24 11:28:28 +08:00
@noparking188 只是测试的话,可以试试 pg_loader 我用来从 mysql 导入到 pg ,还是挺好用的

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

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

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

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

© 2021 V2EX