web-dev-qa-db-ja.com

BigQueryはUPDATE、DELETE、およびINSERT(SQL DML)ステートメントをサポートしていますか?

BigQueryはSELECTステートメントをサポートしていますが、INSERT、UPDATE、DELETEなどのDMLステートメントをサポートしていますか?

17
Pavan Edara

はい、BigQueryは標準のSQLを使用したSQL DMLをサポートするようになりました(「Show Options」の下の「Use Legacy SQL」をオフにします)。 SQL DMLはレガシーSQLではサポートされていません。

公式ドキュメントはこちらから入手できます: https://cloud.google.com/bigquery/sql-reference/data-manipulation-language

注:UPDATE、DELETE、およびMERGE DMLステートメントは、ストリーミングバッファーを備えたテーブルでサポートされていますステートメントがストリーミングバッファ内の行に影響を与えない限り。

28
Pavan Edara

BigQuery APIで[〜#〜] delete [〜#〜]ステートメントをテストしましたが、うまく機能しています。これは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
)
1
Zakaria.dem