介绍
pgloader从各种来源加载数据到PostgreSQL。它可以转换动态读取的数据,并在加载前后提交原始SQL。它使用复制PostgreSQL协议将数据流到服务器,并通过填写一对reject.dat和reject.log文件来管理错误。
pgloader知道如何从不同的来源读取数据:
- 文件
- CSV
- Fixed Format
- DBF
- 数据库
- SQLite
- MySQL
- MS SQL Server
- PostgreSQL
- Redshift
pgloader知道如何使用PostgresQL协议针对不同的产品:
- PostgreSQL
- Citus
- Redshift
pgloader提供的自动化程度取决于数据源类型。对于CSV和固定格式文件,必须向pgloader提供预期输入属性的完整描述。对于数据库,pgloader连接到live服务,并知道如何直接从它获取所需的元数据。
特征矩阵
下面是根据源数据库引擎所支持的特性的比较。一些不支持的功能可以添加到pgloader中,只是还没有人需要这样做。那些功能用转述动词标记。当特性对所选的源数据库没有意义时,将使用空单元格。
Feature | SQLite | MySQL | MS SQL | PostgreSQL | Redshift |
---|---|---|---|---|---|
One-command migration | ✓ | ✓ | ✓ | ✓ | ✓ |
Continuous Migration | ✓ | ✓ | ✓ | ✓ | ✓ |
Schema discovery | ✓ | ✓ | ✓ | ✓ | ✓ |
Partial Migrations | ✓ | ✓ | ✓ | ✓ | ✓ |
Schema only | ✓ | ✓ | ✓ | ✓ | ✓ |
Data only | ✓ | ✓ | ✓ | ✓ | ✓ |
Repeatable (DROP+CREATE) | ✓ | ✓ | ✓ | ✓ | ✓ |
User defined casting rules | ✓ | ✓ | ✓ | ✓ | ✓ |
Encoding Overrides | ✓ | ||||
On error stop | ✓ | ✓ | ✓ | ✓ | ✓ |
On error resume next | ✓ | ✓ | ✓ | ✓ | ✓ |
Pre/Post SQL commands | ✓ | ✓ | ✓ | ✓ | ✓ |
Post-Schema SQL commands | ✗ | ✓ | ✓ | ✓ | ✓ |
Primary key support | ✓ | ✓ | ✓ | ✓ | ✓ |
Foreign key support | ✓ | ✓ | ✓ | ✓ | |
Online ALTER schema | ✓ | ✓ | ✓ | ✓ | ✓ |
Materialized views | ✗ | ✓ | ✓ | ✓ | ✓ |
Distribute to Citus | ✗ | ✓ | ✓ | ✓ | ✓ |
有关特性的详细信息,请参阅数据库源的特定参考页面。
对于某些特性,缺少支持只意味着其他来源不需要该特性,比如覆盖关于表或列的MySQL编码元数据的功能。这个列表中只有MySQL完全不能保证文本编码。或者没有外键的红移。
命令
pgloader实现了自己的命令语言,这是一种DSL,允许指定要实现的数据加载和迁移的各个方面。该语言中提供的一些功能只适用于特定的源类型。
命令行
pgloader命令行接受这两个变种:
pgloader [<options>] [<command-file>]... pgloader [<options>] SOURCE TARGET
您可以使用pgloader命令语言拥有一个包含迁移规范的命令文件,也可以提供一个数据源和一个PostgreSQL数据库连接目标,以便将数据加载到其中。
原文:https://pgloader.readthedocs.io/en/latest/intro.html
本文:https://pub.intelligentx.net/pgloader-loads-data-various-sources-postgresql
讨论:请加入知识星球【首席架构师圈】或者飞聊小组【首席架构师智库】
- 登录 发表评论
- 92 次浏览
最新内容
- 3 days 3 hours ago
- 3 days 5 hours ago
- 3 days 5 hours ago
- 5 days 21 hours ago
- 6 days 4 hours ago
- 6 days 5 hours ago
- 6 days 5 hours ago
- 6 days 5 hours ago
- 1 week 3 days ago
- 1 week 3 days ago