kettle从入门到精通 第五十二课 ETL之kettle Avro output
1、上一节课我们学习了avro input,本节课我们一起学习下avro out步骤。
本节课通过json input 加载json文件,通过avro out 生成avro二进制文件,写日志步骤打印日志。将json input、avro output、写日志三个步骤拖到画布,然后连线,如下图所示:
json input 步骤不在过多讲解,不了解的可以学习kettle从入门到精通 第八课 kettle JSON输入

2、Avro output步骤将PDI数据流中的数据序列化为Avro二进制或JSON格式,然后写入文件。
这个输出步骤创建了以下文件:
1). 包含Avro格式输出数据的文件
2). 由此步骤中字段定义的Avro模式文件

Step name:自定义步骤名称
Forder/File name:指定文件或文件夹的位置和名称。您还可以单击浏览按钮导航到目标avro文件或avro文件所在文件夹。
Overwrite existing output file:选择覆盖具有相同文件名和扩展名的现有文件。
Fields:
Avro path:字段的名称将在Avro数据和模式文件中显示。
Name:PDI字段的名称。
Avro type:定义字段的Avro数据类型。可以通过下拉方式进行选择。
Precision:仅适用于Decimal Avro类型,数字中的总位数。默认值为10。
Scale:仅适用于Decimal Avro类型,小数点后的位数。默认值为0。
Default value:字段的默认值,如果为空或为null。
Null:指定字段是否可以包含空值。可以选择Yes和No。
如下时PDI type和Avro type的映射对应关系:
| PDI Type | Avro Type |
|---|---|
| InetAddress | String |
| String | String |
| TimeStamp | TimeStamp |
| Binary | Bytes |
| BigNumber | Decimal |
| Boolean | Boolean |
| Date | Date |
| Integer | Long |
| Number | Double |
注:为了避免转换失败,请确保默认值字段包含所有字段的值,其中空值设置为否。
3、Schema选项卡,如下图所示:

File name:指定完整的URL,用于写入Avro模式文件。URL的格式可能根据文件系统类型不同而有所不同。您也可以点击“浏览”以导航到您文件系统上的模式文件。如果模式文件已存在,则会被覆盖。如果您没有为输出指定单独的模式文件,PDI将在Avro数据文件中写入嵌入式模式。
Namespace:命名空间,定义模式的“完整名称”(例如,对于示例,为 example.avro).
Record name:指定Avro记录的名称(例如,myAvro)。
Doc value:指定为模式提供的文档,也就是备注。
4、Options 选项卡,如下图所示:

Compression:指定用于在Avro输出文件中压缩数据块的以下编解码器之一:
- None:不使用压缩(默认)。
- Deflate:数据块使用RFC 1951中指定的deflate算法编写,通常使用zlib库实现。
- Snappy:数据块使用Google的Snappy压缩库编写,并在每个块中跟随未压缩数据的4字节大端CRC32校验和。
Include date in filename:将系统生成文件的系统日期添加到默认格式yyyyMMdd(例如20240405)的输出文件名中。
Include time in filename:将系统生成文件的系统时间添加到默认格式HHmmss(例如235959)的输出文件名中。
Specify date time format:"从下拉列表中可用的选项中选择一个不同的日期时间格式,添加到输出文件名中。"
5、生成文件

avro schema 文件

avro 二进制文件


kettle从入门到精通 第五十二课 ETL之kettle Avro output的更多相关文章
- python第五十二课--自定义异常类
myexception.py ''' 实现自定义异常类: ''' class MyException(Exception): def __init__(self,msg): super().__ini ...
- JAVA学习第五十二课 — IO流(六)File对象
File类 用来给文件或者目录封装成对象 方便对文件与目录的属性信息进行操作 File对象能够作为參数传递给流的构造函数 一.构造函数和分隔符 public static void FileDemo( ...
- GPU 编程入门到精通(五)之 GPU 程序优化进阶
博主因为工作其中的须要,開始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识.鉴于之前没有接触过 GPU 编程.因此在这里特地学习一下 GPU 上面的编程. 有志同道合的小伙 ...
- Gradle 1.12用户指南翻译——第五十二章. Maven 插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...
- Java进阶(五十二)利用LOG4J生成服务日志
Java进阶(五十二)利用LOG4J生成服务日志 前言 由于论文写作需求,需要进行流程挖掘.前提是需要有真实的事件日志数据.真实的事件日志数据可以用来发现.监控和提升业务流程. 为了获得真实的事件日志 ...
- SQL注入之Sqli-labs系列第五十关,第五十一关,第五十二关,第五十三关(ORDER BY堆叠注入)
0x1第五十关 源码中使用的mysqli_multi_query()函数,而之前使用的是mysqli_query(),区别在于mysqli_multi_query()可以执行多个sql语句,而mysq ...
- “全栈2019”Java第五十二章:继承与初始化详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 《手把手教你》系列技巧篇(五十二)-java+ selenium自动化测试-处理面包屑(详细教程)
1.简介 面包屑(Breadcrumb),又称面包屑导航(BreadcrumbNavigation)这个概念来自童话故事"汉赛尔和格莱特",当汉赛尔和格莱特穿过森林时,不小心迷路了 ...
- Bristol大学密码学博士生的五十二个知识点
Bristol大学密码学博士生的五十二个知识点 这个系列,是Bristol大学的密码安全工作组为密码学和信息安全相关的博士准备了52个基本知识点. 原地址:http://bristolcrypto.b ...
- NeHe OpenGL教程 第四十二课:多重视口
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
随机推荐
- 【数学】主成分分析(PCA)的详细深度推导过程
Based on Deep Learning (2017, MIT) book. 本文基于Deep Learning (2017, MIT),推导过程补全了所涉及的知识及书中推导过程中跳跃和省略的部分 ...
- Java 断言 Assert 使用教程与最佳实践
本文收录于 Github.com/niumoo/JavaNotes,Java 系列文档,数据结构与算法! 本文收录于网站:https://www.wdbyte.com/,我的公众号:程序猿阿朗 作为一 ...
- RAG 工具和框架介绍: Haystack、 LangChain 和 LlamaIndex
Haystack. LangChain 和 LlamaIndex,以及这些工具是如何让我们轻松地构建 RAG 应用程序的? 我们将重点关注以下内容: Haystack LangChain LlamaI ...
- [PHP] 自定义 laravel/passport 的误区讲解
Passport 的 Client 模型对应用户是默认的 User 模型.使用的 guards 是 api. 如果你发现自定义 passport 时总是调试不成功,那么很有可能是以下原因. /** * ...
- WPF 调试依赖属性变更方法
本文告诉大家如何调试 WPF 的某个依赖属性被变更的方法 在 WPF 里面,所有的依赖属性都有带通知的功能,通过带通知的功能,可以在通知里加上断点,通过调用堆栈了解是哪个模块调用的 对依赖属性添加通知 ...
- LVGL SCROLL循环滚动
一.案例测试 这里我使用LVGL的版本是8.3.3 运行案例 lvgl_examples\scroll\lv_example_scroll_6 效果如下所示 二.现象 这里先描述一下现象,当我们使用 ...
- python性能分析line_profiler
在编程世界中,效率是王道.对于Python开发者来说,line_profiler 是一把锐利的剑,能够深入代码的每一行,找出性能瓶颈.今天,就让我们一起深入探索 line_profiler,学习如何用 ...
- 应急响应--windows入侵排查
- PyTorch的安装与使用
技术背景 PyTorch是一个非常常用的AI框架,主要归功于其简单易用的特点,深受广大科研人员的喜爱.在前面的一篇文章中我们介绍过制作PyTorch的Singularity镜像的方法,这里我们单独抽出 ...
- JS基础--JavaScript实例集锦(初学)
1.子节点childNodes: <!DOCTYPE html> <html> <head> <title>childNodes</title&g ...