Kettle使用_16 闭包Closure Generator树形数据
Kettle使用_16 闭包Closure Generator树形数据
需求: 通过Kettle的组件实现对树形结构数据的深度(层次)的生成。
解决方法:结合闭包Closure Generator、排序等组件解决。
Previous work:
准备树形数据(以公司组织架构为例)。
Step1:新建个转换。
Step2:拖个自定义常量数据组件,该组件位于转换的输入分类下。
Step3:配置自定义常量数据组件。
元数据定义:
数据定义:
Step4:拖动Closure Generator闭包组件,并将自定义常量组件通过SHIFT与它关联上。
Step5:配置Closure Generator闭包组件。
Step6:拖动个排序记录组件到转换里,该组件位于转换的转换分类下。通过SHIFT连接Closure Generator闭包组件与排序记录组件。
Step7:设置要排序的字段顺序和是否忽略大小写。
Step8:连接空操作 (什么也不做) dummy组件(选作)
Step9:保存后运行并验证结果。
完整流程示意:
Kettle使用_16 闭包Closure Generator树形数据相关推荐
- javascript中的闭包closure详解
文章目录 简介 函数中的函数 Closure闭包 使用闭包实现private方法 闭包的Scope Chain 闭包常见的问题 闭包性能的问题 总结 简介 闭包closure是javascript中一 ...
- python 函数对象(函数式编程 lambda、map、filter、reduce)、闭包(closure)
1.函数对象 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 秉承着一切皆对象的理念,我们再次回头来看函数(function).函 ...
- 查找树形数据的某个值
很多场景都需要使用树形数据,比如:一级菜单 - 二级菜单.省-市-区.公司-部门-小组.界-门-纲-目-科-属-种 等等. 数据结构通常如下所示(以下代码为ts写法): const groupList ...
- python中的闭包(closure)
背景 本文尝试介绍Python中的闭包(closure),包括闭包是什么? 为什么要使用闭包?如何使用闭包? 嵌套函数及非局部变量 在介绍闭包之前,需要先明白什么是嵌套函数和非局部变量.在一个函数(f ...
- Scala编程之闭包(closure)
一.概念 闭包:我们把一个函数与其相关引用环境(变量)组合成一个整体叫做闭包 概念晦涩难懂,下面我们用一个例子说明 二.小例子 def minusxy(x:Int) = (y:Int)=>x-y ...
- [转载]深入理解JavaScript闭包(closure)
最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业.对于初学者来说别说理解闭包了,就连文字叙述都很难看懂.撰写此文的目的就是用最通俗的文字揭开Java ...
- 【Groovy】闭包 Closure ( 闭包的 delegate 代理策略 | OWNER_FIRST | DELEGATE_FIRST | OWNER_ONLY | DELEGATE_ONLY )
文章目录 一.闭包的代理策略引入 二.闭包的四种代理策略 一.闭包的代理策略引入 分别在 Groovy 脚本 和 Test 类中定义 fun 方法 , 打印不同的内容 ; 在闭包 Closure 中分 ...
- 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员赋值及源码分析 )
文章目录 总结 一.闭包类 Closure 简介 二.闭包类 Closure 中 this.owner.delegate 成员 源码分析 三.分析编译后的字节码文件内容 总结 在闭包中 , 打印 th ...
- 【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )
文章目录 一.闭包参数绑定 1.闭包参数绑定 curry 函数 2.闭包参数绑定 rcurry 函数 3.闭包参数绑定 ncurry 函数 二.完整代码示例 一.闭包参数绑定 闭包 Closure 提 ...
最新文章
- Python20-Day02
- 修改cpu型号重启不变_猫头鹰展示D系列新款140毫米CPU散热器:更大散热片,能压400瓦...
- 20条Linux命令面试问答
- Luogu-P4768 (Kruskal重构树+最短路)
- 使用 HttpWebRequest 向网站提交数据
- QT 中textEdit 和 textBrowser 无法使用斜体及加粗等 解决办法
- linux 字符设备号分配状况
- jeecg集成积木报表错误_6688种玩法的电子积木,是什么体验?「中外玩具网测评」...
- 安装、部署DPM 2012 R2服务器
- sed -i 单引号中嵌套双引号_【函数应用】IF函数的多层嵌套
- usermod 修改用户信息
- OpenCV分水岭分割函数:watershed()介绍
- python语音程序设计教程_Python语言程序设计(视频教程)
- Markdown-Latex全称量词和存在量词(对于全体、存在)
- 怎么用电脑操控自己的手机 怎样用电脑控制手机?
- Dbviusalizer报错Java.lang.ClassCastException: javax.swing.KeyStroke cannot be cast to java.lang.Compar
- 钓鱼网站+邮件诈骗 实例分析
- iOS音乐播放器详解(MusicPlayer1.0)
- 用友U9sv服务打开时报错内存入口检查失败,因为可用内存(371662848 字节)少于总内存的 5%
- 一文速学数模-降维模型(一)PCA(主成分分析法)原理以及应用+代码实现
热门文章
- wxWidgets:wxGridEditorCreatedEvent类用法
- boost使用Proto转换来实现的例子
- boost::multiprecision模块debug_adaptor相关的测试程序
- Boost.MultiIndex 使用 multi_index_container::ctor_args_list 的示例
- boost::mpl模块实现pop_front相关的测试程序
- boost::copy_graph用法的测试程序
- boost::geometry模块自定义多边形示例
- GDCM:gdcm::GroupDict的测试程序
- OpenCV基本线性变换的实例(附完整代码)
- OpenCV清除背景扣除background subtraction的实例(附完整代码)