【问题标题】:how to rename a table without re creating it如何在不重新创建表的情况下重命名表
【发布时间】:2013-05-21 07:14:47
【问题描述】:

我没有找到更改表名的重命名选项。 我有一个必须重命名表的情况,唯一的方法是将结果选择为新表。这个查询要花钱,而且无缘无故地花很长时间。

当我需要重命名嵌套表时尤其痛苦,所以我必须导出,甚至需要处理结果集才能将其导入。

有什么我想念的吗?有什么即将到来的吗?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    2021 年 5 月,Google 更新了其文档以添加重命名 BigQuery 表的命令。这是文档的链接:https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_table_rename_to_statement

    示例命令:

    ALTER TABLE mydataset.mytable RENAME TO mynewtable
    

    【讨论】:

    • 需要是原生表。仅供参考。 “无法重命名具有外部表类型的 foo.retail.yw_customers。允许的类型:[TABLE]”
    【解决方案2】:

    使用 except 函数重命名数据集

    bq query --destination_table practiceDataset.test_sales_orc --replace --use_legacy_sql=false 'SELECT
       * EXCEPT(
        _col16 ),
        _col16 as ingestion_tsp
      FROM (
        SELECT
            * EXCEPT(
                _col0,
                _col1,
                _col2,
                _col3,
                _col4,
                _col5,
                _col6,
                _col7,
                _col8,
                _col9,
                _col10,
                _col11,
                _col12,
                _col13,
                _col14,
                _col15),
                _col0 as order_number,
                _col1 as order_line_number,
                _col2 as version,
                _col3 as order_date,
                _col4 as extamt,
                _col5 as quantity,
                _col6 as vlucost,
                _col7 as model_number,
                _col8 as credit_amount,
                _col9 as written_sales,
                _col10 as product_category,
                _col11 as product_category_code,
                _col12 as product_class,
                _col13 as description_model,
                _col14 as location_code,
                _col15 as location_description
         FROM practiceDataset.sales_data
    )'
    

    【讨论】:

      【解决方案3】:

      没有重命名选项,但有一个复制操作,它使用快速快照过程。除了额外的存储成本外,这不会产生任何额外费用(当然您可以删除原始表,这样您只需为存储收取一次费用)。

      您可以在 BigQuery 中执行此操作,方法是点击表名和表名旁边的下拉箭头,然后选择“复制表”。或者,您可以在 bq 命令行工具中使用 bq cp 命令。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 1970-01-01
      • 2020-12-20
      • 2017-02-26
      • 1970-01-01
      相关资源
      最近更新 更多