跳转到主要内容
Chinese, Simplified

介绍

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

讨论:请加入知识星球【首席架构师圈】或者飞聊小组【首席架构师智库】

Tags
 
Article
知识星球
 
微信公众号
 
视频号