【发布时间】:2019-02-22 20:43:38
【问题描述】:
我希望为我的时间序列数据用例最终确定大表与大查询。
我已经通过https://cloud.google.com/bigtable/docs/schema-design-time-series
这是用于存储 Omniture 数据,其中包含网站访问者密钥(一些长密钥)、他的 cookie id(一些长密钥)、他的 IP 的时间戳系列数据网络点击、cookie 等信息
什么可以用作大表的行键?正如我从最佳实践中学到的,我不能使用时间戳或 CookieId 作为前缀。但应该有一个标识符(最好是字母?),然后是时间序列后缀。今天的数据量为 5 亿,52 列存储在 SQL 表中。我认为数据可能会根据 OLTP 处理进行更新。但是稍后会在时间序列数据上查询该表以进行 OLAP 处理。
a) Big table 将是这里的最佳选择,还是我应该使用 Big Query,因为稍后根据时间序列数据进行查询会对我有更多帮助? b)如果使用大表,最好的行键是什么,因为时间序列是我为我的数据看到的唯一含义过滤器。我相信,使用表中的其他字段,如visitorkey、cookieid ids(Long ids) 作为时间戳前缀仍然会导致整个数据填满 Bigtable 中的 1 个节点,而不是分发。
请告诉我。
【问题讨论】:
-
我可能对此并不陌生,但几个月前我们在这里工作时遇到了同样的问题。我们得出的结论是,BigTable 更适合需要快速检索的生产应用程序,而不是分析用例。看起来您正在寻找数据科学类型的案例。我建议使用 BigQuery。如果您需要生产中的结果,您可以将 BigTable 视为架构的一部分,而不是数据仓库
-
是的,我的用例是数据仓库/科学。我对使用 BigQuery 持相同看法,
-
FKrauss - 事实上,我们经常看到人们使用 Bigtable 作为生产架构的一部分,而不是数据仓库/查询系统。我的回答详细说明了原因,您可能会觉得这很有趣!我只是想反驳一下 Bigtable 不适用于分析用例的想法。必然是!但它更多的是基于大规模 MapReduce 或基于 Dataflow 的分析模型,因为正如您所发现的那样,它并不总是能很好地适应更多 SQL-y 工作负载。
标签: google-bigquery bigtable google-cloud-bigtable