web-dev-qa-db-fra.com

BigQuery prend-il en charge les instructions UPDATE, DELETE et INSERT (SQL DML)?

BigQuery prend en charge les instructions SELECT, mais prend-il également en charge les instructions DML telles que INSERT, UPDATE et DELETE?

16
Pavan Edara

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.

28
Pavan Edara

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
)
1
Zakaria.dem