数据仓库
分享和学习数据仓库的相关知识和文章。
mlj365
本人目前从事数据挖掘工作,技术控。
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。
就像考研一样,剩者为王!
展开
-
数据平台调度系统
对于规模以上的应用来说,调度系统已经是必不可少的组成部分,尤其在基于数据分析的后台应用大量增长的今天,健壮的调度任务管理已经是非常重要的一环。1. 调度问题的由来调度问题是怎么来的当你的网站是个简单的blog,而且并不需要跟外部交互的时候,你大概不需要调度任务,因为此时网站需要处理的任务仅限于 即时交互 , 即用户想使用一个功能,你就立即给他就是了,如同你在简书上写一篇文章,一点保存,这篇文章立即就保存到网站的后台服务器中去了,这也是互联网刚出现时候的最早的应用模式。之后因为网站发展的不错,用户多转载 2020-06-29 14:17:17 · 1806 阅读 · 3 评论 -
深度解析 | 基于DAG的分布式任务调度平台:Maat
阿里妹导读:搜索中台建设过程中,单个系统不再能满足复杂业务的需求,更多时候需要多个子系统互相协作,异步地按照指定流程完成一项特定的功能。例如一个应用的上线流程依次需要调用配置同步模块、监控模块、资源更新模块、冒烟模块、引擎创建模块,流程的运行中又有分支判断、上下文传递、失败重试等需求。基于这种需求,Maat将各类流程化的任务集中管理,各个任务节点以分布式的方式运行在不同容器内,保证流程高效稳定地运行。背景什么是Maat?Maat是一个基于开源项目Airflow的流程调度系统,它支持用户自定义...转载 2020-06-29 14:15:00 · 781 阅读 · 0 评论 -
闲聊调度系统 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 · 659 阅读 · 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 · 2101 阅读 · 0 评论 -
Hadoop - 任务调度系统比较
1.概述 在Hadoop应用,随着业务指标的迭代,而使其日趋复杂化的时候,管理Hadoop的相关应用会变成一件头疼的事情,如:作业的依赖调度,任务的运行情况的监控,异常问题的排查等,这些问题会是的我们日常的工作变得复杂。那么,在没有条件和精力去开发一套调度系统的情况下,我们去选择一款第三方开源的调度系统,来尽量减轻和降低我们日常工作的复杂度,也是极好的。今天,笔者给大家比较几种常见的调度系统,供大家去选择。2.内容2.1 Oozie Oozie目前是托管在Apache基金会的,开源。在...转载 2020-06-23 10:04:09 · 344 阅读 · 0 评论 -
大数据学习笔记之azkaban(一):azkaban
文章目录一 概述1.1为什么需要工作流调度系统1.2 常见工作流调度系统1.3 各种调度工具特性对比1.4 Azkaban与Oozie对比二 Azkaban介绍三...转载 2020-06-13 09:11:50 · 904 阅读 · 0 评论 -
数仓可视化,低代码开发平台
概述在数据仓库建设中,特别是在多个开发人员的过程中,经常会遇到以下问题: &n...转载 2020-06-08 15:08:43 · 415 阅读 · 0 评论 -
命名标准管理
概述 数据建模的过程中,会对几百个甚至上千个字段进行命名,特别在一个团队中,经常会遇到这些问题: &...转载 2020-06-08 15:04:29 · 133 阅读 · 0 评论 -
python实现数据仓库的自动化开发
概述前面讲了基于元数据驱动数据仓库的开发,使数据仓库自动化,可视化。这篇讲用python来实现数仓的自动化开发 ,前提是你已经完成了需求调研和数据剖析,开始进行数据建模。自动化程序的流程如下:由于没有开发前端建模页面,需要把ods、edw、dm层建模元数据导入到元数据库里。 把每层的转换查询脚本导入元数据库。 把源库表的元数据信息通过python加载到元数据库里。 跟据建表模板自动生成每层的DDL语句。 根据程序模板自动生成每层的加载脚本。  .转载 2020-06-08 14:59:03 · 758 阅读 · 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 · 476 阅读 · 0 评论 -
kettle向MySQL推数据时报错
背景:官网后台(MySQL)需要从CRM系统(Oracle)抽一张表,然后我使用ETL工具kettle来抽取数据。问题:200W左右的数据抽到150W左右的时候突然抛出了一个错误,你说气不气: 【------2019-12-11更新一下问题: &...转载 2020-06-05 09:33:35 · 398 阅读 · 0 评论 -
kettle-创建资源库
1.资源库的介绍 kettle资源库是用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中。 资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文件夹名称。 ...转载 2020-06-02 10:20:38 · 482 阅读 · 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 · 266 阅读 · 0 评论 -
用Kettle的一套流程完成对整个数据库迁移
需求:1.你是否遇到了需要将mysql数据库中的所有表与数据迁移到Oracle。2.你是否还在使用kettle重复的画着:表输入-表输出、创建表,而烦恼。下面为你实现了一套通用的数据库迁移流程。技术引导:实现之初,在kettle提供的例子中找到了一个类似的(samples\jobs\process al...转载 2020-06-01 13:51:16 · 451 阅读 · 2 评论 -
Kettle批量操作流程使用(二)---多个数据源单表批量操作
上一篇博客介绍了本次操作的一些需求和预研思路,并且对第一种方式做了测试,现在将对第二种方式做测试。虽然在网上有不少关于动态链接库的文章,但是不少是操作kettle文件,或者通过脚本去按照一定规则生成变量。好像并不是很适合我自己的任务思路,因此在借鉴他们的思路的基础上,通过多次测试,终于走通了动态链接数据...转载 2020-05-30 21:32:00 · 1075 阅读 · 0 评论 -
kettle8调度监控平台(kettle-scheduler)开源
背景Kettle作为用户规模最多的开源ETL工具,强大简洁的功能深受广大ETL从业者的欢迎。但kettle本身的调度监控功能却非常弱。Pentaho官方都建议采用crontab(Unix平台)和计划任务(Windows平台)来完成调度功能。所以大家在实施kettle作业调度功能的时候,通常采用以下几种...转载 2020-05-30 16:59:00 · 1929 阅读 · 2 评论 -
kettle删除指定数据
kettl进行无效数据的删除需求来源需求是这样产生的,因为我要对一张生产库中的表进行增量抽取,抽取方法是通过表中的modify字段来进行增量的,每天根据这个字段获取前一天的数据。但是这样做存在一个问题,就是如果此表发生了记录的物理删除,那么我是无法感知的,所以同步后的表中存在大量已经被删除的无效数据,使数据与源表不一致,所以,需要一种方法来删除这部分不一致的数据。设计思路如果要解决以上问题,则需要一种方式来获取...转载 2020-05-30 16:50:30 · 4974 阅读 · 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 · 1572 阅读 · 0 评论 -
kettle之日志有关方面的总结
job1.job日志job日志有三种:作业日志表:整体的记录作业项日志表:每个项目的日志日志通道日志表:第一次配置,因为数据库中还没有这个表,需要手动点击sql创建表,然后执行sql。日志模式:oracle等数据库种有模式概念,mysql不需要填写记录时间间隔:运行的时候多久写一次,在作...转载 2020-05-30 16:29:44 · 1788 阅读 · 0 评论 -
kettle见解文章
文章一:ETL和Kettle简介ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程。它是构建数据仓库的重要环节。数据仓库是面向主题的、集成的、稳定的且随时间不断变化的数据集合,用以支持经营管理中的决策制定过程。数据仓库系统中有可能存在着大量的噪声数据,引起的主要原因有:滥用缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化等。即便...转载 2020-05-30 15:57:36 · 535 阅读 · 0 评论 -
Kettle插件开发流程
最近正好做了有关Kettle中插件开发的工作,对Kettle插件的源码进行了一定的研究,并开发了自定义的插件,在此有些感悟,记录下来。一 Kettle插件概述Kettle的开发体系是基于插件的,平台本身提供了接口,开发者按照相关规范就可以开发出相应的插件添加到Kettle中使用,感觉这个体系设计思路很不错,非常有利于Kettle后续的扩展。初次接触Kettle插件开发可以参考GitHub上有关插件模板DummyPlugin的源码,通过对源码的分析,发现Kettle插件开发的流程还是比较简单的,以Du.转载 2020-05-30 11:49:20 · 1115 阅读 · 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 · 1330 阅读 · 1 评论 -
使用Kettle实现数据实时增量同步
0. 前言本文介绍了使用Kettle对一张业务表数据(500万条数据以上)进行实时(10秒)同步,采用了时间戳增量回滚同步的方法。关于ETL和Kettle的入门知识大家可以阅读相关的blog和文档学习。1. 时间戳增量回滚同步假定在源数据表中有一个字段会记录数据的新增或修改时间,可以通过它对数据在时间维度上进行排序。通过中间表记录每次更新的时间戳,在下一个同步周期时,通过这个时间戳同步该时间戳以后的增量数据。这是时间戳增量同步。但是时间戳增量同步不能对源数据库中历史数据的删除操作进行同步,我们可.转载 2020-05-20 11:20:07 · 1313 阅读 · 1 评论 -
kettle性能及效率提升
Kettle数据处理的过程中难免会遇到性能瓶颈,因此性能及效率的提升成为摆在面前的问题,因此笔者罗列一些常用的优化建议。kettle优化索引的正确使用数据抽取SQL优化kettle优化尽量使用数据库连接池;尽量提高批处理的commit size;尽量使用缓存,缓存尽量大一些(主要是文本文件和数据流);Kettle 是Java 做的,尽量用大一点的内存参数启动Kettle;可以使用...转载 2020-05-13 18:23:22 · 1811 阅读 · 0 评论 -
采用Kettle分页处理大数据量抽取任务
需求: 将Oracle数据库中某张表历史数据导入MySQL的一张表里面。 源表(Oracle):table1 目标表(MySQL):table2 数据量:20,000,000 思路: 由于服务器内存资源有限,所以,无法使用Kettle一次性从源表导入目标表千万级别的数据,考虑采用分页导入的方式来进行数据传输,即: 根据实际情况设置一个每次处理的数据量,比如:5,000条,然后根据总的数据条数和每次处理的数据量计算出一共分几页, 假设总.转载 2020-05-13 18:03:08 · 1059 阅读 · 0 评论 -
【数据仓库】——数据仓库命名规范
一、概述 数据模型是数据管理的分析工具和交流的有力手段;同时,还能够很好地保证数据的一致性,是实现商务智能(Business Intelligence)的重要基础。因此建立、管理一个企业级的数据模型,应该遵循标准的命名和设计规范。二、命名规范 1.表属性规范 表名 ODS...转载 2020-05-13 15:32:39 · 1279 阅读 · 0 评论 -
kettle 批量抽取多个表数据
使用kettle从一个库将数据抽取到另一个库,单个表一个转换就可以简单实现了,那如果是好多表呢,难道要建若干个转换来实现这个功能吗,那就尝试做一个批量抽取的job吧!整个抽取过程包括一个job和两个trans,先来看看整个job吧: job的start和success就没什么可说的了,两个脚本是关键,接下来一步一步来。首先是文件输入这个trans: 这个trans的作用是提取表名并放入结果集中,表输入是用一段SQL语句将表名输出,字段选择是将SQL输出的那个含有表名的字段提取出来并重新.转载 2020-05-13 11:26:51 · 1003 阅读 · 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 · 2943 阅读 · 1 评论 -
kettle 批量抽取多个表数据
使用kettle从一个库将数据抽取到另一个库,单个表一个转换就可以简单实现了,那如果是好多表呢,难道要建若干个转换来实现这个功能吗,那就尝试做一个批量抽取的job吧!整个抽取过程包括一个job和两个trans,先来看看整个job吧: job的start和success就没什么可说的了,两个脚本是关键,接下来一步一步来。首先是文件输入这个trans: 这个trans的作用是提取表名并放入结果集中,表输入是用一段SQL语句将表名输出,字段选择是将SQL输出的那个含有表名的字段提取出来并重新.转载 2020-05-11 16:13:08 · 1665 阅读 · 0 评论 -
kettle案例-----linux使用kettle
我们之前学习的kettle操作都是在windows中进行可视化的操作,但是在使用过程中发现一些问题。 比如我们的数据文件是放在linux服务器中的,如果要清洗则...转载 2020-05-09 11:14:07 · 1309 阅读 · 0 评论 -
kettle系列之五kettle远程执行和调度
参考http://www.cnblogs.com/John-Young/p/6349252.htmlhttps://wenku.baidu.com/view/fb20216858fafab...转载 2020-05-07 11:33:05 · 1493 阅读 · 0 评论 -
在Linux上部署Kettle环境
首先我们有一个正常安装的,桌面版的Linux.Kettle的应用程序是Linux版本与Windows版本在同一个文件夹下共存的,所以可以直接把本机上的Kettle解压,通过FTP工具上传到Linux目录下。我们这里直接运行Kettle目录下的Spoon.sh看能不能进入Kettle的设计界面,发现它报了JDK版本异常的错误。我们这里通过java -version命令查询当前OS...转载 2020-05-07 09:18:57 · 187 阅读 · 0 评论 -
Kettle — 安装和部署
前提Kettle是纯Java编写的ETL开源工具,目前Kettle7和Kettle8都需要Java8或者以上才能正常运行。所以开运行Kettle前先检查Java环境是否正确配置,Java版本...转载 2020-05-06 14:16:18 · 1222 阅读 · 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 · 592 阅读 · 0 评论 -
如何成为数据科学家?这有一条完整的学习路线和方法!
0x00 前言 数据科学家,一个被评为21世纪最“性感”的职业,近些年一直备受推崇。从事数据科学家的工作,不仅意味着你将能够在工作中实践前沿的技术去解决业务问题,同时意味着丰厚的薪水。这两者都能给你带来巨大的成就感。那么,问题来了,该如何成为一名数据科学家呢?本文将提供如下三方面的思路和方法:一个完善的学习路线一种能够督促你学习的机制数据科学领域一线工作者的技术和经验分享0x01 学习路线 数据科...转载 2020-04-16 13:17:43 · 161 阅读 · 0 评论 -
如何优雅地规划数仓体系
0x00 前言 数仓规划是数仓建设的蓝图,涵盖从需求分析开始到最终的数仓评估验收整个环境;数仓规划之所以重要,是因为它是描述了数据流动的概念性框架,为元数据管理奠定了基础,对数据加工过程的理解、数仓建设的交流分享、数据的使用和问题排查、数仓健康度的评估都提供了极大的帮助。需要强调的是本节是从宏观上描述数仓的框架,具体到数据模型的细节对比、存储选型和管理、接入数据源管理等数仓建设的周边在本节不涉及。...转载 2020-04-15 16:54:38 · 152 阅读 · 0 评论 -
从马克思观点来看数据中台与数据平台的不同,这次清楚多了
就在前几年,人们在说"数据平台"四个字的时候,都是信手拈来,不用去想这四个字到底是什么含义,也不会产生什么思维上的混乱。这种思想上的默契,在2019年被彻底打破了。来搅局的,正是耳熟能详、方兴未艾的“数据中台”。于是,朋友们就开始思考中台到底比平台先进在哪里,一定要给出个说法,目前有两个常见的观点:万能分层轮:数据中台在数据平台的上一层,数据平台提供基础设施,数据中台与业务对接。阴谋论:数据中台...转载 2020-04-15 16:16:19 · 215 阅读 · 0 评论 -
数据工程师该如何入门?
0x00 前言最近发现身边有不少小伙伴想转行做数据工程师,聊天的过程中发现大家对该如何入门有很多迷茫的地方,周末写篇博客记录一下。哪些人适合继续阅读数据工程师该如何入门?话题有点大,而且每个人的理解都很不一样,因此我们会先限定一下会对这个话题感兴趣的人群:做了几年其它软件开发,发现大数据方向更有前景在校的童鞋,毕业后想搞数据开发,但是学校没相关课程没搞过软件开发,对之前的工作没信心想搞互联网,发现...转载 2020-04-15 14:00:29 · 256 阅读 · 0 评论 -
漫谈数据开发工程师的技术广度
0x00 前言今天和朋友在聊天,聊到怎样在面试和与人沟通的过程中体现自己的技术广度,感觉挺有意思,整理分享一下。分两个点来聊:1.有哪些方面的技术广度可以提高;2.怎样提高。其中第一个点可以近似地转换为数据开发工程师的技能树,有所不同,但是可以按照这个思路来考虑。数据开发工程师这个职位其实可以干很多事情,因为凡是和数据相关的东西基本上都会有数据开发工程师的身影。比如说推荐系统,虽说会有推荐算法的存...转载 2020-04-15 13:58:55 · 165 阅读 · 0 评论 -
聊一聊数据倾斜那些坑
0x00 前言 数据倾斜是大数据领域绕不开的拦路虎,当你所需处理的数据量到达了上亿甚至是千亿条的时候,数据倾斜将是横在你面前一道巨大的坎。 迈的过去,将会海阔天空!迈不过去,就要做好准备:很可能有几周甚至几月都要头疼于数据倾斜导致的各类诡异的问题。 文章结构先大致解释一下什么是数据倾斜再根据几个场景来描述一下数据倾斜产生的情况详细分析一下在Hadoop和Spark中产生数据倾斜的原因如何解决(...转载 2020-04-15 13:33:52 · 241 阅读 · 0 评论