Я работаю над небольшим скриптом Python для записи данных, которые я получаю из API, в таблицу BigQuery. У меня есть только небольшое количество данных. Данные из API обновляются ежедневно. Я хочу иметь возможность перезаписывать назначение таблицы самыми последними данными каждый день.
У меня есть следующий скрипт в облачной функции:
data = {'col': 'value'} # the JSON response I get from the API (simplified output)
job_config = bigquery.LoadJobConfig(
schema = [
bigquery.SchemaField("col", "STRING"),
],
write_disposition = "WRITE_TRUNCATE",
)
job = bq_client.insert_rows_json(table_id, [data], job_config=job_config)
и следующая ошибка Client.insert_rows_json() got an unexpected keyword argument 'job_config'
Должен ли я использовать метод, отличный от insert_rows_json()? Как лучше всего каждый день записывать эти новые данные в одну и ту же таблицу?

Я думаю, что это лучший способ, но вы не можете пройти JobConfig с режимом WRITE_TRUNCATE. Вы должны выполнить отдельный запрос к truncate таблице, а затем добавить все свои словари в BigQuery с помощью insert_rows_json :
data = {'col': 'value'} # the JSON response I get from the API (simplified output)
# Truncate the table
bq_client = bigquery.Client()
query_job = bq_client.query(f"TRUNCATE table {table_id}")
results = query_job.result()
# Append your Dict from api to BQ
job = bq_client.insert_rows_json(table_id, [data])
insert_rows_json использует следующий API insertAll.