Как переименовать таблицу без повторного ее создания
Я не нашел параметр 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;