可视化编程

转换

步骤(Step)

跳(Hop)

元数据

数据类型

并行

作业

可视化编程

kettle 可以被归类为可视化编程语言Visula Programming Languages,VPL),因为 Kettle可以使用图形化的方式定义复杂的ETL程序工作流

可视化编程一直是 Kettle 里的核心概念,它可以让你快速构建复杂的ETL作业减低维护工作量。它通过隐藏很多技术细节,使IT领域更贴近于商务领域。

kettle里的代码就是转换作业

转换

转换(transformation)负责数据的输入、转换、校验和输出等工作。Kettle中使用转换完成数据ETL全部工作。转换由多个步骤(Step)组成,如文本文件输入,过滤输出行,执行SQL脚本等。各个步骤使用(Hop)来链接。跳定义了一个数据流通道,即数据由一个步骤流(跳)向下一个步骤。在Kettle中数据的最小单位是数据行(row),数据流中流动的其实是缓存的行集(RowSet)

步骤(Step)

步骤(控件)是转换里的基本的组成部分。

一个步骤有如下几个关键特性:

1、步骤需要有一个名字,这个名字在同一个转换范围唯一

2、每个步骤都会数据行(唯一例外是“生成记录”步骤,该步骤只写数据)。

3、步骤将数据写到与之相连的一个或多个输出跳(hop),再传送到跳的另一端的步骤

4、大多数的步骤都可以有多个输出跳。一个步骤的数据发送可以被设置为分发复制

分发是目标步骤轮流接收记录,复制是所有的记录被同时发送到所有的目标步骤。

跳(Hop)

跳就是步骤之间带箭头的连线,跳定义了步骤之间的数据通路。

跳实际上是两个步骤之间的被称之为行集的数据行缓存,行集的大小可以在转换的设置里定义。当行集满了,向行集写数据的步骤将停止写入,直到行集里又有了空间。当行集空了,从行集读取数据的步骤停止读取,直到行集里又有可读的数据行。

元数据

每个步骤在输出数据行时都有对字段的描述,这种描述就是数据行的元数据。

通常包含下面一些信息。

1、名称:数据行里的字段名是唯一的

2、数据类型:字段的数据类型

3、格式:数据显示的方式,如Integer的#、0.00

4、长度:字符串的长度或者BigNumber类型的长度。

5、精度:BigNumber数据类型的十进制精度

6、货币符号:¥

7、小数点符号:十进制数据的小数点格式。不同文化背景下小数点符号是不同的,一般是点(.)或逗号(,)

8、分组符号:数值类型数据的分组符号,不同文化背景下数字里的分组符号也是不同的,一般是点(.)或逗号(,)或单引号(')

数据类型

数据以数据行的形式沿着步骤移动。一个数据行是零到多个字段的集合,字段包含下面几种数据类型。

1、String:字符类型数据

2、Number:双精度浮点数

3、Integer:带符号长整型(64位)

4、BigNumber:任意精度数据

5、Date:带毫秒精度的日期时间值

6、Boolean:取值为true和false的布尔值

7、Binary:二进制字段可以包含 图像、声音、视频及其他类型的二进制数据。

并行

跳的这种基于行集缓存的规则允许每个步骤都是由一个独立的线程运行,这样并发程度最高。这一规则也允许数据以最小消耗内存的数据流的方式来处理。在数据仓库里,我们经常要处理大量数据,所以这种高并发低消耗的方式也是ETL工具的核心需求。

对于kettle的转换,不能定义一个执行顺序,因为所有步骤都以并发方式执行:当转换启动后,所有步骤都同时启动,从它们的输入跳中读取数据,并把处理过的数据写到输出跳,直到输出跳里不再有数据,就中止步骤的运行。当所有的步骤都中止了,整个转换就中止了。

作业

作业(Job),负责定义一个完整工作流的控制,比如将转换的结果发送邮件给相关人员。因为转换(transformation)以并行方式执行,所以必须存在一个串行的调度工具来执行转换,这就是Kettle中的作业。

— EOF —

Kettle - 核心概念的更多相关文章

  1. 领域驱动设计(DDD)部分核心概念的个人理解

    领域驱动设计(DDD)是一种基于模型驱动的软件设计方式.它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题.Eric Ivans为领域驱动设计提出了大量的最佳实践 ...

  2. Javascript本质第一篇:核心概念

    很多人在使用Javascript之前都至少使用过C++.C#或Java,面向对象的编程思想已经根深蒂固,恰好Javascript在语法上借鉴了Java,虽然方便了Javascript的入门,但要深入理 ...

  3. [程序设计语言]-[核心概念]-02:名字、作用域和约束(Bindings)

    本系列导航 本系列其他文章目录请戳这里. 1.名字.约束时间(Binding Time) 在本篇博文开始前先介绍两个约定:第一个是“对象”,除非在介绍面向对象语言时,本系列中出现的对象均是指任何可以有 ...

  4. spring技术核心概念纪要

    一.背景 springframework 从最初的2.5版本发展至今,期间已经发生了非常多的修正及优化.许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难. 本文阐述 ...

  5. ElasticSearch学习笔记-01 简介、安装、配置与核心概念

    一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...

  6. Playmaker Input篇教程之引入的核心概念

    Playmaker Input篇教程之引入的核心概念 Playmaker Input引入的核心概念 Playmaker引入了4个核心概念:状态机.动作.变量和事件.了解它们是学习操作Playmaker ...

  7. Maven的几个核心概念

    POM (Project Object Model) 一个项目所有的配置都放置在 POM 文件中:定义项目的类型.名字,管理依赖关系,定制插件的行为等等.比如说,你可以配置 compiler 插件让它 ...

  8. 刀哥多线程GCD核心概念gcd

    GCD GCD 核心概念 将任务添加到队列,并且指定执行任务的函数 任务使用 block 封装 任务的 block 没有参数也没有返回值 执行任务的函数 异步 dispatch_async 不用等待当 ...

  9. cocos2d-x一些核心概念截杀

    Cocos2d-x中有很多概念,这些概念很多来源于动画.动漫和电影等行业,例如:导演.场景和层等概念,当然也有些有传统的游戏的概念.Cocos2d-x中核心概念:导演, 场景,层,节点,精灵,菜单动作 ...

  10. JAVA的核心概念:接口(interface)

    JAVA的核心概念:接口(interface) 接口与类属于同一层次,实际上,接口是一种特殊的抽象类. 如:    interface IA{ }  public interface: 公开接口  与 ...

随机推荐

  1. 腾讯云 TStor 私有云存储获统信+海光/兆芯官方认证

    腾讯云 TStor 是一款分布式存储产品,致力于解决私有云.混合云下的各类存储需求.产品紧跟国内信创生态,持续加强自主可控能力.目前,TStor 已经支持国内主流国产操作系统和硬件,如中标麒麟操作系统 ...

  2. js 吸顶以及一些获取文档高度等小方法

    1.返回html文档元素document.documentElement 2.文档的高度document.body.clientHeight 3.html文档可视高度==页面可见区域的高度docume ...

  3. PDFSharp 常见问题

    PDFSharp 常见问题 PDFsharp: Frequently Asked Questions - PDFsharp and MigraDoc Wiki 1. PDFSharp 是什么? PDF ...

  4. ASP.NET Core IHostBuilder

    HostBuilder 很显然,HostBuildr 就是用来构建 Host 的构建器. IHostBuilder 定义 通过 Build() 方法,构建器返回构建的 IHost 对象实例. 具体怎么 ...

  5. AlertManager警报通知 使用webhook 钉钉机器人

    # AlertManager警报通知 使用webhook 钉钉机器人 #启动钉钉webhook服务 #dingtalk webhook docker rm -f dingtalk docker run ...

  6. windows 也支持右键复制文件名了

    mac 有一个操作,alt + 右键,出现的菜单有复制路径一项.不用羡慕,现在 windows 也有这个功能了. Shift + 右键,"复制为路径":

  7. 【MyBatis】学习笔记04:配置文件模板

    [Mybatis]学习笔记01:连接数据库,实现增删改 [Mybatis]学习笔记02:实现简单的查 [MyBatis]学习笔记03:配置文件进一步解读(非常重要) 目录 IDEA配置模板的地方 核心 ...

  8. Qt/C++推流程序(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)可在网页和播放器远程观看

    一.前言说明 推流直播就是把采集阶段封包好的内容传输到服务器的过程.其实就是将现场的视频信号从手机端,电脑端,摄影机端打包传到服务器的过程."推流"对网络要求比较高,如果网络不稳定 ...

  9. Qt交叉编译整理的几点说明

    关于交叉编译,对于初学者来说是个极难跨过去的砍(一旦跨过去了,以后遇到需要交叉编译的时候都是顺水推舟.信手拈来.),因为需要搭建交叉编译环境,好在现在厂家提供的板子基本上都是测试好的环境,尤其是提供的 ...

  10. Qt编写的项目作品29-RTSP播放器+视频监控(海康SDK版本)

    一.功能特点 支持播放视频流和本地MP4文件. 支持句柄和回调两种模式. 多线程显示图像,不卡主界面. 自动重连网络摄像头. 可设置边框大小即偏移量和边框颜色. 可设置是否绘制OSD标签即标签文本或图 ...