有没有办法使用BigQuery运行实时分析?我使用了CSV上传选项来启动作业并以脱机模式加载数据,可以在加载完成后对其进行分析。但在有关BigQuery的公告中,有人提到使用BigQuery进行实时分析。怎么能实现这一目标?我们是否可以将谷歌云数据库中的数据(无更新)以涓流模式附加到BigQuery进行实时分析?
作为旁注,我注意到BigQuery CSV数据加载比使用10GB数据文件在本地PC上运行的LucidDB和InfiniDB慢一个数量级。完成BigQuery工作需要34分钟,而InfiniDB和LucidDB需要5分钟。与InfiniDB相比,BigQuery的查询执行时间(对于简单聚合)慢两倍(6秒对比加载大约3000万条记录的10GB文件3秒)但优于LucidDB。
答案 0 :(得分:7)
2013 update:现在您可以将数据流式传输到BigQuery,并实时查询。
(您输入的数据可用于稍后查询的时间)
https://developers.google.com/bigquery/streaming-data-into-bigquery
答案 1 :(得分:2)
目前无法使用BigQuery直接为一条记录直接传输数据。唯一支持的提取方法是从Google Cloud存储导入csv文件,或直接通过多部分mime POST请求导入。摄取的配额为2次/分钟,每天1,000次导入请求,每次导入请求100GB总数据(请参阅:https://developers.google.com/bigquery/docs/quota-policy)。
“实时分析”(对大量数据运行非常快速的即席查询的能力)和“实时数据”的持续收集(哪些键值数据存储更好)之间存在区别适合支持)。 BigQuery目前的摄取机制不支持持续的单一记录更新,但它确实允许开发人员在大量数据集上快速运行查询。
虽然Stack Overflow不是最适合进行基准测试的地方,但我想补充一点,在不了解您使用的数据模式的情况下,很难对摄取和查询速度进行基准测试。虽然10Gb是大量的数据,但是在更大的数据集(例如10TB或更多)上看到摄取和查询速度的比较会很有趣。
答案 2 :(得分:1)
最好将实时分析和数据仓库分开。可以针对数据收集速度进行优化,以提供警报和触发器。后者用于大规模并行搜索和聚合。
两者都没有真正的解决方案,因为它们是相互排斥的。要快速进行大数据聚合,您必须在索引和存储数据方面执行大量工作 - 您希望最小化的操作以便快速访问数据。
答案 3 :(得分:0)
在BiqQuery中导入大量数据的最佳方法是使用Google提供的python工具。这是上传数据最有效的方式。我正在使用这些工具
答案 4 :(得分:0)
如果您正在寻找与关系数据仓库并行运行的基于SQL的实时分析层,我们最近发布了一个名为Stride的实时分析API产品,该产品使用对流数据进行连续SQL查询来提供动力您正在谈论的实时分析层的类型。 Stride基于我们的开源流式SQL数据库PipelineDB,它是PostgreSQL的一个分支,并且在今年年底之前实际上将成为标准的PostgreSQL扩展。
对于实时分析层的流上连续SQL查询的好处是,如果您有实时需求,那么根据定义,您已经知道要运行的查询,因此连续查询既可以加速又可以大大简化您的实时数据架构,同时降低了存储无关粒度数据所带来的成本。