1、我们在学习nifi的过程中有接触到Avro schema,当时我在想kettle应该也支持Avro,果不其然kettle也是支持Avro文件的读和写的。今天我们一起来学习下kettle中如何使用Avro input 读步骤。对Avro 不了解的,可以学习文章ETL工具-nifi干货系列 第四讲 Avro schema 序列化框架

打开spoon,拖拉Avro input和写日志步骤到画布,然后连线,如下图所示:

2、双击Avro input 步骤进行配置,如下图所示:

Step name:自定义步骤名称

Source-Format:数据来源格式,有Avro file,JSON datum,Binary datum,Avro file(use alternate schema),本次演示采用Avro file

Avro file(Avro 文件)

源材料位于单个位置。模式嵌入在数据中。
JSON datum(JSON 数据)
源材料位于不同位置。数据以JSON格式包含,并且模式与数据分离。
Binary datum(二进制数据)
源材料位于不同位置。数据以二进制格式包含,并且模式与数据分离。
Avro文件(使用备用模式)
源材料位于不同位置。模式与数据分离。

Source-Source:

from file,通过浏览选择Avro 文件

from field,通过选择前置步骤的字段进行设置

3、Avro fields,本选项卡主要是提取Avro 数据文件中的字段,点击Get fileds之后会自动填充,然后可以继续进行调整设置,如下图所示:

 Avro path (Avro type):Avro源的位置(及其格式类型)。

Indexed values:

Avro路径集合中要使用的索引键。您可以使用此字段进行映射或数组扩展,从而将数组或映射值扩展为返回多行数据。

要返回映射元素,请指定索引键。
要返回数组元素,请指定数组索引号,或者使用星号通配符 (*) 来返回数组的所有元素。
当此字段留空时,不会返回字段的数据。

Name:输入字段的名称。

Type:输入字段的类型,例如String或Date。

Format:输入字段的格式。

Pass through fields from previous step:

选择之后将字段从上一步传递到下一步,同时将当前步骤中的字段传递到下一步。

清除选择不将上一步字段传递到下一步。

Allow null values for missing paths or fields:

选择以使用null值替换传入数据中的缺失字段。
清除选择以不使用null值替换缺失字段。

4、Lookup fields

你可以使用查找字段选项卡创建变量,并将它们映射到特定字段,以在解码时用作对 Avro 结构的查找。

更多细节可以参考官网文档https://docs.hitachivantara.com/r/en-us/pentaho-data-integration-and-analytics/10.1.x/mk-95pdia003/pdi-transformation-steps/avro-input/options/lookup-fields-tab

kettle从入门到精通 第五十一课 ETL之kettle Avro input的更多相关文章

  1. GPU 编程入门到精通(五)之 GPU 程序优化进阶

    博主因为工作其中的须要,開始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识.鉴于之前没有接触过 GPU 编程.因此在这里特地学习一下 GPU 上面的编程. 有志同道合的小伙 ...

  2. CoreData 从入门到精通(五)CoreData 和 TableView 结合

    我们知道 CoreData 里存储的是具有相同结构的一系列数据的集合,TableView 正好是用列表来展示一系列具有相同结构的数据集合的.所以,要是 CoreData 和 TableView 能结合 ...

  3. Hibernate从入门到精通(五)一对一单向关联映射

    上次的博文中Hibernate从入门到精通(四)基本映射我们已经讲解了一下基本映射和相关概念,接下来我们会讲稍微复杂点的映射——关系映射. 关系映射分类 关系映射即在基本映射的基础上处理多个相关对象和 ...

  4. [置顶] Hibernate从入门到精通(五)一对一单向关联映射

    上次的博文中Hibernate从入门到精通(四)基本映射我们已经讲解了一下基本映射和相关概念,接下来我们会讲稍微复杂点的映射——关系映射. 关系映射分类 关系映射即在基本映射的基础上处理多个相关对象和 ...

  5. 【PHP】最详细PHP从入门到精通(五)——PHP错误处理

     PHP从入门到精通 之PHP中的字符串 在创建脚本和 web 应用程序时,错误处理是一个重要的部分.如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门. 本教程介绍了 PH ...

  6. Spring Boot从入门到精通(五)多数据源配置实现及源码分析

    多数据源配置在项目软件中是比较常见的开发需求,Spring和Spring Boot中对此都有相应的解决方案可供大家参考.在Spring Boot中,如MyBatis.JdbcTemplate以及Jpa ...

  7. kettle从入门到精通 第十一课 kettle javascript 解析json数组

    1.json步骤虽然可以解析json数组,但是不够灵活.通过javascript步骤来解析json数组比较灵活,且可以按照需要组装数据流转到下个步骤. 1)步骤名称:可以自定义 2)Transform ...

  8. Linux自有服务(1)-Linux从入门到精通第五天(非原创)

    文章大纲 一.运行模式二.用户与用户组管理(重点)三.网络设置四.ssh服务(重点)五.学习资料下载六.参考文章   自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的 ...

  9. Simulink仿真入门到精通(五) Simulink模型的仿真

    5.1 模型的配置仿真 由各种模块所构建的可视化逻辑连接,只是模型的外在表现,模型仿真的核心驱动器是被称作解算器(Solver)的组件,相当于Simulink仿真过程的心脏,驱动着模型仿真,它在每一个 ...

  10. 【Python从入门到精通】(十一)Python的函数的方方面面【收藏下来保证有用!!!】

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文主要介绍Python的函数,函数的定义,使用,可变参数等等都有详细介绍. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎 ...

随机推荐

  1. 力扣231(java)-2的幂(简单)

    题目: 给你一个整数 n,请你判断该整数是否是 2 的幂次方.如果是,返回 true :否则,返回 false . 如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方. 示例 ...

  2. 巧用API网关构建大型应用体系架构

    简介: 近期阿里云重磅发布了BizWorks一体化的云原生应用的开发和运营平台,内置阿里巴巴业务中台构建的最佳技术实践.它已经将API网关作为关键组件融入其中,并且基于API网关为用户提供能力开放平台 ...

  3. 阿里云PolarDB开源数据库社区与 Tapdata 联合共建开放数据技术生态

    ​简介:近日,阿里云PolarDB开源数据库社区宣布将与 Tapdata 联合共建开放数据技术生态. 近日,阿里云PolarDB开源数据库社区宣布将与 Tapdata 联合共建开放数据技术生态.在此之 ...

  4. 混合云K8s容器化应用弹性伸缩实战

    简介: 混合云K8s容器化应用弹性伸缩实战 1. 前提条件 本最佳实践的软件环境要求如下:应用环境:①容器服务ACK基于专有云V3.10.0版本.②公共云云企业网服务CEN.③公共云弹性伸缩组服务ES ...

  5. ACMMM2021|在多模态训练中融入“知识+图谱”:方法及电商应用实践

    ​简介: 随着人工智能技术的不断发展,知识图谱作为人工智能领域的知识支柱,以其强大的知识表示和推理能力受到学术界和产业界的广泛关注.近年来,知识图谱在语义搜索.问答.知识管理等领域得到了广泛的应用. ...

  6. [DApp] Moralis 无服务架构方式构建 DApp

    Moralis 提供的使用功能包括三个方面: 进一步封装Web3功能的 Moralis SDK,极大方便了开发者对于DApp基础功能的开发,比如 MetaMask登录验证,签名,IPFS集成,DApp ...

  7. [Caddy2] cloudflare, acme: cleaning up failed: no memory of presenting a DNS record

    使用 cloudflare 做为 DNS 之后,使用 Caddy 申请 Lets Encrypt 证书. 有时在日志里会发现一系列的提示信息: acme: use dns-01 solver acme ...

  8. [Go] freecache 设置 SetGCPercent 的作用

    你需要对 freecache 有一个大致了解,freecache 的内存空间是预分配的. 假设你的程序占用了 50M 内存,那么开启 freecache 预分配 200M 空间,总共下来就是 250M ...

  9. IIncrementalGenerator 增量 Source Generator 生成代码应用 将构建时间写入源代码

    本文将和大家介绍一个 IIncrementalGenerator 增量 Source Generator 生成代码技术的应用例子,将当前的构建时间写入到代码里面.这个功能可以比较方便实现某些功能的开关 ...

  10. SkiaSharp 渲染输出 SVG 文件

    谷歌的 Skia 的一个卖点就是提供了完美的 SVG 的支持,包括输入和输出.输入指的是给一张 SVG 图片,将这个 SVG 渲染出来.输出就是将输出画面保存为 SVG 格式的图片.自然 SkiaSh ...