Как переименовать таблицу без повторного ее создания

Я не нашел параметр RENAME, чтобы изменить имя таблицы. У меня есть случай, когда я должен переименовать таблицу, и единственный способ - выбрать результат в новую таблицу. этот запрос стоит денег и занимает много времени без причины.

Это особенно болезненно, когда мне нужно переименовать вложенную таблицу, поэтому мне нужно экспортировать, нужно даже работать с результирующим набором, чтобы импортировать его обратно.

В любом случае, что мне не хватает? что-нибудь скоро?

Ответ 1

Нет опции переименования, но есть операция копирования, которая использует быстрый процесс моментального снимка. Это не несет каких-либо дополнительных сборов, кроме дополнительных затрат на хранение (конечно, вы можете удалить исходную таблицу, чтобы сразу получить плату за хранение).

Вы можете сделать это в BigQuery, щелкнув имя таблицы и стрелку раскрывающегося списка рядом с именем таблицы, затем выбрав "copy table". В качестве альтернативы вы можете использовать команду bq cp в инструменте командной строки bq.

Ответ 2

Используйте функцию кроме, чтобы переименовать ваш набор данных

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
)'

enter image description here

Ответ 3

Ну, вы можете переименовать таблицу следующим образом.

RENAME TABLE tb1 TO tb2, tb3 TO tb4;