求助,大量数据迁移:从 MS SQL Server 导出

2015-12-14 15:58:28 +08:00
 2owe

合作方说他们用的是 MS SQL Server ,可以很方便地给出 xx.mdfxx_log.ldf 文件,再或者 ACCESS 文件也行。

我请求对方提供 .sql 或者 .sql.zip 或者 .csv 都被拒绝了啊,对方说:“其实 SQL SERVER 和 ACCESS 已经是最常用的两种格式了”。可是今天之前我确实木有见过 .mdf.mdb 类型的文件呀…

额,我用的 mbp , google 了一圈也木有找到合适的工具或方法来解析这些数据 (给 mbp 用户丢人了…)。

其实数据量小也就算了, lz 凭借熟练的 sublime 快捷键技巧就可以搞定。但对方说量很大呀,每行 20 个字段左右,不压缩的数据量约 1T 左右。


求助各位大大,跟合作方要什么格式好,怎么解析呀?

2333 次点击
所在节点    问与答
12 条回复
pynix
2015-12-14 16:10:50 +08:00
mdf 是 ms 的格式,暂时无法解析吧。
pynix
2015-12-14 16:11:14 +08:00
安装 Windows 解决
rainex
2015-12-14 16:29:28 +08:00
很多年不用细节也记不清了,但大概还记得,那两种文件就是 sqlserver 的数据文件和日志记录

导入导出也很简单, windows 的控制面板里有 odbc 数据源,只要系统有那种数据库的 odbc 驱动(基本上数据库产品都有 windows 的 odbc 驱动, windows 一般自带 access 等,其它的比如 mysql 的其官网可以下载,这差不多是全世界数据库支持最多的一个数据接口标准了),然后那个界面就可以帮助你导入导出,相当于可以任意转换不同的数据库。

有些数据库有些特别的约束,那可以灵活的先取消特别的约束(建议你可以本地先装个 sqlserver ,管理器里操作,图形界面),再导出,最后自己再加上。
loading
2015-12-14 16:44:06 +08:00
装虚拟机
dong3580
2015-12-14 16:47:55 +08:00
@2owe
这么大,是倒不出来数据的。
如果不想换成 win ,倒是有个好办法,请求对方写个数据对接 api ,然后对方有个样本的数据内容给你,你这边写个程序从 api 批量或者一条条获取数据。.NET MVC 可以直接生成傻瓜式简单的增删改查 代码,然后部署,只要请求方式合理,也不会有太大的性能问题。
loading
2015-12-14 16:55:51 +08:00
最好就是你过去他们机器,装上你要的数据库,然后导入~或者自己写 python 导入
2owe
2015-12-14 17:44:00 +08:00
@pynix @rainex @loading

先感谢各位的帮助,让我在黑暗中重见光明, m(_ _)m

回复关于“使用 windows 系统” 的方案:如果是使用视图界面程序的话,由于对方提供的数据文件非常大( 1T 左右),我害怕程序会因为没有优化加载、写入而挂掉…虽然是 Windows 环境,还是倾向于命令行方式…可命令行方式的话,理论上 *nix 环境也会有解决方案才对。

也许如 @loading 所说, life is hard, why forget Python, :P (原意并不是想要挑起语言战争…)
2owe
2015-12-14 17:45:42 +08:00
@dong3580 嗯呐,和对方沟通,求对方给个数据接口。
izoabr
2015-12-14 17:46:40 +08:00
navicat 做迁移?

或者你装个 MySQL ,用 MySQL 的迁移工具从 SQL SERVER 迁移到 MySQL ,然后就随便你折腾了吧。
jarlyyn
2015-12-14 17:50:10 +08:00
navicat?

我被折腾过 sql 的.bak 格式
heaton_nobu
2015-12-14 18:12:05 +08:00
windows 虚拟机上装 sql server ,直接附加文件就可以了
bugsnail
2015-12-14 18:21:20 +08:00
对于会 ETL 的人来说, 1T 也不是很多楼主....

这样吧, 1T 的数据看你要求也不是很严格, 主要是操作麻烦一点, 建议:

使用 navicat 的 data transfer 功能, 设置好导数据的方式(最好一小部分,一小部分导)

就是要一个 mssqlserver 的数据库账号来连接读取, 而且也要看你们那的网络情况.....

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

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

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

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

© 2021 V2EX