Database 是否有支持协议缓冲区的数据库?

Database 是否有支持协议缓冲区的数据库?,database,protocol-buffers,Database,Protocol Buffers,在SQL或NoSQL世界中是否有任何数据库支持?(支持可能意味着各种各样的事情,但希望包括能够对协议缓冲区中的字段进行索引。)我不知道有任何支持(不是说它们不存在,我只是不知道它们),但也许值得讨论一种替代策略及其优缺点 通常,您希望存储协议缓冲区的序列化版本,并通过某个特定密钥(可能是唯一标识符)进行索引。然后,您可以为指向该唯一标识符的其他感兴趣的字段构建二级索引。其思想是,您希望这样的显式索引能够扩展到提供任意索引的系统之外。这显然带来了许多新问题(如陈旧的任意索引)。我发现了一个项目:

在SQL或NoSQL世界中是否有任何数据库支持?(支持可能意味着各种各样的事情,但希望包括能够对协议缓冲区中的字段进行索引。)

我不知道有任何支持(不是说它们不存在,我只是不知道它们),但也许值得讨论一种替代策略及其优缺点


通常,您希望存储协议缓冲区的序列化版本,并通过某个特定密钥(可能是唯一标识符)进行索引。然后,您可以为指向该唯一标识符的其他感兴趣的字段构建二级索引。其思想是,您希望这样的显式索引能够扩展到提供任意索引的系统之外。这显然带来了许多新问题(如陈旧的任意索引)。

我发现了一个项目:


说protobuf的是sql,看起来很有希望,但最后一次提交是在2016年3月中旬。

ClickHouse最近增加了对protobuf消息的支持

云扳手将为protobufs提供本机支持

亵渎

“ProfaneDB是协议缓冲区和RocksDB之间的gRPC接口”

附言:
虽然这个问题在10年前就被提出了,但我仍然觉得它非常相关,特别是与gRPC的提升有关。希望这能有所帮助。

15分钟的谷歌搜索没有发现任何积极的结果。Hadoop HBase使用协议缓冲区作为服务通信的一部分,并且有一个节俭客户端API,但在数据存储层没有。Hadoop Avro与PBs在同一个领域,也许我们将来会看到与HBase的集成?为什么不使用关系数据库(将每个值放在自己的列中,而不是将所有值放在一列中)?@Brendan:当然,这是一种方法。最让我惊讶的是,noSQL数据库都没有现成的解决方案,因为有些数据库(如MongoDB)存储类似的二进制blob。您是否考虑对数据模型进行版本控制而不是删除它,从而达到了这一要求?我正在考虑这样做。如果不是,是因为HBase行可以有任意数量的列,在这种情况下,协议缓冲区非常适合。不过我计划通过编程的方式来实现这一点。因为它是专有的,所以它并不能真正帮助您,但Google支持您想象的协议缓冲区。我不确定是否有任何公共数据库实现了类似的功能。为什么有人希望将密钥和其他实体打包到protobuf中,而不是任何语言都可以使用基本类型进行数据库索引等。它的用途非常好,但这并不意味着它应该在没有任何意义的任何地方使用,如果您想在多台机器上使用数据库,您可能需要自己处理二级索引,而不是依赖某些数据库软件来完成。GCP BigTable支持基于键/值的索引,这可用于protobuf,在protobuf中,您可以根据特定的行键(唯一标识符)进行索引(如果这是你正在寻找的解决方案)是的,我不明白为什么它被放弃了。你在哪里看到的?谷歌的内部扳手支持protobuffers,但云扳手团队表示,他们目前没有任何计划在本地支持protobuffers。