介绍
pgloader从各种来源加载数据到PostgreSQL。它可以转换动态读取的数据,并在加载前后提交原始SQL。它使用复制PostgreSQL协议将数据流到服务器,并通过填写一对reject.dat和reject.log文件来管理错误。
pgloader知道如何从不同的来源读取数据:
- 文件CSVFixed FormatDBF
- 数据库SQLiteMySQLMS SQL ServerPostgreSQLRedshift
pgloader知道如何使用PostgresQL协议针对不同的产品:
- PostgreSQL
- Citus
- Redshift
pgloader提供的自动化程度取决于数据源类型。对于CSV和固定格式文件,必须向pgloader提供预期输入属性的完整描述。对于数据库,pgloader连接到live服务,并知道如何直接从它获取所需的元数据。
特征矩阵
下面是根据源数据库引擎所支持的特性的比较。一些不支持的功能可以添加到pgloader中,只是还没有人需要这样做。那些功能用转述动词标记。当特性对所选的源数据库没有意义时,将使用空单元格。
有关特性的详细信息,请参阅数据库源的特定参考页面。
对于某些特性,缺少支持只意味着其他来源不需要该特性,比如覆盖关于表或列的MySQL编码元数据的功能。这个列表中只有MySQL完全不能保证文本编码。或者没有外键的红移。
命令
pgloader实现了自己的命令语言,这是一种DSL,允许指定要实现的数据加载和迁移的各个方面。该语言中提供的一些功能只适用于特定的源类型。
命令行
pgloader命令行接受这两个变种:
pgloader [<options>] [<command-file>]...pgloader [<options>] SOURCE TARGET
您可以使用pgloader命令语言拥有一个包含迁移规范的命令文件,也可以提供一个数据源和一个PostgreSQL数据库连接目标,以便将数据加载到其中。