Thrift、Avro 和 ProtoBuf 数据治理

Posted

技术标签:

【中文标题】Thrift、Avro 和 ProtoBuf 数据治理【英文标题】:Thrift, Avro and ProtoBuf data governance 【发布时间】:2020-10-27 05:05:24 【问题描述】:

我们有一个将数据从主要交易系统流向其他下游(例如数据分析和机器学习团队)的用例。

其中一个要求是确保数据源可以控制谁可以读取哪一列,以及数据的潜在生命周期,以确保在源数据删除时(例如,如果用户删除了位于另一个域中的数据),该数据会被清除删除帐户,我们需要确保所有下游中的数据都被删除。

在考虑 Thrift、Avro 和 ProtoBuf 时,我们可以使用哪些通用框架来进行此类数据治理?这些协议是否支持围绕数据授权、生命周期进行此类数据治理的元数据?

【问题讨论】:

【参考方案1】:

让我说清楚:

protobuf 不是安全设备;对于使用正确工具的人来说,它与 xml 或 json 一样具有可读性,但有一个小问题是可能不确定如何解释某些值;

它与 JSON 或 XML 没有太大区别。它只是一种界面语言。当然,它有encoding,它有点不同并且更可定制,但它绝不会遇到安全问题。确保发送方和接收方之间的通道安全由您决定。

【讨论】:

谢谢,是的,我同意 AVRO 或 ProtoBuf 只是编码格式。问的原因是,我们有一个用例,应用程序团队将通过网络定义数据,我们想从右脚开始,从而探索哪种编码允许应用程序团队将 ACL 元数据嵌入数据模式中。 这里实际上没有错,因为在 AVRO 中你有 message framing,而在 protobuf 中你有 custom options。由你和你的团队来决定什么适合你的风格,什么对你们所有人来说更容易。如果我误解了什么,请纠正我

以上是关于Thrift、Avro 和 ProtoBuf 数据治理的主要内容,如果未能解决你的问题,请参考以下文章

Thrift、Avro、Protocolbuffers - 他们都死了吗?

rpc框架:thrift 和protobuf有啥区别?

Avro和Thrift区别(未完待续)

序列化系列protobuf

译文:Avro,Protocol Buffer和Thrift中的模式演化

dubbo/dubbox 增加原生thrift及avro支持