首页 > 其他分享 >kettle从入门到精通 第五十二课 ETL之kettle Avro output

kettle从入门到精通 第五十二课 ETL之kettle Avro output

时间:2024-04-14 16:44:06浏览次数:26  
标签:文件 Avro 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 TypeAvro 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 二进制文件

 

 

标签:文件,Avro,kettle,avro,步骤,output
From: https://www.cnblogs.com/zjBoy/p/18115067

相关文章

  • 解锁ETLCloud中Kettle的用法
    随着大数据时代的到来,数据的处理和管理成为各行各业不可或缺的一环。ETL(Extract-Transform-Load)工具作为数据处理的重要环节,扮演着将数据从源端抽取出来、经过转换处理,最终加载至目标端的关键角色。在众多ETL工具中,Kettle以其强大的功能和灵活的应用得到了广泛的应用。一、Kettle......
  • kettle从入门到精通 第五十一课 ETL之kettle Avro input
    1、我们在学习nifi的过程中有接触到Avroschema,当时我在想kettle应该也支持Avro,果不其然kettle也是支持Avro文件的读和写的。今天我们一起来学习下kettle中如何使用Avroinput读步骤。对Avro不了解的,可以学习文章ETL工具-nifi干货系列第四讲Avroschema序列化框架。打开spoo......
  • kettle使用MD5加密增量获取接口数据
    kettle使用MD5加密增量获取接口数据场景介绍:使用JavaScript组件进行MD5加密得到Httpheader,调用API接口增量获取接口数据,使用jsoninput组件解析数据入库案例适用范围:MD5加密可参考、增量过程可参考、调用API接口获取数据可参考、JsonInput组件使用可参考整个job设置......
  • Tensorflow 中conv2d_transpose函数output_shape参数的由来和范围
    目录1.卷积和转置卷积(1)卷积(2)转置卷积2.tf.nn.conv2d函数和tf.nn.conv2d_transpose函数(1)tf.nn.conv2d函数(2)tf.nn.conv2d_transpose函数3.转置卷积output_shape参数的探讨(1)卷积过程中,存在尺度丢失现象。(2)转置卷积是恢复卷积之前原始信息的过程1.卷积和转置卷积(1)卷积......
  • ETL工具-nifi干货系列 第四讲 Avro schema 序列化框架
    一、在使用nifi的过程中会使用到遇到avroschema、avrodata、avroReader、avroWriter等,所以本节课和大家一起学习下avro相关知识。 二、什么是AvroApacheAvro是hadoop中的一个子项目,也是一个数据序列化系统,其数据最终以二进制格式,采用行式存储的方式进行存储。三、什么......
  • KETTLE:如何提高传输速度
    先看结果:7分钟500万数据。  优化步骤:1.增加参数useServerPrepStmts=falserewriteBatchedStatements=trueuseCompression=true 122.第二步,增加写入量。默认的100太小,改成合适的写入量。 原文链接:https://blog.csdn.net/pingsha_luoyan/a......
  • Kettle之Neo4j插件
    Neo4j插件下载安装下载地址:https://github.com/knowbi/knowbi-pentaho-pdi-neo4j-output/releases解压文件,放入kettle的plugins目录中需要先删除所有历史/plugins/Neo4JOutput的文件夹重启kettle使用kettle版本插件,已不再维护;现维护的为kettle分支hop,地址:https://github.c......
  • outputStream(输出流)转inputstream(输入流)以及输入流如何复用
    https://blog.csdn.net/xuxu_study/article/details/129992752文件、流之间的转换MultipartFile转inputstream(输入流)outputStream(输出流)转为inputstream(输入流)inputstream(输入流)转ByteArrayOutputStreamMultipartFile文件直接转输入流上传和生成摘要MultipartFile文件需要......
  • 操作系统综合题之“采用记录型信号量机制实现进程INPUT、PROCESS和OUTPUT的同步算法(
    1.问题:系统中有有三个进程INPUT、PROCESS和OUTPUT,共用两个缓冲区BUF1和BUF2。假期设BUF1中最多可放10个数据,现已放入了2个数据;BUF2最多可放5个数据。INPUT进程负责不断将输入的原始数据推送入BUF1,PROCESS进程负责从BUF1中取出原始数据进行处理,并将处理后的结果数据送入到BUF2中,OUT......
  • zabbix报错fping failed:no output
    zabbix的web前端界面突然连接不上了,页面一直转圈,无法响应,如下图: 排查思路如下:1、检查zabbix-server、Apache2、MySQL进程,发现都是active状态没有问题,端口号也正常2、查看zabbix-server日志文件,发现有报错,想着重启下zabbix-server进程,但是重启zabbix-server进程根本起不来,总......