Ros*_*ndo 4 bigtable google-bigquery google-cloud-bigtable
我希望最终确定Big table vs Big Query以获取我的时间序列数据.
我通过了https://cloud.google.com/bigtable/docs/schema-design-time-series
这是用于存储Omniture数据,其中包含网站访问者密钥(一些Long密钥),他的cookie id(一些Long密钥),他的IP的时间戳系列数据web命中,cookie等信息
什么可以用作Big table的rowkey?我不能使用时间戳或CookieId作为前缀,因为我从最佳实践中学习.但是应该有一个标识符(最好是字母?),然后是时间序列后缀.数据量为5亿,今天在SQL表中存储了52列.我认为数据可能会根据OLTP处理进行更新.但是稍后会在时间序列数据上查询该表以进行类似的OLAP处理.
a)Big table在这里是最好的选择,还是我应该使用Big Query,因为稍后根据时间序列数据查询会对我有所帮助?b)如果使用Big table,那么最好的行键是什么,因为timeseries是我看到的唯一意义过滤器.我相信,使用表中的其他字段,如visitorkey,cookieid ID(Long ids)作为带时间戳的前缀仍然会导致整个数据填满Bigtable中的1个节点,而不是分发.
请告诉我.
(我是Cloud Bigtable团队的工程师)
正如您从我们的文档中发现的那样,行键格式是您在使用Bigtable时做出的最大决定,因为它决定了哪些访问模式可以有效执行.在时间戳之前使用visitorKey + cookie作为前缀听起来像是可以避免热点问题,因为您的站点访问者几乎肯定会比群集中的节点多.Bigtable一直为这些时间序列用例提供服务!
但是,您也来自SQL体系结构,这并不总是适合Bigtable的模式/查询模型.所以这里有一些问题可以帮助您入门:
如果您需要这些功能的某些组合,也可以组合这两种服务.例如,假设您一直在接收大量更新,但希望能够执行复杂的即席查询.如果你正好处理稍微延迟的数据版本,那么将更新写入Bigtable是有意义的,然后使用Dataflow定期扫描表格并将最新事件的后处理版本导出到BigQuery中.GCP也允许的BigQuery到在一些地区从Bigtable的发球直接查询:https://cloud.google.com/bigquery/external-data-bigtable