使用BigQuery进行实时分析

时间:2012-05-02 13:28:43

标签: google-bigquery

有没有办法使用BigQuery运行实时分析?我使用了CSV上传选项来启动作业并以脱机模式加载数据,可以在加载完成后对其进行分析。但在有关BigQuery的公告中,有人提到使用BigQuery进行实时分析。怎么能实现这一目标?我们是否可以将谷歌云数据库中的数据(无更新)以涓流模式附加到BigQuery进行实时分析?

作为旁注,我注意到BigQuery CSV数据加载比使用10GB数据文件在本地PC上运行的LucidDB和InfiniDB慢一个数量级。完成BigQuery工作需要34分钟,而InfiniDB和LucidDB需要5分钟。与InfiniDB相比,BigQuery的查询执行时间(对于简单聚合)慢两倍(6秒对比加载大约3000万条记录的10GB文件3秒)但优于LucidDB。

5 个答案:

答案 0 :(得分:7)

2013 update:现在您可以将数据流式传输到BigQuery,并实时查询。

(您输入的数据可用于稍后查询的时间)

https://developers.google.com/bigquery/streaming-data-into-bigquery

答案 1 :(得分:2)

  1. 目前无法使用BigQuery直接为一条记录直接传输数据。唯一支持的提取方法是从Google Cloud存储导入csv文件,或直接通过多部分mime POST请求导入。摄取的配额为2次/分钟,每天1,000次导入请求,每次导入请求100GB总数据(请参阅:https://developers.google.com/bigquery/docs/quota-policy)。

  2. “实时分析”(对大量数据运行非常快速的即席查询的能力)和“实时数据”的持续收集(哪些键值数据存储更好)之间存在区别适合支持)。 BigQuery目前的摄取机制不支持持续的单一记录更新,但它确实允许开发人员在大量数据集上快速运行查询。

  3. 虽然Stack Overflow不是最适合进行基准测试的地方,但我想补充一点,在不了解您使用的数据模式的情况下,很难对摄取和查询速度进行基准测试。虽然10Gb是大量的数据,但是在更大的数据集(例如10TB或更多)上看到摄取和查询速度的比较会很有趣。

答案 2 :(得分:1)

最好将实时分析和数据仓库分开。可以针对数据收集速度进行优化,以提供警报和触发器。后者用于大规模并行搜索和聚合。

两者都没有真正的解决方案,因为它们是相互排斥的。要快速进行大数据聚合,您必须在索引和存储数据方面执行大量工作 - 您希望最小化的操作以便快速访问数据。

答案 3 :(得分:0)

在BiqQuery中导入大量数据的最佳方法是使用Google提供的python工具。这是上传数据最有效的方式。我正在使用这些工具

  1. 首先使用gsutil
  2. 在Google Cloud中上传原始数据
  3. 使用bq
  4. 将数据从GC导入BigQuery

答案 4 :(得分:0)

如果您正在寻找与关系数据仓库并行运行的基于SQL的实时分析层,我们最近发布了一个名为Stride的实时分析API产品,该产品使用对流数据进行连续SQL查询来提供动力您正在谈论的实时分析层的类型。 Stride基于我们的开源流式SQL数据库PipelineDB,它是PostgreSQL的一个分支,并且在今年年底之前实际上将成为标准的PostgreSQL扩展。

对于实时分析层的流上连续SQL查询的好处是,如果您有实时需求,那么根据定义,您已经知道要运行的查询,因此连续查询既可以加速又可以大大简化您的实时数据架构,同时降低了存储无关粒度数据所带来的成本。