其他分享
首页 > 其他分享> > streamsets实战--处理protobuf数据

streamsets实战--处理protobuf数据

作者:互联网

 1.服务器安装protoc

(1)  wget https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protoc-3.14.0-linux-x86_64.zip  下载protoc-3.14.0-linux-x86_64.zip包上传服务器

(2)  unzip protoc-3.14.0-linux-x86_64.zip解压后会生成bin目录和include目录

(3) cp bin/protoc /usr/local/bin/;cp -r include/google /usr/local/include/

(4) protoc --version查看protoc版本

2.编写.proto文件

vim testjson.proto

syntax = "proto2";
//class mate
package json2pb;
message PersonInfo {
    //my name
    required string name = 1;
    //my age
    optional int32 age = 2;
    //my work unit
    optional string work_unit = 3;
    message ClassMate {
       //name
       optional string name = 1;
       //age
       optional uint32 age = 2;
    }
    repeated ClassMate class_mate = 4;
}

3.生成protobuf描述文件

protoc --include_imports --descriptor_set_out=Testjson.desc testjson.proto

执行完成后会在当前目录生成Testjson.desc

4.配置数据流

4.1 准备工作

1) 生成的Testjson.desc文件需拷贝到工作流安装目录的resources目录下

2)准备测试用json数据

{"name":"scq","age":30,"work_unit":"taobao","class_mate":[{"name":"jim","age":30}]}

4.2 配置

1)配置数据源

ff089c039135709234e1f660c5a1c07f.png

2)配置数据生成器,将数据转为protobuf格式

9e3d514c1ab4f4aa0fe1fc74be1f96ef.png

c56a8c8414b27c5be86abd07a8065715.png

3)配置数据解析,将protobuf解析为json

58a561db0de89ef314a5ce456ecbdc12.png

faac4d5eaac9a1219726c0b49018ca21.png

4) 配置目的端,使用丢弃插件进行测试

4.3 预览数据流

4535218b2e9f0f09035cdc807158782b.png

06b84faf096076b32d4c355aa1ce6dc2.png

标签:protoc,protobuf,--,age,streamsets,include,name
来源: https://blog.51cto.com/yjy724/2950033