BigQuery prend en charge les instructions SELECT, mais prend-il également en charge les instructions DML telles que INSERT, UPDATE et DELETE?
Oui, BigQuery prend désormais en charge SQL DML avec SQL standard (décochez la case «Utiliser SQL hérité» sous «Afficher les options»). SQL DML n'est pas pris en charge avec le SQL hérité.
La documentation officielle est disponible ici: https://cloud.google.com/bigquery/sql-reference/data-manipulation-language
REMARQUE: Les instructions UPDATE, DELETE et MERGE DML sont prises en charge sur tables avec le tampon de transmission tant que l'instruction n'affecte pas les lignes contenues dans le tampon de transmission.
J'ai testé une instructionDELETEavec l'API BigQuery, cela fonctionne bien pour moi . C'est le code source dans GCP composer (flux d'air)
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
)