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树形数据相关推荐

  1. javascript中的闭包closure详解

    文章目录 简介 函数中的函数 Closure闭包 使用闭包实现private方法 闭包的Scope Chain 闭包常见的问题 闭包性能的问题 总结 简介 闭包closure是javascript中一 ...

  2. python 函数对象(函数式编程 lambda、map、filter、reduce)、闭包(closure)

    1.函数对象 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 秉承着一切皆对象的理念,我们再次回头来看函数(function).函 ...

  3. 查找树形数据的某个值

    很多场景都需要使用树形数据,比如:一级菜单 - 二级菜单.省-市-区.公司-部门-小组.界-门-纲-目-科-属-种 等等. 数据结构通常如下所示(以下代码为ts写法): const groupList ...

  4. python中的闭包(closure)

    背景 本文尝试介绍Python中的闭包(closure),包括闭包是什么? 为什么要使用闭包?如何使用闭包? 嵌套函数及非局部变量 在介绍闭包之前,需要先明白什么是嵌套函数和非局部变量.在一个函数(f ...

  5. Scala编程之闭包(closure)

    一.概念 闭包:我们把一个函数与其相关引用环境(变量)组合成一个整体叫做闭包 概念晦涩难懂,下面我们用一个例子说明 二.小例子 def minusxy(x:Int) = (y:Int)=>x-y ...

  6. [转载]深入理解JavaScript闭包(closure)

    最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业.对于初学者来说别说理解闭包了,就连文字叙述都很难看懂.撰写此文的目的就是用最通俗的文字揭开Java ...

  7. 【Groovy】闭包 Closure ( 闭包的 delegate 代理策略 | OWNER_FIRST | DELEGATE_FIRST | OWNER_ONLY | DELEGATE_ONLY )

    文章目录 一.闭包的代理策略引入 二.闭包的四种代理策略 一.闭包的代理策略引入 分别在 Groovy 脚本 和 Test 类中定义 fun 方法 , 打印不同的内容 ; 在闭包 Closure 中分 ...

  8. 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员赋值及源码分析 )

    文章目录 总结 一.闭包类 Closure 简介 二.闭包类 Closure 中 this.owner.delegate 成员 源码分析 三.分析编译后的字节码文件内容 总结 在闭包中 , 打印 th ...

  9. 【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )

    文章目录 一.闭包参数绑定 1.闭包参数绑定 curry 函数 2.闭包参数绑定 rcurry 函数 3.闭包参数绑定 ncurry 函数 二.完整代码示例 一.闭包参数绑定 闭包 Closure 提 ...

最新文章

  1. Python20-Day02
  2. 修改cpu型号重启不变_猫头鹰展示D系列新款140毫米CPU散热器:更大散热片,能压400瓦...
  3. 20条Linux命令面试问答
  4. Luogu-P4768 (Kruskal重构树+最短路)
  5. 使用 HttpWebRequest 向网站提交数据
  6. QT 中textEdit 和 textBrowser 无法使用斜体及加粗等 解决办法
  7. linux 字符设备号分配状况
  8. jeecg集成积木报表错误_6688种玩法的电子积木,是什么体验?「中外玩具网测评」...
  9. 安装、部署DPM 2012 R2服务器
  10. sed -i 单引号中嵌套双引号_【函数应用】IF函数的多层嵌套
  11. usermod 修改用户信息
  12. OpenCV分水岭分割函数:watershed()介绍
  13. python语音程序设计教程_Python语言程序设计(视频教程)
  14. Markdown-Latex全称量词和存在量词(对于全体、存在)
  15. 怎么用电脑操控自己的手机 怎样用电脑控制手机?
  16. Dbviusalizer报错Java.lang.ClassCastException: javax.swing.KeyStroke cannot be cast to java.lang.Compar
  17. 钓鱼网站+邮件诈骗 实例分析
  18. iOS音乐播放器详解(MusicPlayer1.0)
  19. 用友U9sv服务打开时报错内存入口检查失败,因为可用内存(371662848 字节)少于总内存的 5%
  20. 一文速学数模-降维模型(一)PCA(主成分分析法)原理以及应用+代码实现

热门文章

  1. wxWidgets:wxGridEditorCreatedEvent类用法
  2. boost使用Proto转换来实现的例子
  3. boost::multiprecision模块debug_adaptor相关的测试程序
  4. Boost.MultiIndex 使用 multi_index_container::ctor_args_list 的示例
  5. boost::mpl模块实现pop_front相关的测试程序
  6. boost::copy_graph用法的测试程序
  7. boost::geometry模块自定义多边形示例
  8. GDCM:gdcm::GroupDict的测试程序
  9. OpenCV基本线性变换的实例(附完整代码)
  10. OpenCV清除背景扣除background subtraction的实例(附完整代码)