主要通过一个数据序列化与反序列化的案例来介绍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实战之路正在更新中,尽情期待!!!