ETL
主要分享以及学习一些数据采集、数据清洗等相关的知识以及文章
mlj365
本人目前从事数据挖掘工作,技术控。
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。
就像考研一样,剩者为王!
展开
-
闲聊调度系统 Apache Airflow
开始之前Apache Airflow 是一个由开源社区维护的,专职于调度和监控工作流的 Apache 项目,于2014年10月由 Airbnb 开源,2019年1月从 Apache 基金会毕业,成为新的 Apache 顶级项目。Apache Airflow(以下简称 Airfolw )的概念相对比较复杂,比较核心的有 DAG 、Operators 、Tasks 三个概念。DAG 表示的是由很多个 Task 组成有向无环图,可以理解为 DAG 里面的一个节点,Task 的由 Operators 具体执行,Op转载 2020-06-23 14:07:09 · 693 阅读 · 0 评论 -
工作流任务调度系统:Apache DolphinScheduler
目录1 概述1.1 背景1.2 特点2 系统架构2.1 名词解释2.2 架构3 部署3.1 后端部署3.1.1 基础软件安装3.1.2 创建部署用户3.1.3 下载并解压3.1.4 针对escheduler用户ssh免密配置3.1.5 数据库初始化3.1.6 修改部署目录权限及运行参数3.1.7 执行脚本一键部署3.1.8 后端服务进程的说明3.1.9 dolphinscheduler后端服务启停3.2 前端部署3.2.1 下载并解压3.2..转载 2020-06-23 13:47:33 · 2638 阅读 · 0 评论 -
Hadoop - 任务调度系统比较
1.概述 在Hadoop应用,随着业务指标的迭代,而使其日趋复杂化的时候,管理Hadoop的相关应用会变成一件头疼的事情,如:作业的依赖调度,任务的运行情况的监控,异常问题的排查等,这些问题会是的我们日常的工作变得复杂。那么,在没有条件和精力去开发一套调度系统的情况下,我们去选择一款第三方开源的调度系统,来尽量减轻和降低我们日常工作的复杂度,也是极好的。今天,笔者给大家比较几种常见的调度系统,供大家去选择。2.内容2.1 Oozie Oozie目前是托管在Apache基金会的,开源。在...转载 2020-06-23 10:04:09 · 395 阅读 · 0 评论 -
管理ETL的处理过程需要哪些子系统(从那几个角度入手)
ETL最终需要保证整个处理过程的可靠性、可用性、可管理性。可靠性:ETL的处理过程必须始终运行。他们必须运行以提供及时的数据,这些数据的的所有细节都是值得信任的。可用性:数据仓库必须满足其承诺的服务级别可管理型:成功的数据仓库是永远无法实现的。将随着业务的发展而不断发展变化。ETL过程需要不断改进。image.png子系统二十二:任务调度器所有企业数据仓库应该具有一个健壮的调度器。整个ETL过程在可能范围内应该是可管理的。调度器不仅仅需要按照计划分派任务。调度器还需要识别和控制ET转载 2020-06-23 09:40:20 · 325 阅读 · 0 评论 -
Linux配置定时执行指定脚本
在Linux下,有时需要定时执行一些任务,如定时检测系统资源信息、定时备份数据库等操作,可以借助crontab命令,其基本命令格式如下: * * * * * {命令} 第一个*表示每xx(1-59)分钟,每分钟用*或*/1表...转载 2020-06-08 18:07:19 · 452 阅读 · 0 评论 -
命名标准管理
概述 数据建模的过程中,会对几百个甚至上千个字段进行命名,特别在一个团队中,经常会遇到这些问题: &...转载 2020-06-08 15:04:29 · 153 阅读 · 0 评论 -
python实现数据仓库的自动化开发
概述前面讲了基于元数据驱动数据仓库的开发,使数据仓库自动化,可视化。这篇讲用python来实现数仓的自动化开发 ,前提是你已经完成了需求调研和数据剖析,开始进行数据建模。自动化程序的流程如下:由于没有开发前端建模页面,需要把ods、edw、dm层建模元数据导入到元数据库里。 把每层的转换查询脚本导入元数据库。 把源库表的元数据信息通过python加载到元数据库里。 跟据建表模板自动生成每层的DDL语句。 根据程序模板自动生成每层的加载脚本。  .转载 2020-06-08 14:59:03 · 810 阅读 · 0 评论 -
kettle抽取——多平台汇总数据仓库
jdk:1.7(注意:经多次实验,6.0必须用jdk1.7,5.x的可以使用1.6jdk) 系统:64位 windows7 旗舰版 配置:内存(8G),处理器(i5-4590 CPU 3.30GHz)一、需求简介1.多个平台数据汇总到数据仓库,最后的所有表在数据仓库是完备的 注意点: a.平台1和平台2各有1200和1100张表,其中1000张表在两个平台都有,另外平台1的200张表和平台2的100张表示各自拥有的,那么数据仓库就会有1300张表,其中1000张共有表抽取到数据.转载 2020-06-05 09:35:16 · 508 阅读 · 0 评论 -
kettle-创建资源库
1.资源库的介绍 kettle资源库是用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中。 资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文件夹名称。 ...转载 2020-06-02 10:20:38 · 520 阅读 · 0 评论 -
KETTLE整架构、整库迁移(如何一次抽取200张表)
KETTLE整架构、整库迁移作业流程KETTLE模板在文章末尾,建议大家先下载,导入模板后在看文章内容!!!文章目录一、获取某个数据库,架构所有表名二、数据迁移三、案例本文使用场景:需要一次性抽取某个架构中的数据,如果迁移数据库可以不用看本篇文章。下面作业的前提是我们的目标库已经建好了表结构,本文中目标表和源表的表名是一样的。说说我工作中使用的场景:该数据为一次性数据,数据源为sqlserver的bak文件包、共210张表,目标库为oracle数据库。解决方法:将数据还原...转载 2020-06-01 23:05:41 · 1042 阅读 · 0 评论 -
kettle7.0下实现数据库整体迁移
一、采用软件自带方式1.新建一个job,创建两个DB连接:source、target(源数据库和目标数据库连接),在菜单中找到【复制多表向导】,点击进行相关操作:2.选择源数据库和目标数据库3.选择所需迁移的表4.编辑生成的job文件名:qy.kjb,和文件目录,编辑好后【Finish】5.运行qy.kjb,可在test2数据库中看到成功生成迁移来的表。二、自定义数...转载 2020-06-01 16:10:25 · 309 阅读 · 0 评论 -
用Kettle的一套流程完成对整个数据库迁移
需求:1.你是否遇到了需要将mysql数据库中的所有表与数据迁移到Oracle。2.你是否还在使用kettle重复的画着:表输入-表输出、创建表,而烦恼。下面为你实现了一套通用的数据库迁移流程。技术引导:实现之初,在kettle提供的例子中找到了一个类似的(samples\jobs\process al...转载 2020-06-01 13:51:16 · 510 阅读 · 2 评论 -
Kettle批量操作流程使用(二)---多个数据源单表批量操作
上一篇博客介绍了本次操作的一些需求和预研思路,并且对第一种方式做了测试,现在将对第二种方式做测试。虽然在网上有不少关于动态链接库的文章,但是不少是操作kettle文件,或者通过脚本去按照一定规则生成变量。好像并不是很适合我自己的任务思路,因此在借鉴他们的思路的基础上,通过多次测试,终于走通了动态链接数据...转载 2020-05-30 21:32:00 · 1160 阅读 · 0 评论 -
Kettle批量操作流程使用(一)---单个数据源多表批量操作
最近在工作上用到了kettle,目前这个开源的ETl工具相对来说比较火,用做数据抽取清洗工作很方便也很快捷。当然也还有不少的问题,比如使用过程中会发生闪退(测试了几个版本都存在),还有建好的Job和Transfer保存文件,然后再次打开的时候都是空白。抛开这些问题暂时不说,试...转载 2020-05-30 21:25:44 · 1196 阅读 · 0 评论 -
kettle8调度监控平台(kettle-scheduler)开源
背景Kettle作为用户规模最多的开源ETL工具,强大简洁的功能深受广大ETL从业者的欢迎。但kettle本身的调度监控功能却非常弱。Pentaho官方都建议采用crontab(Unix平台)和计划任务(Windows平台)来完成调度功能。所以大家在实施kettle作业调度功能的时候,通常采用以下几种...转载 2020-05-30 16:59:00 · 2035 阅读 · 2 评论 -
kettle删除指定数据
kettl进行无效数据的删除需求来源需求是这样产生的,因为我要对一张生产库中的表进行增量抽取,抽取方法是通过表中的modify字段来进行增量的,每天根据这个字段获取前一天的数据。但是这样做存在一个问题,就是如果此表发生了记录的物理删除,那么我是无法感知的,所以同步后的表中存在大量已经被删除的无效数据,使数据与源表不一致,所以,需要一种方法来删除这部分不一致的数据。设计思路如果要解决以上问题,则需要一种方式来获取...转载 2020-05-30 16:50:30 · 5141 阅读 · 0 评论 -
使用kettle过程中出现unable to create a Database Connection异常
unable to create a Database Connection异常问题与解决在使用启动kettle过程中出现Kettle / Data Integration - unable to create a Database Connection (XulException: java.lang.reflect.InvocationTargetException)异常,经过一两个小时的排查,发现是版本不对...转载 2020-05-30 16:40:59 · 1701 阅读 · 0 评论 -
Kettle集群介绍及(windows、linux)环境搭建
一、 Kettle集群概述1) Kettle集群简介 集群技术可以用来水平扩展转换,使得他们能够同时运行在多台服务器上。它将转换的工作量均分到不同的服务器上。这一部分,我们将介绍怎样配置和执行一个转换,让其运行在多台机器上...转载 2020-05-30 16:33:43 · 452 阅读 · 0 评论 -
kettle之日志有关方面的总结
job1.job日志job日志有三种:作业日志表:整体的记录作业项日志表:每个项目的日志日志通道日志表:第一次配置,因为数据库中还没有这个表,需要手动点击sql创建表,然后执行sql。日志模式:oracle等数据库种有模式概念,mysql不需要填写记录时间间隔:运行的时候多久写一次,在作...转载 2020-05-30 16:29:44 · 1929 阅读 · 0 评论 -
kettle见解文章
文章一:ETL和Kettle简介ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程。它是构建数据仓库的重要环节。数据仓库是面向主题的、集成的、稳定的且随时间不断变化的数据集合,用以支持经营管理中的决策制定过程。数据仓库系统中有可能存在着大量的噪声数据,引起的主要原因有:滥用缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化等。即便...转载 2020-05-30 15:57:36 · 584 阅读 · 0 评论 -
Kettle插件开发流程
最近正好做了有关Kettle中插件开发的工作,对Kettle插件的源码进行了一定的研究,并开发了自定义的插件,在此有些感悟,记录下来。一 Kettle插件概述Kettle的开发体系是基于插件的,平台本身提供了接口,开发者按照相关规范就可以开发出相应的插件添加到Kettle中使用,感觉这个体系设计思路很不错,非常有利于Kettle后续的扩展。初次接触Kettle插件开发可以参考GitHub上有关插件模板DummyPlugin的源码,通过对源码的分析,发现Kettle插件开发的流程还是比较简单的,以Du.转载 2020-05-30 11:49:20 · 1191 阅读 · 0 评论 -
手把手教你使用Kettle JAVA API进行数据抽取
Kettle作为一款优秀的数据抽取程序,因为高效稳定的性能,一直被广大使用者所喜爱,并且还在国内广受好评。因为其本身使用纯JAVA编写,所以其JAVA API使用起来自然也是非常简便。虽然其本身自带的组件已经非常好用,并且能够满足丰富的场景。但可能有些场景下,我们可能需要通过其他的方式来实现,本篇我们将介绍Kettle的JAVA API的使用。一、环境搭建Pentaho官方仓库:https://nexus.pentaho.org/content/groups/omni核心jar包的pom.xml配..转载 2020-05-29 17:00:58 · 1412 阅读 · 1 评论 -
使用Kettle实现数据实时增量同步
0. 前言本文介绍了使用Kettle对一张业务表数据(500万条数据以上)进行实时(10秒)同步,采用了时间戳增量回滚同步的方法。关于ETL和Kettle的入门知识大家可以阅读相关的blog和文档学习。1. 时间戳增量回滚同步假定在源数据表中有一个字段会记录数据的新增或修改时间,可以通过它对数据在时间维度上进行排序。通过中间表记录每次更新的时间戳,在下一个同步周期时,通过这个时间戳同步该时间戳以后的增量数据。这是时间戳增量同步。但是时间戳增量同步不能对源数据库中历史数据的删除操作进行同步,我们可.转载 2020-05-20 11:20:07 · 1524 阅读 · 1 评论 -
kettle性能及效率提升
Kettle数据处理的过程中难免会遇到性能瓶颈,因此性能及效率的提升成为摆在面前的问题,因此笔者罗列一些常用的优化建议。kettle优化索引的正确使用数据抽取SQL优化kettle优化尽量使用数据库连接池;尽量提高批处理的commit size;尽量使用缓存,缓存尽量大一些(主要是文本文件和数据流);Kettle 是Java 做的,尽量用大一点的内存参数启动Kettle;可以使用...转载 2020-05-13 18:23:22 · 1916 阅读 · 0 评论 -
采用Kettle分页处理大数据量抽取任务
需求: 将Oracle数据库中某张表历史数据导入MySQL的一张表里面。 源表(Oracle):table1 目标表(MySQL):table2 数据量:20,000,000 思路: 由于服务器内存资源有限,所以,无法使用Kettle一次性从源表导入目标表千万级别的数据,考虑采用分页导入的方式来进行数据传输,即: 根据实际情况设置一个每次处理的数据量,比如:5,000条,然后根据总的数据条数和每次处理的数据量计算出一共分几页, 假设总.转载 2020-05-13 18:03:08 · 1106 阅读 · 0 评论 -
【数据仓库】——数据仓库命名规范
一、概述 数据模型是数据管理的分析工具和交流的有力手段;同时,还能够很好地保证数据的一致性,是实现商务智能(Business Intelligence)的重要基础。因此建立、管理一个企业级的数据模型,应该遵循标准的命名和设计规范。二、命名规范 1.表属性规范 表名 ODS...转载 2020-05-13 15:32:39 · 1337 阅读 · 0 评论 -
kettle 批量抽取多个表数据
使用kettle从一个库将数据抽取到另一个库,单个表一个转换就可以简单实现了,那如果是好多表呢,难道要建若干个转换来实现这个功能吗,那就尝试做一个批量抽取的job吧!整个抽取过程包括一个job和两个trans,先来看看整个job吧: job的start和success就没什么可说的了,两个脚本是关键,接下来一步一步来。首先是文件输入这个trans: 这个trans的作用是提取表名并放入结果集中,表输入是用一段SQL语句将表名输出,字段选择是将SQL输出的那个含有表名的字段提取出来并重新.转载 2020-05-13 11:26:51 · 1065 阅读 · 0 评论 -
如何在linux部署kettle并实现定时调度任务
最近工作中需要在linux部署kettle做数据抽取转换的工作,在此做个记录(略过安装jdk部分)一:部署kettle1:创建一个目,将下载好的kettle解压后放在该文件夹下。# mkdir /usr/kettle将kettle对应的pdi-ce-7.1.0.0-12文件夹放到该目录下# cd data-integration# chmod +x *.sh //以.sh结尾的文件必须拥有执行权限,如果没有,请赋予2:测试安装是否成功在kettle的data-integration目录中执转载 2020-05-11 19:07:45 · 2994 阅读 · 1 评论 -
kettle 批量抽取多个表数据
使用kettle从一个库将数据抽取到另一个库,单个表一个转换就可以简单实现了,那如果是好多表呢,难道要建若干个转换来实现这个功能吗,那就尝试做一个批量抽取的job吧!整个抽取过程包括一个job和两个trans,先来看看整个job吧: job的start和success就没什么可说的了,两个脚本是关键,接下来一步一步来。首先是文件输入这个trans: 这个trans的作用是提取表名并放入结果集中,表输入是用一段SQL语句将表名输出,字段选择是将SQL输出的那个含有表名的字段提取出来并重新.转载 2020-05-11 16:13:08 · 1766 阅读 · 0 评论 -
kettle案例-----linux使用kettle
我们之前学习的kettle操作都是在windows中进行可视化的操作,但是在使用过程中发现一些问题。 比如我们的数据文件是放在linux服务器中的,如果要清洗则...转载 2020-05-09 11:14:07 · 1451 阅读 · 0 评论 -
kettle系列之五kettle远程执行和调度
参考http://www.cnblogs.com/John-Young/p/6349252.htmlhttps://wenku.baidu.com/view/fb20216858fafab...转载 2020-05-07 11:33:05 · 1575 阅读 · 0 评论 -
在Linux上部署Kettle环境
首先我们有一个正常安装的,桌面版的Linux.Kettle的应用程序是Linux版本与Windows版本在同一个文件夹下共存的,所以可以直接把本机上的Kettle解压,通过FTP工具上传到Linux目录下。我们这里直接运行Kettle目录下的Spoon.sh看能不能进入Kettle的设计界面,发现它报了JDK版本异常的错误。我们这里通过java -version命令查询当前OS...转载 2020-05-07 09:18:57 · 220 阅读 · 0 评论 -
Kettle — 安装和部署
前提Kettle是纯Java编写的ETL开源工具,目前Kettle7和Kettle8都需要Java8或者以上才能正常运行。所以开运行Kettle前先检查Java环境是否正确配置,Java版本...转载 2020-05-06 14:16:18 · 1298 阅读 · 0 评论 -
kettle插件开发pom配置
目录背景介绍pom配置参考资料背景介绍看过网上很多介绍kettle插件开发的博文,在真正开发之前存在很多繁琐的工作,例如:将kettle工具中的lib包安装到本地maven仓库。通常会执行如下操作:打开kettle/data-integration/lib目录,执行如下命令mvn install:install-file -Dfile=./kettle-core-6.1.0.1-196...转载 2020-04-24 18:40:57 · 647 阅读 · 0 评论 -
数据仓库(四)之ETL开发
概述 ETL是数据仓库的后台,主要包含抽取、清洗、规范化、提交四个步骤,传统数据仓库一般分为四层模型。 ...转载 2020-04-15 09:16:30 · 919 阅读 · 0 评论 -
Kettle部署到linux系统
Kettle部署到linux系统准备工作安装JDK;(略) 准备.kjb或.ktr转换文件。(以CRM角色用户同步知识库为例)文件夹WORK\CRMKNOW\*. 准备pdi-ce-6.1.0.1-196.tar.gz文件(Kettle文件)。安装步骤复制pdi-ce-6.1.0.1-196.ta...转载 2020-04-09 15:20:02 · 466 阅读 · 0 评论 -
Kettle8.2.0.0-R源码编译及IDEA中调试运行(完美解决版)
步骤一:源码maven工程导入github下载t...转载 2020-04-09 09:10:06 · 2370 阅读 · 0 评论 -
Kettle 9.0 源码本地部署编译
Kettle源码包编译指南本次构建基于Kettle源码的9.0快照版本环境准备maven 3+JDK 1.8下载settings.xml文件,存放于.m2文件下源码下载源码下载地址:https://github.com/pentaho/pentaho-kettle.git开始构建进入源文件根目录maven命令构建:mvn clean install -Dmaven.te...转载 2020-04-02 09:57:55 · 4028 阅读 · 1 评论