BigQuery поддерживает операторы SELECT, но поддерживает ли они инструкции DML, такие как INSERT, UPDATE и DELETE?
Поддерживает ли BigQuery инструкции UPDATE, DELETE и INSERT (SQL DML)?
Ответ 1
Да, BigQuery теперь поддерживает SQL DML со стандартным SQL (снимите флажок "Использовать устаревший SQL" в "Показать параметры"). SQL DML не поддерживается устаревшим SQL.
Официальная документация доступна здесь: https://cloud.google.com/bigquery/sql-reference/data-manipulation-language
ПРИМЕЧАНИЕ. Операторы UPDATE, DELETE и MERGE DML поддерживаются для таблиц с потоковым буфером, если оператор не влияет на строки, находящиеся в потоковом буфере.
Ответ 2
Я протестировал оператор DELETE с API BigQuery, он хорошо работает для меня. это исходный код в GCP composer (airflow)
from airflow.contrib.operators.bigquery_operator import BigQueryOperator
bq_delete_task = BigQueryOperator(
dag = dag,
task_id = 'remove_from_table_bq',
destination_dataset_table = False,
destination_table = 'table_name',
bql = "DELETE FROM " + BQ_DATASET_NAME + "." + "table_name" + " WHERE date = '2018-06-06'",
use_legacy_sql = False
)