【问题标题】:Big Query DDL Command to Create Table From Existing One?Big Query DDL 命令从现有表创建表?
【发布时间】:2018-01-23 03:45:10
【问题描述】:

我需要使用 DDL 命令在 BigQuery 中创建一个临时表,但是当我将语句编写为

CREATE TABLE IF NOT EXISTS DataSet.newtable1 (x INT64, y STRUCT<a ARRAY<STRING>, b BOOL>)
 PARTITION BY DATE(_PARTITIONTIME)
 OPTIONS(
   expiration_timestamp=TIMESTAMP "2020-01-01 00:00:00 UTC",
   partition_expiration_days=1,
   description="a table that expires in 2020, with each partition living for 24 hours",
   labels=[("org_unit", "development")]
 ) As SELECT * FROM DATASET.newTable

我得到了响应,因为 CREATE TABLE AS SELECT 不受支持 任何替代方案,这样我就可以实现根据要求创建临时表并将其删除的目标。

【问题讨论】:

    标签: google-bigquery google-cloud-platform


    【解决方案1】:

    CREATE TABLE AS SELECT 语句的支持是under development

    同时,您可以使用 DDL 创建表,然后将其用作 SELECT * FROM DATASET.newTable 的目标表,或者您也可以使用 DML

    INSERT DATASET.newTable1 (x INT64, y STRUCT<a ARRAY<STRING>, b BOOL>)
    SELECT *
    FROM DATASET.newTable
    

    【讨论】:

    • CREATE OR REPLACE(或只是 CREATE)TABLE 是否仍在开发中?尝试使用临时表覆盖现有表时出现以下错误:“BadRequest: 400 Cannot set destination table in jobs with DDL statements”。
    猜你喜欢
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2020-09-04
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多