【问题标题】:Google Cloud bigQuery connect ruby API query to tableGoogle Cloud bigQuery 将 ruby​​ API 查询连接到表
【发布时间】:2018-08-16 20:59:19
【问题描述】:

我有一个带有 Ruby API 的软件产品,在查询时会生成类似表格的输出,我想将输出动态连接到 Google Cloud bigQuery。

阅读文档后,Google 表格有一个动态连接器,PostgreSQL 和其他 (https://cloud.google.com/blog/big-data/2016/05/bigquery-integrates-with-google-drive) 的静态 ETL 连接器。

如果我有一个如下所示的 ruby​​ 查询:

ruby productX-api/ruby/query_table.rb param1 param2

这会从查询中生成一个表:

field1,field2,field3
foo,bar,bar
xyz,abc,def

我有哪些选项可以将它连接到 bigQuery?

【问题讨论】:

  • 嗯。我有点困惑(可能是因为我不懂 Ruby):“查询时生成类似表格的输出”:这是什么意思?它是否返回一个大字符串/文件,例如csv?
  • @GrahamPolley 是的,它是一个 ruby​​ 脚本,它返回一个大字符串/文件,例如以 csv 格式。如何将它连接到 bigQuery?
  • 你说的“连接”是什么意思?您想将该数据加载到 BigQuery 中,对吗?
  • 要么有一个守护进程每小时加载一次,要么有办法将查询连接到 bigQuery 表,就像 Google 表格目前提供的那样。
  • ruby 调用的结果是截断现有表还是每次加载时都是新表?

标签: google-bigquery


【解决方案1】:

没有您想要的内置连接器,但您可以使用Google Cloud client library for Ruby 以编程方式轻松加载生成的 csv 文件。例如:

require "google/cloud/bigquery"

bigquery = Google::Cloud::Bigquery.new
dataset = bigquery.dataset "my_dataset"
table = dataset.table "my_table"

file = File.open "my_data.csv"
load_job = table.load_job file

有关特定 load_job 方法的更多信息here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 2021-03-27
    • 2021-09-07
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多