Google bigquery 如何在Bigqery Ruby API中设置查询的目标表?

Google bigquery 如何在Bigqery Ruby API中设置查询的目标表?,google-bigquery,Google Bigquery,是否有BigQueryAPI的方法允许您设置查询的目标表?我在RESTAPI中找到了一个,但不适用于ruby之类的编程语言 如果有其他语言的例子。。也许我可以试着用ruby做同样的事情@mikhailberlyant发现了它 您需要通过API设置目标表。这些示例代码段中的任何一个都应该易于移植到客户端,并且足以让您继续: Java JobConfiguration jobConfiguration = newBuilder("select * from..)

是否有BigQueryAPI的方法允许您设置查询的目标表?我在RESTAPI中找到了一个,但不适用于ruby之类的编程语言


如果有其他语言的例子。。也许我可以试着用ruby做同样的事情

@mikhailberlyant发现了它


您需要通过API设置
目标表。这些示例代码段中的任何一个都应该易于移植到客户端,并且足以让您继续:

Java

JobConfiguration jobConfiguration = newBuilder("select * from..)
                    .setAllowLargeResults(true)
                    .setUseLegacySql(false)
                    .setDryRun(dryRun)
                    .setDestinationTable(TableId.of("projectId", "dataset", "table"))
                    .setCreateDisposition(CREATE_IF_NEEDED)
                    .setWriteDisposition(WRITE_TRUNCATE)
                    .setPriority(BATCH)
                    .build();
Python

from google.cloud import bigquery
client = bigquery.Client()
query = """\
SELECT firstname + ' ' + last_name AS full_name,
       FLOOR(DATEDIFF(CURRENT_DATE(), birth_date) / 365) AS age
 FROM dataset_name.persons
"""
dataset = client.dataset('dataset_name')
table = dataset.table(name='person_ages')
job = client.run_async_query('fullname-age-query-job', query)
job.destination = table
job.write_disposition= 'truncate'
job.begin()

我不知道这是否正是你要问的——但看起来是:o)

用于Google BigQuery API客户端库


您可以在

中查看所有受支持客户端的更多信息。您可以使用单个命令查询目标表:

bigquery = Google::Cloud::Bigquery.new(...)
dataset = bigquery.dataset('my_dataset')
job = bigquery.query_job("SELECT * FROM source_table", table: dataset.table('destination_table'), write: 'truncate', create: 'needed')
job.wait_until_done!

通过这个链接,我现在知道他们是如何对待bigquery的“工作”的了