【问题标题】:Do any of thrift, protobuf, avro, etc support quering on encoded data directly?thrift、protobuf、avro 等是否支持直接查询编码数据?
【发布时间】:2013-07-07 17:55:16
【问题描述】:

thrift、protobuf、avro 等是否支持对生成的紧凑数据进行查询?还是像 thrift-server 这样的东西首先必须在能够查询压缩数据之前对其进行解码?

背景:因为我没有看到的用例可能会有完全不同的答案。

我已经在纸上勾勒出一个自定义数据结构(类似于trie),其中将包含数以千万计的键值对。整个东西都需要在 RAM 中,所以它需要是紧凑的。

出于这个原因,我可能会跳过普通的 kv 存储,因为编码的开销太大。他们无法针对结构的特殊情况进行优化。 (Redis 每个键的开销最小 afaik 但还不够:每个键 100+ 字节)

我研究了ThriftProtobufAvroMessagepack,这一切都可以让我将数据编码为一个很好的紧凑结构,同时照顾我的数据结构的特定机会(编码键为 1 或 2 个字节,位打包,值是固定长度等)

但是,我完全不清楚这些协议/技术中的任何一个是否允许我按原样查询压缩的数据结构,或者是否必须在查询之前对数据结构进行解编码?如果是后者,那么整个练习对我来说并没有多大用处。

作为替代方案,我考虑过其他编程语言(可能是 c/c++,尽管我从未涉足过),这可能会让我对结构进行非常严格的内存控制(与 Node/ javascript 这非常糟糕)

有人吗?

【问题讨论】:

  • 需要解码才能查询
  • @BruceMartin:介意我接受这个答案吗?

标签: data-structures protocol-buffers thrift avro


【解决方案1】:

需要解码才能查询

【讨论】:

    猜你喜欢
    • 2020-10-27
    • 1970-01-01
    • 2012-09-16
    • 2021-11-15
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多