使用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中。

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


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android11vivox21刷机包,vivo x21旧版官方固件rom系统刷机包

这是vivo x21旧版官方固件rom系统刷机包,可以做备用,降级可用!!vivo x21已经提示更新了,如果你的手机更新之后系统没有之前好用的,可以选择降级用,直接完整版的固件rom包下载,解压出…

集结阿里云数据库最强阵容 DTCC 2019 八大亮点抢先看

2019年5月8日-5月10日,由国内知名IT技术社区主办的数据库技术交流盛会——DTCC 2019将在北京新云南皇冠假日大酒店召开。数据风云,十年变迁,DTCC见证并铭记了国内数据库技术的关键成长历程。作为DTCC的老朋友和全球领先的云计算厂商&#xff…

行!看到抖音上Python程序员晒得工资条,我沉默了......

Python上抖音热搜了?作为短视频爱好者最近刷到了一个Python工程师的工资条然后我默默的打开看了然后我默默的关闭了我想这个工资算下来好像也不算高我就去其他渠道搜索了一下相关的Python工作岗位的工资好吧,都是比这个工资更高的(拉勾网3.2日…

为什么强烈禁止开发人员使用isSuccess作为变量名

在日常开发中,我们会经常要在类中定义布尔类型的变量,比如在给外部系统提供一个RPC接口的时候,我们一般会定义一个字段表示本次请求是否成功的。 关于这个"本次请求是否成功"的字段的定义,其实是有很多种讲究和坑的&am…

现代IM系统中的消息系统架构 - 模型篇

前言 在架构篇中我们介绍了现代IM消息系统的架构,介绍了Timeline的抽象模型以及基于Timeline模型构建的一个支持『消息漫游』、『多端同步』和『消息检索』多种高级功能的消息系统的典型架构。架构篇中为了简化读者对Tablestore Timeline模型的理解,概要…

必看!Spark 进阶之路之「SparkSQL」入门概述 | 博文精选

作者 | Alice菌责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于视觉中国在之前的文章中,我们已经完成了对于Spark核心SparkCore的详细介绍。而今天想为为大家介绍的是SparkSQL的概述。什么是Spark SQL?Spark SQL是Spark用来处理结构化数据的一个模块…

Discord 公司如何使用 Cassandra 存储上亿条线上数据

Discord 是一款国外的类似 YY 的语音聊天软件。Discord 语音聊天软件及我们的 UGC 内容的增长速度比想象中要快得多。随着越来越多用户的加入,带来了更多聊天消息。2016 年 7 月,每天大约有 4 千万条消息;2016 年 12 月,每天超过亿…

Android10弹出截屏对话框,Android一个美丽而聪明的警告对话框SweetAlert

由JavaScript启发SweetAlert安卓对话框截图建立使用SweetAlertDialog最简单的方法是将图书馆作为AAR依赖添加到您的构建。Maven的cn.pedant.sweetalertlibrary1.3aar摇篮repositories {mavenCentral()}dependencies {compile cn.pedant.sweetalert:library:1.3}用法秀物质文明S…

shell脚本触发java程序支持传参补跑_01

文章目录一、java程序1. 创建java项目2. 创建包结构3. 创建java类4. 编译5. 编译后的包结构总览二、shell脚本2.1. 创建基础目录2.2. 上传项目到指定目录2.3. 创建基础脚本2.4. 赋予脚本执行权限三、案例测试3.1. 测试不传参数3.2. 测试传参数一、java程序 1. 创建java项目 i…

深度 | API 设计最佳实践的思考

API 是模块或者子系统之间交互的接口定义。好的系统架构离不开好的 API 设计,而一个设计不够完善的 API 则注定会导致系统的后续发展和维护非常困难。 接下来,阿里巴巴研究员谷朴将给出建议,什么样的 API 设计是好的设计?好的设计…

如果你觉得 Git 很迷惑人,那么这份小抄正是为你准备的!

作者 |Maxence Poutord责编 | Carol来源 | 漫话编程封图 | CSDN付费下载于视觉中国如果你觉得 git 很迷惑人,那么这份小抄正是为你准备的!请注意我有意跳过了 git commit、git pull/push 之类的基本命令,这份小抄的主题是 git 的一些「高级」…

android 16 登陆,那些年我们一起养过的电子鸡登陆Android平台

看到下面的图片大家有没有眼前一亮的感觉,这不就是我们那些年一起养过电子鸡(电子宠物)嘛,或许现在的孩子们看来根本没什么可玩的,与iPad,PSP,3DS什么的没法比呀。可就是这个简单的玩具却带给了曾经的我们无穷的乐趣,甚…

Apache Cassandra 在 Facebook 的应用

谁说 Facebook 弃用 Cassandra?相反 Facebook 拥有全世界最大的单个 Cassandra 集群部署,而且他们对 Cassandra 做了很多性能优化,包括 Cassandra on RocksDB 以提升 Cassandra 的响应时间。 在 Instagram (Instagram是Facebook公…

AI战“疫“之路:​揭秘高精准无感测温系统的全栈AI 技术

在这个全民抗疫的特殊时期,今年的春节返潮来得比往年迟了许多。如今不少企业结束了远程办公,开始陆续复工,一时间,无论是重点防控的机场、火车站,还是学校、企业、社区等密集型场所,都安排了密集的防疫驻扎…

android翻盘效果,行情艰难,Android初中级面试题助你逆风翻盘,每题都有详细答案...

码个蛋(codeegg) 第 905 次推文作者:夜猫少年链接:https://juejin.im/post/5c8211fee51d453a136e36b0Activity篇1、说下Activity生命周期 ?参考解答:在正常情况下,Activity的常用生命周期就只有如下7个onCreate()&…

蚂蚁金服开源的机器学习工具 SQLFlow,有何特别之处?

近日,蚂蚁金服副 CTO 胡喜正式宣布开源机器学习工具 SQLFlow,他在大会演讲中表示:“未来三年,AI 能力会成为每一位技术人员的基本能力。我们希望通过开源 SQLFlow,降低人工智能应用的技术门槛,让技术人员调…

阿里云Kubernetes服务上从零搭建GitLab+Jenkins+GitOps应用发布模型的实践全纪录

关于GitOps的介绍,可以参考 GitOps:Kubernetes多集群环境下的高效CICD实践 1. 在 容器服务控制台 创建kubernetes集群 1.1 新建Kubernetes集群: 1.2 新建命名空间gitops 我们将会把gitlab和jenkins全部部署到此命名空间下 2. 创建GitLab应用 &#x…

炸了!看到抖音上Python程序员晒得工资条,我沉默了......

Python上抖音热搜了?作为短视频爱好者,最近刷到了一个Python工程师的工资条:看完后,我相信大家和我一样,what,Python这么时候值钱了?今天就把真实市场环境给揭开!Python岗位大厂30K起&#xff1…

Pandas时序数据处理入门

作为一个几乎每天与时间序列数据打交道的人员,我发现panda Python包在时间序列的操作和分析方面有强大优势。 这篇关于panda时间序列数据处理的基本介绍可以带你入门时间序列分析。本文将主要介绍以下操作: 创建一个日期范围处理时间戳数据将字符串数据转换为时间…

linux shell脚本关闭指定端口号的进程

关闭指定进程中关键词的进程,最好找一个唯一标识 例如:项目名称 等等 文章目录一、管道方式1. 关闭指定程序进程号2. 关闭指定端口号的进程(推荐使用)3. 关闭指定进程关键词的进程(推荐使用)4. 操作记录5. 知识补充二、jps方式2.1. 使用场景说明2.2. 不同…