kettle(一)kettle介绍

2023-11-17

kettle介绍及组成

一、kettle 是什么

kettle 是一个ETL工具,ETL(Extract-Transform-Load,数据抽取、转换、装载);
kettle 是java编写,绿色无需安装,抽取高效稳定;
kettle 主要用来对不同数据库的数据,不同来源的数据进场处理;
kettle 提供图形化的用户界面,用来使用户使用时描述 想做什么,而不是想要怎么做;
kettle 有两种脚本文件 transformationjob;transformation 是转换,job 是对多个转换构建的整个工作流的抽象和控制;

kettle 的概念模型
请添加图片描述
执行分为两个层析:job和transformation

二、kettle 的组成

kettle 的结构由两部分组成:Spoon 和 Data Integration Server

  • Spoon:
    • 是构建ETL Jobs和Transformations的工具。
    • 是以拖拽图形化进行设计转换和作业。
    • 可以通过Spoon调用数据集成引擎或者集群;

  • Data Integration Server:
    • 是专用的ETL Server
    • 执行:执行ETL的作业和转换
    • 安全性:管理用户、角色、集成的安全性
    • 内容管理:提供一个集中的资源库。管理ETL的转换和作业。资源库包含所有内容和特质的历史版本
    • 时序安排:向spoon 提供管理Data Integration Server 上活动的时序和监控的服务

  • kettle 的核心组件
    • spoon:通过图形接口,编辑作业和转换的桌面应用
    • pan:一个独立的命令行程序,用于执行由spoon编写完成的转换和作业
    • kitchen:一个独立的命令行程序,用于执行由spoon编辑的作业
    • carte:轻量级的web容器,用于建立专用、远程的ETL Server

三、kettle 的核心概念

转换:转换是 kettle 中最基础的,主要的部分;进行抽取数据、转换数据、加载数据、输出数据等等操作;
作业:由一个或者多个 转换或者作业组成,作业运行时,按照自定义的顺序执行。
:是步骤之间的链接,定义了步骤之间的数据通路。
步骤:组成转换的基本部分,由一个或者多个步骤组成转换,步骤之间都是独立的线程,可以并发执行;


补充:
  • kettle 设计的核心概念是可视化的编程,以图形化的方式,定义复杂的ETL程序和工作流;
  • 转换包含一个或者多个步骤,这些步骤可以通过跳来连接
  • 转换里的步骤有多个,每个步骤都是独立的线程,所以一个转换里的全部步骤可以并发运行
  • 输入步骤 ——> 跳 ——> 输出步骤(表输入——>Excel输出),两个步骤同时启动运行。
  • 每个步骤都有一个名字,并且名字在这个转换范围内唯一
  • 跳定义了两个步骤之间的一个单向的通道,使得数据以数据流的形式从一个步骤流向另一个步骤。
  • 大多数的步骤都可以有一个或者多个输出跳,数据的发送可以被设置为分发和复制。分发使得输出步骤轮流接收数据。
  • 跳是两个步骤之间的传输数据的,被称之为行集的数据行缓存集,这个缓存的大小可以自定义。
    • 例如:当输入步骤是数据库,读取速度快,输出步骤是Excel,写入速度慢,这时将行数据缓存在跳(缓存集)中。
    • 当跳的行集满了,输入步骤将停止向跳写入数据,直到跳中又有了空间。
    • 当跳的行集空了,输出步骤将停止从跳读取数据,直到跳中又有了数据。
  • 数据是以行为单位,作为数据行,从一个步骤流向另一个步骤的。这个过程数据流,也叫做记录流
  • 数据行是0到多个字段的集合,用来对字段进行的描述,称之为数据行的元数据
  • 跳的行集缓存机制,与步骤的并发,允许数据以最小消耗内存的数据流的方式进行被处理。
  • 由于在一个转换内的步骤全部是并行执行的,所以转换内是没有执行顺序的。
  • 一个转换中,全部步骤里,输入跳中不再有数据,就终止这个步骤。当全部步骤终止,就终止整个转换。
  • 想使得数据在处理的过程有顺序,则将处理步骤定义在不同的转换里,再将转换连接成作业。

引用部分资料,侵权私QQ:1445319214
图片来源哔哩哔哩视屏资料PPT
CSDN:kettle知识点梳理:https://blog.csdn.net/mindn_1982/article/details/107418524
哔哩哔哩 kettle 视屏:https://www.bilibili.com/video/BV1jE411B7J8
百度百科:kettle
部分个人观点,欢迎评论指错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kettle(一)kettle介绍 的相关文章

  • 收到“外部表不是预期的格式。”尝试在 SSIS 中导入 Excel 文件时出错

    我正在尝试导入 Excel 文件 xls 通过 SSIS 传输到 SQL Server 中的表 但 SSIS 似乎无法将该文件识别为有效的 Excel 文件 我收到以下错误 Error 1 Excel 源 86 错误 SSIS错误代码 DT
  • SQL Server 2008:禁用某一特定表分区上的索引

    我正在 SQL Server 2008 中使用一个大表 约 100 000 000 行 我经常需要在该表中批量添加和删除约 30 000 000 行 目前 在将大批量加载到表中之前 我会禁用索引 插入数据 然后重建索引 我测量这是最快的方法
  • 如何解决 SSIS 包中 OLE DB 目标中的非空约束?

    I m new to SSIS Package I want to transfer data from source to destination database which has different table structures
  • ECS Airflow 1.10.2 性能问题。操作员和任务花费的时间延长 10 倍

    我们迁移到 puckel Airflow 1 10 2 以尝试解决我们在多种环境中遇到的性能不佳的问题 我们在 AWS ECS 上的 ECS Airflow 1 10 2 上运行 有趣的是 CPU mem 永远不会跳到 80 以上 Airf
  • SQL Server 存储过程转换为 SSIS 包

    问题 目前我们有大量的存储过程 很长 长达 10 000 行 这些存储过程是由不同的开发人员在过去 10 年中根据不同的需求编写的 现在管理那些复杂 长的存储过程 没有适当的文档 变得很困难 我们计划将这些存储过程移至 SSIS ETL 包
  • Apache Airflow 任务超时

    所以我有一个任务的测试 dag 这是一个简单的 ETL 尝试从 mssql 数据库中提取数据并将它们加载到 postgres 数据库 所以它的工作方式是按日期选择并插入过去 360 天的 postgres 数据库 但任务在 10 天左右后
  • SSIS表达式

    任何人都知道为什么这个 SSIS 表达式不起作用 派生的列名称是from service date yyyymmdd 表达式为 DT STR 4 1252 from service date yyyy RIGHT 0 DT STR 2 12
  • 使用 NiFi 更新 CSV 内字段中的值

    我想实现一个简单的用例 使用 NiFi 将 CSV 内字段中的多个字符串 文本值更新为整数值 例如 我的 CSV 文件如下所示 输入 CSV 文件 字段 1 字段 2 美国 苹果 美国 苹果 印度 葡萄 中国城 奥兰治 澳大利亚民族 桃子
  • 开源 ETL 框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在平面文件连接管理器上重新配置列信息?

    我有一个正在从平面文件读取数据的平面文件源 我们最近在此平面文件中添加了一个新列 平面文件数据被插入到数据库表中 为了适应目标组件中的新字段 我使用了ALTER TABLE语句将新列添加到表中 这是我所做的唯一改变 平面文件和目标组件之间的
  • 如何使用我在后续任务中添加的记录的自动生成 ID?

    我目前正在使用以下命令向表中添加一些记录OLE DB Destination 每条记录都有一个自动生成的Id场地 我想使用这个生成的Id字段作为某些子记录中的外键 我以为我能够从一个数据流线OLE DB Destination组件到另一个组
  • SSIS 可以支持加载每行具有不同列长度的文件吗?

    目前 我每天收到大约 75 万行的文件 每行开头都有一个 3 个字符的标识符 对于每个标识符 列数可以更改 但特定于标识符 例如 SRH 将始终有 6 列 AAA 将始终有 10 列 依此类推 我希望能够通过 SSIS 将此文件自动生成 S
  • 如何使用脚本任务声明工作表?

    我试图声明一个工作表来处理 xlsx 文件的单元格 但当我声明工作表对象时 我的 C 脚本失败 Microsoft Office Interop Excel Application xlApp new Microsoft Office In
  • 从事务性平面数据库填充事实表和维度表的最佳实践

    我想在 SSIS SSAS 中填充星型模式 多维数据集 我准备了所有维度表和事实表 主键等 源是一个 平面 项目级别 表 我现在的问题是如何拆分它 并将其从一个放入相应的表中 我做了一些谷歌搜索 但找不到令人满意的解决方案 人们会认为这是
  • ETL 工具...它们到底做什么?请通俗地说[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我最近接触了一些 ETL 工具 例如 Talend 和 Apatar 我想知道这些工具通俗地说的用途 主要目标到底是什么 谁主要使用它
  • 将多个平面文件导入到多个 SQL 表

    这是我的文件夹设置 这是文件设置 这个想法是遍历文件夹并将文件内容放入数据库上的表 File dbo 还有 FileB FileC 等 所有文件夹的文件名结构都相同 我有这个 ssis 包 我在其中使用 foreachloop gt 数据流
  • 在SSIS中导入已合并单元格的Excel

    我的问题是在读取合并 组合列单元格的 Excel 文件时 例如 将下面的excel数据读取到数据库中 Excel 输入 ID NAME DEPT FNAME LNAME 1 Akil Tiwari IT 2 Vinod Rathore IT
  • sqlite 插入表中 select * from

    我需要在 Android 应用程序中将数据从一个表移动到另一个表 我想使用以下sql insert into MYTABLE2 select id STATUS risposta DATETIME now data ins from MYT
  • Oracle OLE DB 提供程序未在 SSIS 中列出

    我在 SSIS 和 VS2015 CM 方面遇到问题 我有一个包需要连接 Oracle 来获取一些数据 我安装了适用于 Win64 的 ODAC 和 Oracle 客户端 但看不到提供程序列表中列出的 OLE DB 的 Oracle 提供程
  • 导入到 SQL Server 时忽略 Excel 文件中的列

    我有多个具有相同格式的 Excel 文件 我需要将它们导入 SQL Server 我当前遇到的问题是 有两个文本列我需要完全忽略 因为它们是自由文本 并且某些行的字符长度超出了服务器允许我导入的长度 这会导致截断错误 因为我的分析不需要这些

随机推荐

  • 【基础教程】Appium自动化测试,太详细了!

    Appium简介 Appium是一款开源的Appium自动化工具 基于Webdriver协议 主要有以下3个特点 全能 支持iOS Andorid H5 混合App WinApp 通用 支持Win Linux Mac 支持Java Pyth
  • Java设计模式—装饰模式

    装饰模式是一种比较常见的模式 定义为 动态的给一个对象添加一些额外的职责 就增加功能来说 装饰模式比生成子类更加灵活 装饰模式的通用类图如下 装饰模式的构成 1 抽象构件 Component 是一个接口或者是抽象类 就是定义我们最核心的对象
  • CDZSC_2022寒假个人训练赛21级(2)

    A 题解 输出n 1 2 3 4 即可 include
  • 记一次关于宝塔面板无法登陆的运维事故

    事故的出现 2023年4月22日 晚 我修改好客户的前端资源 打开宝塔面板准备上传 输入用户名和密码 点击登录 浏览器没有反应 而且上面的宝塔logo没有出现 我怀疑服务器遭到了攻击和篡改 但打开客户的网站 一切正常 问题排查 由于我前一天
  • 列导航

  • fastjson 转下划线_fastjson 变量驼峰形式与下划线互转

    FastJson 支持配置的PropertyNamingStrategy四种策略 属性名策略说明 CamelCase策略 Java对象属性 personId 序列化后属性 persionId PascalCase策略 Java对象属性 pe
  • apache impala 启动提示 java/lang/NoClassDefFoundError: java/lang/Object

    测试基于apache impala 4 1 0 版本 如果出现该错误 Error occurred during initialization of VM java lang NoClassDefFoundError java lang O
  • python将三张图片横向拼接为一张图片

    import numpy as np from PIL import Image 此处为路径 将三张图像的路径对应自己的改一下 paths 1 1 1 png 2 2 1 png 3 3 1 png img array img for i
  • HashMap在Java里是怎么工作的

    本文翻译自 Coding Geek 原文地址 绝大多数Java开发者都在使用Map类 尤其是HashMap HashMap是一种简单易用且强大的存取数据的方法 但是 有多少人知道HashMap内部是如何工作的 几天前 为了对这个基本的数据结
  • Kubernetes 功能简述

    1 功能 1 1 主要功能 Kubernetes 是一个开源的容器编排平台 它提供了一系列功能来管理和部署容器化应用程序 以下是 Kubernetes 的一些主要功能 容器编排 Kubernetes 可以自动管理容器的部署 扩展和收缩 以满
  • 私有云不是真正的云计算!

    大数据产业创新服务媒体 聚焦数据 改变商业 中国云计算遇到困境 IaaS层面 阿里云 腾讯云等增长乏力 SaaS没有发展起来 反观美国 整个云计算蓬勃发展 AWS 微软云 谷歌云体量更大 增速却不低 SaaS已经高度发达 有不少市值几百亿美
  • 外包三年半,人废了一半

    如果不是女朋友和我提分手 我估计现在还没醒悟 大专生 18年通过校招进入湖南某软件公司 干了3年多的CRUD 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的CRUD 已经让我变得不
  • C/C++ 课题解答(1)

    随机产生100个字符 a z 数组arrayOfChar 输入字符c 计算字符c在数组中出现的次数和位置 include
  • n的阶乘的两种方式

    n的阶乘的两种方式 递归与非递归 n 1 2 3 n 在n的阶乘中加入运行的时间 可以判断递归与非递归的运行效率 include
  • [vue-router] uncaught error during route navigation

    vue路由在加载组件之前会执行一些逻辑 尤其是生命周期的钩子函数 如果你在以上的钩子函数中 写了自己的逻辑 并报错了 就会触发 vue router uncaught error during route navigation这个错误 原因
  • 基于upload-labs的文件上传漏洞总结

    普通的前端绕过 1 抓包 2 上传jpg等格式的木马文件 3 bp上改回php后缀即可 普通绕过 1 抓包 2 上传jpg等格式的木马文件 3 bp上改后缀名为将后缀改为 php3 php4 php5 phtml等等 大小写绕过 即后缀名改
  • minikube命令

    Basic Commands 0minikube version查看版本 1minikube start启动一个集群 minikube start vm driver none image repository registry cn ha
  • ei计算机投稿 知乎,知乎热议:科研有很水的idea应该发表出来吗?

    原标题 知乎热议 科研有很水的idea应该发表出来吗 科研有很水的idea应该发表出来吗 来源 https www zhihu com question 372648294 小伙伴们 对于只能发EI 水会 OA SCI期刊那种 自己看到都觉
  • k8s基本命令

    k8s命令 https kubernetes io zh docs tutorials kubernetes basics 官网地址 基本命令 查看节点服务器 kubectl get nodes 查看命名空间 kubectl get ns
  • kettle(一)kettle介绍

    kettle介绍及组成 一 kettle 是什么 kettle 是一个ETL工具 ETL Extract Transform Load 数据抽取 转换 装载 kettle 是java编写 绿色无需安装 抽取高效稳定 kettle 主要用来对