是的,可以使用WRITE_APPEND选项来将数据附加到现有的表中。具体实现方法如下:
from google.cloud import bigquery
client = bigquery.Client()
# dataset_id和table_id根据实际情况进行替换
dataset_id = 'my_dataset'
table_id = 'my_table'
table_ref = client.dataset(dataset_id).table(table_id)
# 定义要插入的数据
data = [
{'id': 1, 'name': 'Alice', 'age': 30},
{'id': 2, 'name': 'Bob', 'age': 35}
]
# 定义Schema
schema = [
bigquery.SchemaField('id', 'INTEGER'),
bigquery.SchemaField('name', 'STRING'),
bigquery.SchemaField('age', 'INTEGER'),
]
# 定义插入配置
job_config = bigquery.LoadJobConfig()
job_config.write_disposition = bigquery.WriteDisposition.WRITE_APPEND
job_config.schema = schema
# 插入数据
client.load_table_from_json(data, table_ref, job_config=job_config).result()
在上述代码中,我们在job_config中设置write_disposition为WRITE_APPEND,这样就会将新数据附加到现有表的末尾。如果不设置write_disposition,则默认为WRITE_EMPTY,这样就会导致插入重复数据时报错。