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的更多相关文章

  1. python第五十二课--自定义异常类

    myexception.py ''' 实现自定义异常类: ''' class MyException(Exception): def __init__(self,msg): super().__ini ...

  2. JAVA学习第五十二课 — IO流(六)File对象

    File类 用来给文件或者目录封装成对象 方便对文件与目录的属性信息进行操作 File对象能够作为參数传递给流的构造函数 一.构造函数和分隔符 public static void FileDemo( ...

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

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

  4. Gradle 1.12用户指南翻译——第五十二章. Maven 插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...

  5. Java进阶(五十二)利用LOG4J生成服务日志

    Java进阶(五十二)利用LOG4J生成服务日志 前言 由于论文写作需求,需要进行流程挖掘.前提是需要有真实的事件日志数据.真实的事件日志数据可以用来发现.监控和提升业务流程. 为了获得真实的事件日志 ...

  6. SQL注入之Sqli-labs系列第五十关,第五十一关,第五十二关,第五十三关(ORDER BY堆叠注入)

    0x1第五十关 源码中使用的mysqli_multi_query()函数,而之前使用的是mysqli_query(),区别在于mysqli_multi_query()可以执行多个sql语句,而mysq ...

  7. “全栈2019”Java第五十二章:继承与初始化详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. 《手把手教你》系列技巧篇(五十二)-java+ selenium自动化测试-处理面包屑(详细教程)

    1.简介 面包屑(Breadcrumb),又称面包屑导航(BreadcrumbNavigation)这个概念来自童话故事"汉赛尔和格莱特",当汉赛尔和格莱特穿过森林时,不小心迷路了 ...

  9. Bristol大学密码学博士生的五十二个知识点

    Bristol大学密码学博士生的五十二个知识点 这个系列,是Bristol大学的密码安全工作组为密码学和信息安全相关的博士准备了52个基本知识点. 原地址:http://bristolcrypto.b ...

  10. NeHe OpenGL教程 第四十二课:多重视口

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

随机推荐

  1. textfsm 案例分享

    由于安全需要,需要定期对接入层交换机配置进行合规检查,避免不规范配置存在的漏洞给公司网络带来安全风险. 如下案例是通过textfsm 提取交换机接口的配置信息,进一步进行检查准入配置是否开启: 1.首 ...

  2. Elastic与阿里云助力汽车及出行产业数字化转型

    ​简介:目前,阿里云和Elastic在全国已经有很多的项目正在开展合作,而在移动出行领域与享道出行的合作案例,则是代表性的. 在汽车产业变革逐步深入的当下,云计算.大数据等信息技术成为了汽车企业经历数 ...

  3. 淘宝推荐、视频搜索背后的检索技术竟是它!深度揭秘达摩院向量检索引擎Proxima

    简介: 淘宝搜索推荐.视频搜索的背后使用了什么样的检索技术?非结构化数据检索,向量检索,以及多模态检索,它们到底解决了什么问题?今天由阿里巴巴达摩院的科学家从业务问题出发,抽丝剥茧,深度揭秘达摩院内部 ...

  4. 阿里云田涛涛:高效智能的云,CloudOps让运维更简单

    ​简介:CloudOps:以应用为中心的自动化运维新趋势 12月21日,在阿里云弹性计算年度峰会上,阿里云弹性计算体验与控制系统负责人田涛涛发表了主题为<高效智能的云,CloudOps让运维更简 ...

  5. 当微服务遇上 Serverless | 微服务容器化最短路径,微服务 on Serverless 最佳实践

    ​简介: 阿里云Serverless应用引擎(SAE)初衷是让客户不改任何代码,不改变应用部署方式,就可以享受到微服务+K8s+Serverless的完整体验,开箱即用免运维. 前言 微服务作为一种更 ...

  6. dotnet C# 通过 Vortice 使用 Direct2D 特效入门

    本文将告诉大家如何通过 Vortice 使用 D2D 的特效 本文属于 DirectX 系列博客,更多 DirectX 和 D2D 以及 Vortice 库的博客,请参阅我的 博客导航 上一篇: Di ...

  7. 解决 System.Net.Sockets.SocketException 10106 无法加载或初始化请求的服务提供程序 无法联网

    本文收集 System.Net.Sockets.SocketException 异常错误码为 10106 导致无法联网的问题 这里的 10106 是 Win32 的 Socket 错误码,可以从 Wi ...

  8. HarmonyOS 应用生命周期有哪些? 按返回键会调用哪些生命周期?

    UIAbility 生命周期: onCreate :页面初始化,变量定义,资源加载. onWindowStageCreate:设置 UI 界面加载.设置 WindowStage 的事件订阅. onFo ...

  9. 云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理

    01 方案概述 现在绝大多数客户都有很多非结构化的数据存在 OSS 中,以图片,视频,音频居多.举一个图片处理的场景,现在各种终端种类繁多,不同的终端对图片的格式.分辨率要求也不同,所以一张图片往往会 ...

  10. [ABC345D] Tiling 位运算の极致运用

    [ABC345D] Tiling 原题解地址:Editorial by Kiri8128 神写法. 将 \(H \times W\) 的网格展开为 \(H \times (W + 1)\) 的序列, ...