minio+kettle+airflow实现采集数据自动入库

一、minio介绍

Minio 是个基于 Golang 编写的开源对象存储套件,虽然轻量,却拥有着不错的性能。对于中小型企业,如果不选择存储上云,那么 Minio 是个不错的选择,麻雀虽小,五脏俱全。关于minio在服务器上的部署这里不做赘述,网上有很多教程,可以自行搜索。

1.1minio界面

部署好后可以通过minio上传非结构化的数据文件,比如常用的excel表格、图片等。如果我们自己学习用,那可以直接通过xshell等工具,实现数据直接传输到服务器。但是生产环境下经常是需要我们做好程序或者平台,供业务人员使用,因此需要一个文件传输的工作,此处选用minio。

 二、kettle介绍

Kettle最早是一个国外开源的ETL工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。分为商业版与开源版。可以在 Window、Linux、Unix 上运行,绿色无需安装,数据抽取高效稳定。Kettle 中文名称叫水壶。它允许管理来自不同数据库的数据,把各种数据放到一个壶里,然后以一种指定的格式流出。

Kettle几乎支持市面上所有的数据库系统,对于传统数仓来说这是镇海神针,传统数仓分析必备神器。通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

将需要入数据库的数据通过etl工具来实现,对于数据量小kettle是个不错的选择,上手快,门槛低。

2.1kettle界面

 

三、airflow介绍

​ Airflow是一个可编程,调度和监控的工作流平台,基于有向无环图(DAG),airflow可以定义一组有依赖的任务,按照依赖依次执行。airflow提供了丰富的命令行工具用于系统管控,而其web管理界面同样也可以方便的管控调度任务,并且对任务运行状态进行实时监控,方便了系统的运维和管理。

本次采用airflow调度工具,实现自动化数据入库。

3.1airflow界面

 四、实现过程

 4.1数据上传

首先通过minio上传功能,将数据文件上传至服务器。

 

4.2kettle进行数据清洗

本次数据文件是excel,以此为例。

整个工作流是这样的:

  1. 涉及一个作业与做个转换。
  2. 设置变量(可有可无)
  3. 当一个作业成功跑完,源文件的会从上传文件夹归并到完成文件夹,如果检查没有对应文件,则改程序直接跳转到成功不继续执行。
  4. 清空过程表,每次上传的数据首先会写入到过程表中,然后在读取写入到目标表中。
  5. 导入目标表,没什么好说的,纯sql脚本
  6. 修改文件,成功后源文件会移动到归档文件夹中
  7. 失败通知,这个是email通知。

kettle很好操作的,这边讲一下我这个项目的主要几个点:

由于数据是人工采集的,而且没有设置唯一字段,因此,这边需要在入库前对一些字段组合成md5密码,以区分数据是否重复。

update ods.v_stu_temp
set file_uuid = MD5(concat(ifnull(factor_id,""),ifnull(org_id,""),ifnull(stat_year,""),ifnull(num_disciplines,"")))

从中间表导入到目标表时,sql脚本中添加过滤条件即可,匹配中间表md5编码不在目标表中的则insert写入。

4.3airflow任务调度

最后写好airflow调度脚本,上传至/opt/airflow/dags,dags目录下,然后刷新页面就可以看到web页面端有新的任务,点击启动即可

 4.4bi平台数据查看

最后通过bi平台连接数据库,查看数据库数据,实现数据查看

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据砼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值