У меня есть локальный файл в формате .csv. с заголовком, содержащим только те строки, которые необходимо обновить. Они идентифицируются id_store и id_product (которые образуют составной первичный ключ). Столбцы, которые необходимо обновить, — это product_amount и date_update.
Весь процесс выполняется с помощью Python. Необходимые библиотеки и учетные данные уже настроены.
Мои попытки приводили либо к удалению и замене данных, либо к добавлению новых строк. Мне конкретно нужны обновления и ничего больше. Я пытался найти информацию в документации, предоставленной GCP, но не смог найти правильный ответ.
Я все еще новичок в этой области и не знаю, как обращаться с обновлениями. Может ли кто-нибудь мне помочь?
Обновление от 24/07:
Я попытался реализовать решение, подобное предложенному jmorl96. В итоге получилось немного иначе. Вот код:
Код: Выделить всё
df = pd.read_csv(csv_file)
updated_rows = 0
for index, row in df.iterrows():
id_product = row['id_product']
id_store = row['id_store']
date_update = row['date_update']
product_amount = row['product_amount']
query = f'''
UPDATE {projeto}.{dataset}.{table}
SET date_update = '{date_update}',
product_amount = {product_amount}
WHERE id_product = {id_product} AND id_store = {id_store}
'''
try:
update_job = client.query(query)
update_job.result()
print(f"{table} updated.")
updated_rows += update_job.num_dml_affected_rows
except Exception as e:
print(f'Error while updateing {nova_tabela}: {e}')
Подробнее здесь: https://stackoverflow.com/questions/787 ... sing-pytho