kettle实现从api接口全量抽取数据到数据库中

Posted 大威天龙豁哈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kettle实现从api接口全量抽取数据到数据库中相关的知识,希望对你有一定的参考价值。

1.获取api接口的url地址,这个客户会提供相应的api接口

2.根据接口的信息在数据库中建表和字段

 3.kettle作业整体流程图如下

4.设置表名,变量名是tab_name(这个起什么名字都可以)

值ods_school_floor_area是第2步你在数据库中建的表的名字

5.清空表作业下面新建一个执行SQL脚本,写入truncate table $tab_name; 这个的意思是删除表,表的名字引用的变量(我这里有很多表所以把表名设置了变量,这样不用每一个清空表都建立一个转换,如果你只有一个表的话可以不用变量名,直接删除表名)

6.获取token作业下新建转换

7.获取token作业下的生成记录

字段名(什么都可以)这里叫url

值是你api接口 的url地址加上App key、App secret(客户提供的App key、App secret)

8.HTTP client

字段中获取url打勾

url字段名是第7步你起的字段名

Encoding这里改为GBK,(是因为客户的数据库编码是GBK格式,默认的是utf-8)

结果字段名是接口返回名result(这里根据接口返回名为准,客户这里返回名叫result)

 

9.API解析

从字段获取源选择第8步的返回名result

10.字段名称为token,路径是接口下的$.result.access_token

 

11.token设置一个变量名

12.获取页数

13.获取页数下的转换

14.获取上一步的token变量

15.javascript代码,问号前面的是api接口网址,后面access_token是键值,后面的token是变量,最后的per_page表示当前的页面的数据条数。

字段名随便起这里叫url_js

 16.HTTP client这里跟第8步差不多

17.api解析

 

18.字段这里名称为page,路径是返回内容的最大页数

19.设置变量,变量名为最大页码数max_page

20.这里设置变量页数page

21.检验字段的值,变量名选择第20步的page,成功条件的值选择第19步的max_page

22.JavaScript

23.最后一步获取信息

 

24.获取变量

 25.JavaScript代码和前面15步一样,字段名称换一个

 

26.HTTP client

27.api解析

 

28.字段 ,这里的名称对应第2步数据库中的字段名,路径也是差不多的返回内容+返回数据信息+字段名

29.获取系统时间,用来获取etl抽取时间

30.表输出选择目标表

31.数据库字段把多余的删掉只留数据库内的字段,1234都删掉,在数据库内多建立一个time字段,然后留一个time字段用来查看ETL的抽取时间

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

kettle全量抽取---抽取MySQL数据到HDFS

问题描述:抽取到的.parquet文件在HDFS上的/user/hive/warehouse/itcast_ods.db/目录下,.parquet文件和表在同一级目录,且hive分区未正常生成。

解决方案-----由于配置时的粗心,导致hive表的分区未正常建立。在全量抽取作业的全量抽取数据转换部分,配置Parquet output:

如图配置完后,保存并重新执行作业即可。

以上是关于kettle实现从api接口全量抽取数据到数据库中的主要内容,如果未能解决你的问题,请参考以下文章

怎么使用kettle进行增量数据的抽取

怎么利用kettle从一个接口中获取数据

kettle交换数据,插入更新报错,怎么解决?

Kettle-7.0增量抽取订单数据

Kettle-7.0增量抽取订单数据

kettle实现单表增量抽取