在BigQuery中,加载操作(load)是事务性的,即要么所有的数据都加载成功,要么操作被回滚,数据不会被加载。
以下是一个Python代码示例,演示如何使用BigQuery的Python客户端库进行加载操作:
from google.cloud import bigquery
# 初始化BigQuery客户端
client = bigquery.Client()
# 定义要加载的数据源
source_uri = 'gs://your-bucket/your-file.csv'
table_id = 'your-project.your_dataset.your_table' # 目标表的完整标识符
# 定义加载配置
job_config = bigquery.LoadJobConfig(
schema=[
bigquery.SchemaField('column1', 'STRING'),
bigquery.SchemaField('column2', 'INTEGER'),
# 添加其他字段定义...
],
skip_leading_rows=1, # 忽略CSV文件的标题行
source_format=bigquery.SourceFormat.CSV,
)
# 执行加载操作
load_job = client.load_table_from_uri(
source_uri,
table_id,
job_config=job_config
)
# 等待加载操作完成
load_job.result()
# 检查加载操作的状态
if load_job.state == 'DONE':
print('加载操作已完成')
else:
print('加载操作发生错误')
在上述代码中,我们首先创建一个BigQuery客户端,然后定义要加载的数据源和目标表的信息。接下来,我们定义加载配置,包括定义目标表的模式(schema)、处理CSV文件的选项等。然后,我们使用client.load_table_from_uri()
方法执行加载操作,并使用load_job.result()
方法等待加载操作完成。最后,我们可以检查加载操作的状态,看是否成功完成。如果加载操作成功完成,我们可以在目标表中查看加载的数据。