主要通过一个数据序列化与反序列化的案例来介绍Streamsets(3.20.0 汉化版)的使用,因为大数据加工与处理的时候,避免不了数据的序列化与反序列化,这里主要讲一下使用数据序列化插件和反序列化插件实现avro格式数据序列化与反序列化,。当然还是可以序列化其他格式,这里挑一个难的讲一下。
学习目的:学习使用Data Generator 和 Data Parser。
需要配置一个数据流。
序列化效果:

反序列化效果:

1.一些JSON格式的数据:
{"cont":{"disk_total":1024,"disk_used":100,"disk_free":924,"file_sum":94,"file_type_sum":20,"file_grow_num":20,"disk_grow_num":20,"file_type_sum_document_docx":200,"file_type_sum_document_txt":200,"disk_used_document_docx":200,"disk_used_document_txt":600},"status_tag":{"tag_version":"1.0","data_type":4,"data_subtype":16387,"producer_id":24705,"timestamp":"2020-03-24 12:00:00.00"}}
Avro schema:
{"type": "record","name": "cont1","fields": [{"name": "cont","type": {"type": "record","name": "cont2","fields": [{"name": "disk_total","type": "int"},{"name": "disk_used","type": "int"},{"name": "disk_free","type": "int"},{"name": "file_sum","type": "int"},{"name": "file_type_sum","type": "int"},{"name": "file_grow_num","type": "int"},{"name": "disk_grow_num","type": "int"},{"name": "file_type_sum_document_docx","type": "int"},{"name": "file_type_sum_document_txt","type": "int"},{"name": "disk_used_document_docx","type": "int"},{"name": "disk_used_document_txt","type": "int"}]}}]}
1.使用开发测试origin类组件准备一些json格式的数据

2.数据序列成avro格式
使用数据序列化插件将json格式的数据序列化成avro格式并通过byte数组输出,下面配置一下数据输出的字段cont2和类型Byte array。

配置一下数据格式为avro,并需要配置一下avro的schema(不知道avro格式的可以学习一下)

3.将序列的数据反序列
使用数据反序列化插件将avro格式的数据反序列化成json格式,下面配置一下要反序列化的数据字段cont2和数据输出的字段cont2(将反序列化的结果还存到cont2中)。

同样将序列化中用到的avro schema填入。

Streamsets实战之路正在更新中,尽情期待!!!
本文通过一个实际案例详细介绍了如何在Streamsets 3.20.0 汉化版中进行数据的序列化与反序列化,特别是Avro格式的数据处理。主要内容包括使用Data Generator和Data Parser组件,配置数据流,以及展示序列化和反序列化的效果。文章旨在帮助读者掌握数据序列化插件和反序列化插件的使用,以应对大数据加工中的序列化需求。
1510

被折叠的 条评论
为什么被折叠?



