For*_*ick 5 json hbase bigdata nosql google-cloud-bigtable
我想在Google Cloud Bigtable(几个PetaBytes)上存储大量数据以用于服务目的。我计划使用主键来访问数据,有时通过键前缀查询来访问。
没有计划进行数据更新。仅追加到现有表。
我的问题是:由于我不使用任何列来对查询进行过滤/查询/排序(无论如何在Bigtable中是不可能的),将数据存储在单独的列中而不是每行存储一个JSON文档是否有好处?
谢谢!
披露:我负责Cloud Bigtable的产品管理。
如果您不打算按每个列的粒度来检索或更新数据,那么将JSON文档存储为单个值的计划就可以了,特别是因为如果您存储每个列的数据,则列族名称本身(以及限定符)也需要存储在每一行中,从而增加了存储开销,该开销与值的数量成比例,因此在您的规模上可能有意义。在模型中,您将Bigtable用作键值存储。
如果您决定将来将JSON分为许多列,则可以将其他列族添加到现有的Bigtable表中(或仅使用现有列族中的其他列限定符),并通过并行过程(例如,Hadoop MapReduce或Google Cloud Dataflow。
旁注:JSON非常冗长,占用一些空间;虽然您可以自己进行预压缩,但Cloud Bigtable会原生(透明地)压缩数据以帮助缓解这种情况。就是说,要考虑的一个替代方案是协议缓冲区或另一种二进制编码,这样可以更有效地利用空间。
鉴于您计划存储多个PB的数据,您可能会需要超过默认配额的30个Bigtable节点-如果是这样,请为您的用例请求额外的配额。
请查看“大表性能”页面,了解每个大表服务器节点应达到的性能指标,但是您应该对特定的读/写模式进行基准测试,以建立基准规范并相应地进行扩展。
祝您项目顺利!
| 归档时间: |
|
| 查看次数: |
1165 次 |
| 最近记录: |