pgloader 是一个不错的多种格式数据同步到pg 的工具,pgloader 使用postrgresql 的copy 协议进行高效的数据同步处理
特性
加载文件到内容pg
- 多种数据源格式的支持
csv、fixed 列、dbase、sqlte、ibm ixf、postgresql、mysql、sql server - 即时数据转换
在加载数据之前可以进行数据调整,清理 - 数据投影
可以加载需要字段 - 从归档文件加载数据
zip、tar、gzip 导入数据 - http(s) 支持
支持http 请求数据的加载 - 目标模式发现
加载数据的时候,pgloader 会考虑现有列,并尽可能的猜测csv 格式 - 错误停止&&错误恢复继续
在特殊情况下,源数据别破坏造成无法完全迁移,pgloader会忽略错误,并且继续迁移
其他行
在部分情况下,可能是需要完整数据的 pre
&&post
sql command
可以方便的在数据加载之前,以及之后进行一些sql 操作,比如索引、表,权限的创建管理- 仅架构&&仅数据
对于迁移可能只需要进行schema 的迁移,也可能只进行数据的迁移 - 在线alter 架构
可以在迁移的时候进行数据类型的转换 - 物化试图、即时重写
可以在迁移的时候将view 转化为table - 分发数据到citus
- 编码覆盖
mysql 实际不强制对数据中的数据进行编码,但是有时为了理解,有必要进行元数据覆盖
pgloader 可以帮助做这样的事情 - 持续迁移
可以让我们的数据库迁移类似持续集成一样,可以增强我们迁移的信心
参考资料
https://pgloader.readthedocs.io/en/latest/
https://github.com/dimitri/pgloader