BigQuery实时分析

3
有没有一种方法可以使用BigQuery进行实时分析?我使用了CSV上传选项,它会启动一个作业并在离线模式下加载数据,一旦加载完成就可以进行分析。但是,在关于BigQuery的公告中提到了使用BigQuery进行实时分析。如何实现这一点?我们可以以滴水方式将Google Cloud数据库中的数据追加(不更新)到BigQuery中进行实时分析吗?
另外,我注意到BigQuery CSV数据加载的速度大约比我的本地PC上运行的LucidDB和InfiniDB慢一个数量级,使用10GB的数据文件。对于BigQuery作业的完成,需要34分钟,而InfiniDB和LucidDB只需要5分钟。对于简单聚合,与InfiniDB相比,BigQuery的查询执行时间要慢两倍(6秒对比3秒,针对加载了约30多万条记录的10GB文件),但比LucidDB更好。
5个回答

8

3
  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或更多。


1
你的意思是“BigQuery当前的摄取机制不支持常量单记录更新”吗? - huyz
1
2013 更新:现在您可以流式传输数据。https://developers.google.com/bigquery/streaming-data-into-bigquery - Felipe Hoffa

2

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

由于它们是相互排斥的,因此实际上没有同时解决两个问题的解决方案。要快速进行大规模数据聚合,您必须执行大量索引和存储数据的工作 - 这正是您希望最小化以快速访问数据的操作。


0

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

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

0
如果您正在寻找一个基于SQL的实时分析层,以与关系型数据仓库并行运行,我们最近发布了一个名为Stride的实时分析API产品,它使用连续的SQL查询来处理流数据,从而提供您所需的实时分析层。Stride基于我们的开源流式SQL数据库PipelineDB,它是PostgreSQL的一个分支,并且将在今年年底之前成为标准的PostgreSQL扩展。
对于您的实时分析层,连续SQL查询流的好处在于,如果您有实时需求,那么根据定义,您已经知道要运行的查询,因此连续查询既加快了实时数据架构的速度,又大大简化了它,同时减少了存储多余粒度数据所产生的成本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接