使用kettle将数据导入ADB for PostgreSQL

背景信息

Kettle(现也称为Pentaho Data Integration,简称PDI)是一款非常受欢迎的开源ETL工具软件,主要用于数据整合、转换和迁移。Kettle除了支持各种关系型数据库,HBase MongoDB这样的NoSQL数据源外,它还支持Excel、Access这类小型的数据源。并且通过这些插件扩展,kettle可以支持各类数据源。
下图显示了Kettle和ADB for PostgreSQL之间的关系,数据源通过Kettle进行ETL或数据集成操作以后可以和ADB for PostgreSQL进行交互:
image

本文将介绍如何通过kettle将外部数据迁移到AnalyticDB for PostgresSQL。

准备工作

使用Kettle将外部数据导入AnalyticDB for PostgresSQL之前,需要完成以下准备工作。

  • 在本地主机中安装kettle
  • 在AnalyticDB for PostgreSQL中创建目标数据库、模式和表。

通过JDBC接口导入数据到ADB for PostgreSQL

Kettle支持使用通用的JDBC接口,从各种数据库源导入到ADB for PostgreSQL中。以下就以MySQL为例说明如何通过JDBC接口导入数据到ADB for PostgreSQL中。

  1. 在Kettle中新建一个转换。
  2. 在转换中新建一个MySQL数据库连接作为输出源,详细的参数配置如下表所示。
    配置参数时,不要勾选Use Result Streaming Cursor。

image

配置项 说明
连接名称 数据连名
连接类型 选择MySQL
连接方式 选择Native(JDBC)
主机名 MySQL的连接地址
数据库名称 MySQL的数据库名
端口号 连接地址对应的端口号
用户名 用户名
密码 用户密码

​3. 完成上述参数配置后,单击测试测试连通性,测试通过后单击确认。

  1. 在转换中新建一个PostgreSQL数据库连接作为输入源,详细的参数配置如下表所示。
    image
配置项 说明
连接名称 数据连名
连接类型 选择Greenplum
连接方式 选择Native(JDBC)
主机名 AnalyticDB for PostgreSQL的连接地址
数据库名称 AnalyticDB for PostgresSQL的数据库名
端口号 连接地址对应的端口号
用户名 用户名
密码 用户密码

​5. 完成上述参数配置后,单击测试测试连通性,测试通过后单击确认。

  1. 在kettle左侧核心对象的输入中,找到表输入,并将其拖动入到工作区。
    image
  2. 双击工作区的表输入,在表输入对话框中进行参数配置。
    image
  3. 在Kettle左侧核心对象的输出中,找到表输出,并将其拖动入到工作区。
    image
  4. 双击工作区的表输出,在表输出对话框中进行参数配置。
    image
  5. 新建一条表输入到表输出的连接线。
    image
  6. 单击白色三角箭头运行转换,观察运行日志和运行状态。

待MySQL数据成功导入AnalyticDB for PostgreSQL后,您就可以使用AnalyticDB for PostgreSQL进行数据分析。

通过外部文件方式导入数据到ADB for PostgreSQL

Kettle支持从各种外部文件的数据源导入到ADB for PostgreSQL中。下面步骤举例说明通过从外部文件中导入数据到ADB for PostgreSQL中。

  1. 在Kettle中新建一个转换。
  2. 在转换中新建一个文本文件输入作为输出源。
    image
  3. 双击文本文件输入的图表,选择输入的文本文件。
    image
  4. 在“内容”选项卡中配置输入文件的分隔符。
    image
  5. 在“字段”选项卡定义输入文件表中的字段。
    image
  6. 在转换中新建一个PostgreSQL数据库连接作为输入源,详细的参数配置如下表所示。
    image
  7. 完成上述参数配置后,单击测试测试连通性,测试通过后单击确认。
  8. 在Kettle左侧核心对象的输出中,找到表输出,并将其拖动入到工作区。
    image
  9. 双击工作区的表输出,在表输出对话框中进行参数配置:
    image
  10. 新建一条文件输入到表输出的连接线,单击白色三角箭头运行转换,观察运行日志和运行状态。
    image

待数据成功导入AnalyticDB for PostgreSQL后,您就可以使用AnalyticDB for PostgreSQL进行数据分析。

猜你喜欢

转载自yq.aliyun.com/articles/701248