Перезапись разделов в BigQuery с помощью PythonPython

Программы на Python
Ответить
Anonymous
 Перезапись разделов в BigQuery с помощью Python

Сообщение Anonymous »

Я разделил таблицу (EventDate). Каждый день мы извлекаем данные в промежуточную таблицу, которая содержит полные дни. Что я хотел бы сделать, так это перезаписать разделы в производственной таблице на основе дат, доступных в промежуточной таблице.
У меня есть некоторый код, который, как мне кажется, работает, однако я чувствую, что он может быть неэффективным, поскольку мне приходится каждый раз перебирать отдельные даты, запрашивать промежуточную таблицу и запускать новое задание импорта. В идеале я также хочу выполнить откат, если какой-либо раздел не удастся перезаписать.
Есть ли лучший способ сделать это, о котором я не знаю?
# Distinct Dates currently in staging table
dates = ['2025-12-13', '2025-12-14', '2025-12-15', '2025-12-16', '2025-12-17', '2025-12-18']

# For each distinct date in staging table, create or overwrite partition in production table
for date in dates:
query = f"SELECT * FROM `my_staging_table` WHERE DATE(EventDate) = '{date}'"
job_config = bigquery.QueryJobConfig(
write_disposition = bigquery.WriteDisposition.WRITE_TRUNCATE,
destination = f"my_prod_table${date.replace('-', '')}"
)
job = bq_client.query(query, job_config = job_config)
job.result()


Подробнее здесь: https://stackoverflow.com/questions/798 ... ith-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»