使用Kettle导入数据到ADB for PostgreSQL
Kettle简介
Kettle(现也称为Pentaho Data Integration,简称PDI)是一款非常受欢迎的开源ETL工具软件,主要用于数据整合、转换和迁移。Kettle除了支持各种关系型数据库,HBase MongoDB这样的NoSQL数据源外,它还支持Excel、Access这类小型的数据源。并且通过这些插件扩展,kettle可以支持各类数据源。
下图显示了Kettle和ADB for PostgreSQL之间的关系,数据源通过Kettle进行ETL或数据集成操作以后可以和ADB for PostgreSQL进行交互:
Kettle支持的数据来源非常丰富,主要包括以下分类:
- 表输入
- 文本文件输入
- 生成记录/自定义常量
- 获取系统信息
- 各类格式文件输入
- Json输入
- 以及其他输入
更详细的输入可以从界面中的“核心对象”的“输入”分类中查看。
Kettle支持的表输入来源自数据库连接中使用SQL语句获取,其中数据库连接支持非常丰富的连接方式,包括:
- Native(JDBC)连接
- ODBC连接
- OCI连接
- JNDI连接
通过这些连接方式,可以支持连接大多数主流数据库,如Oracle, SQL Server, MySQL, DB2, PostgreSQL, Sybase, Teradata等等,更详细的连接信息可以参考官方文档:https://help.pentaho.com/Documentation/8.2/Setup/Configuration/Define_Data_Connections
Kettle导入到ADB for PostgreSQL
Kettle支持导入到ADB for PostgreSQL的方式
目前,Kettle支持的数据导入到ADB for PostgreSQL的方式有:
导入方式 | 说明 |
---|---|
表输出 (INSERT方式) |
采用JDBC作为导入方式 支持批量插入,批量插入使用JDBC的batch insert方法 |
批量加载 (COPY方式) |
采用COPY作为导入方式 对于大表,COPY方式性能达到批量插入性能的10倍左右 |
表输出(INSERT方式)导入会流过Master节点并做解析之后分布到对应的Segment节点上,这种方式相对较慢并且不适合导入大量数据。批量加载(COPY方式)导入方式比INSERT语句插入多行的效率更高。
以下将分别介绍如何通过这两种方式将外部数据迁移到AnalyticDB for PostgresSQL。
准备工作
使用Kettle将外部数据导入AnalyticDB for PostgresSQL之前,需要完成以下准备工作。
- 在本地主机中安装kettle
- 在AnalyticDB for PostgreSQL中创建目标数据库、模式和表。
表输出方式导入数据到ADB for PostgreSQL
Kettle采用表输出方式,支持使用通用的JDBC接口,从各种数据库源导入到ADB for PostgreSQL中。以下就以MySQL为例说明如何通过JDBC接口导入数据到ADB for PostgreSQL中。
1.在Kettle中新建一个转换。
2.在转换中新建一个MySQL数据库连接作为输出源,详细的参数配置如下表所示。
配置参数时,不要勾选Use Result Streaming Cursor。
配置项 | 说明 |
---|---|
连接名称 | 数据连名 |
连接类型 | 选择MySQL |
连接方式 | 选择Native(JDBC) |
主机名 | MySQL的连接地址 |
数据库名称 | MySQL的数据库名 |
端口号 | 连接地址对应的端口号 |
用户名 | 用户名 |
密码 | 用户密码 |
3.完成上述参数配置后,单击测试测试连通性,测试通过后单击确认。
4.在转换中新建一个Greenplum数据库连接作为输入源,详细的参数配置如下表所示。
配置项 | 说明 |
---|---|
连接名称 | 数据连名 |
连接类型 | 选择Greenplum |
连接方式 | 选择Native(JDBC) |
主机名 | AnalyticDB for PostgreSQL的连接地址 |
数据库名称 | AnalyticDB for PostgresSQL的数据库名 |
端口号 | 连接地址对应的端口号 |
用户名 | 用户名 |
密码 | 用户密码 |
5.完成上述参数配置后,单击测试测试连通性,测试通过后单击确认。
6.在kettle左侧核心对象的输入中,找到表输入,并将其拖动入到工作区。
7.双击工作区的表输入,在表输入对话框中进行参数配置。
8.在Kettle左侧核心对象的输出中,找到表输出,并将其拖动入到工作区。
9.双击工作区的表输出,在表输出对话框中进行参数配置。
10.新建一条表输入到表输出的连接线。
11.单击白色三角箭头运行转换,观察运行日志和运行状态。
待MySQL数据成功导入AnalyticDB for PostgreSQL后,您就可以使用AnalyticDB for PostgreSQL进行数据分析。
批量加载方式导入数据到ADB for PostgreSQL
Kettle支持使用批量加载方式(COPY方式)导入数据到ADB for PostgreSQL中。下面步骤举例说明通过从外部文件中批量加载数据到ADB for PostgreSQL中。
- 在Kettle中新建一个转换。
- 在转换中新建一个文本文件输入作为输出源。
- 双击文本文件输入的图表,选择输入的文本文件。
- 在“内容”选项卡中配置输入文件的分隔符。
- 在“字段”选项卡定义输入文件表中的字段。
- 在转换中新建一个Greenplum数据库连接作为输入源,详细的参数配置如下表所示。
- 完成上述参数配置后,单击测试测试连通性,测试通过后单击确认。
- 在Kettle左侧核心对象的批量加载中,找到PostgreSQL批量加载,并将其拖动入到工作区。
- 新建一条文件输入到PostgreSQL批量记载的连接线。
- 双击工作区的PostgreSQL批量加载图表,在批量加载对话框中进行参数配置:
- 单击白色三角箭头运行转换,观察运行日志和运行状态
待数据成功导入AnalyticDB for PostgreSQL后,您就可以使用AnalyticDB for PostgreSQL进行数据分析。
作者:陆封
原文链接
本文为云栖社区原创内容,未经允许不得转载。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
在浏览器中进行深度学习:TensorFlow.js (十)构建一个推荐系统
推荐系统是机器学习的一个常见应用场景,它用于预测用户对物品的“评分”或“偏好”。通常推荐系统产生推荐列表的方式通常有两种: 协同过滤以及基于内容推荐,或者基于个性化推荐。协同过滤方法根据用户历史行为(例如其购买的、选择的、评价过的物品等)结合其他用户的相似决策建立模型。这种模型可用于预测用户对哪些物品可能感兴趣(或用户对物品的感兴趣程度)。 基于内容推荐利用一些列有关物品的离散特征,推荐出具有类似性质的相似物品。 如上图所示,简单的说,协同过滤就是给类似的用户推荐类似的东西,因为用户老王和老李比较像,而老李喜欢玩炉石传说,所以我们给老王也推荐炉石传说。而基于内容的推荐就是因为老王喜欢玩王者荣耀,而撸啊撸是和王者荣耀类似的游戏,所以我们给老王推荐撸啊撸。 好了,那么我们就来利用TensorflowJS构建一个电影推荐系统。 数据源 第一步是数据源,要推荐电影,网上有很多的相关网站。例如IMDB。这里我们使用另一大家可能不太熟悉的数据源movielens,数据分享在grouplens。 这里我们主要使用其中的两张表,电影数据movies.csv和用户评分数据ratings.csv id,t...
-
下一篇
怎么让代码不再臃肿,写的像诗一样优雅
基本类型偏执 基本类型偏执(Primitive Obsession) 使用基本类型而不是小对象来实现简单任务(例如货币、范围、电话号码字符串等)。 使用常量编码信息(例如一个用于引用管理员权限的常量USER_ADMIN_ROLE = 1)。 使用字符串常量作为字段名在数组中使用。 问题原因 类似其他大部分坏味道,基本类型偏执诞生于类初建的时候。一开始,可能只是不多的字段,随着表示的特性越来越多,基本数据类型字段也越来越多。 基本类型常常被用于表示模型的类型。你有一组数字或字符串用来表示某个实体。 还有一个场景:在模拟场景,大量的字符串常量被用于数组的索引。 解决方法 大多数编程语言都支持基本数据类型和结构类型(类、结构体等)。结构类型允许程序员将基本数据类型组织起来,以代表某一事物的模型。 基本数据类型可以看成是机构类型的积木块。当基本数据类型数量成规模后,将它们有组织地结合起来,可以更方便的管理这些数据。 如果你有大量的基本数据类型字段,就有可能将其中部分存在逻辑联系的字段组织起来,形成一个类。更进一步的是,将与这些数据有关联的方法也一并移入类中。为了实现这个目标,可以尝试以类取代类...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 面试大杂烩
- MySQL数据库在高并发下的优化方案
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS关闭SELinux安全模块
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果