【问题标题】:Google BigQuery: Batch load through APIGoogle BigQuery:通过 API 批量加载
【发布时间】:2018-08-15 19:16:34
【问题描述】:

首先,是否可以通过其 API 批量加载到 Google BigQuery 中?如果是,那么费用是多少?

我不想进行流式加载,因为与批量加载相比,它的成本有点高。

我将每天插入一百万行。我将使用 Python 在 API 中使用“补丁”或“更新”。

【问题讨论】:

  • 百万行大概有多少字节?您能否根据自己的理解定义“慢”是什么意思,因为流式 API 支持 100.000 行/秒,我认为这在市场上是独一无二的。
  • 哦,是的。我收回“缓慢”的说法。将其从评论中删除。我想每天插入大约 3-4 百万。在插入 BigQ 之前,我也想做一些数据处理。

标签: google-bigquery


【解决方案1】:

你可以加载数据:

您正在寻找的是第 3 行,在该页面上您可以找到许多不同编程语言的示例,从本地或 GCS 文件加载数据是免费的。

您的数据可以是以下任何一种格式:

  • 逗号分隔值 (CSV)
  • JSON(换行符分隔)
  • Avro
  • 镶木地板
  • 兽人

【讨论】:

  • 没有。我不是通过本地加载数据,甚至不是从 GCS 加载数据。它来自 Azure blob。所以我有一个 python 脚本,它从 blob 中提取数据,对其进行处理,然后将其推送到 BigQ。因此,我想使用 API 将其推送到 BigQ 表中。所以我想知道,是否可以通过python使用Batch load?
  • python 脚本在某处运行,在该机器上创建一个文件并将该文件推送到 BQ 选项“本地”。否则,如果您想即时进行,则需要使用流式插入。
  • 所以你是说如果我使用虚拟机,脚本会将文件保存在那里,然后以编程方式将其推送到 BQ?另外,不能将 Azure blob 路径提供给 BQ 吗?我猜 Blob 确实提供了 http 文件来访问它的容器。
  • 您需要在VM上创建文件并发出免费的load api调用。其他方法在这里描述:stackoverflow.com/questions/44806345/…
  • 我看到了这篇文章,但我认为已经一年了,可能有一种新的方法来处理这个用例,而不是将其存储在本地或 GCS 中。
【解决方案2】:

我认为这就是您要查找的内容:Batch Queries for Python

另外,这里是 Python 和 BigQuery 的 GitHub Repository,您可以在 snippets.py 下的文档中找到 sn-p。

您可以在 [3] 找到 BigQuery 定价,在 [4] [5] 找到计算器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-28
    • 2021-08-15
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多