在Java中更新BigQuery架构/添加新列
我需要通过Java更新BigQuery表模式。更改将是附加的(仅添加新列)
我正在努力找到实现这一目标的方法。在Python中,可以这样做:
table_ref = client.dataset(dataset_id).table(table_id)
table = client.get_table(table_ref) # API request
original_schema = table.schema
new_schema = original_schema[:] # creates a copy of the schema
new_schema.append(bigquery.SchemaField('phone', 'STRING'))
table.schema = new_schema
table = client.update_table(table, ['schema']) # API request
在https://cloud.google.com/bigquery/docs/managing-table-schemas页上,声明将使用修补程序端点执行此任务
提出了一个改进补丁API的问题,但我不知道结果https://github.com/googleapis/google-cloud-java/issues/1564
任何帮助都将不胜感激。谢谢
# 1 楼答案
Java中的想法与您共享的Python示例中的想法相同,即获取当前模式并向其添加一个新列。您可以通过我准备的代码片段来实现这一点,您可以在下面看到:
这段代码使用的是
com.google.cloud.bigquery
包(参见其documentation here)。然后,它按照tables documentation中的示例指定模式定义,并最终更新它# 2 楼答案
我还通过另一个Google BigQuery软件包实现了这一点: