轻松重命名 BigQuery 中的多个表。可以吗?

问题描述 投票:0回答:2

我在 BigQuery 中有一堆表想要重命名。这样做的主要原因是我想在查询中利用通配符表功能。我的表名称的原始格式不适用于此功能。

是否可以通过编程/轻松地重命名 BigQuery 中的大量表?

google-bigquery
2个回答
1
投票

目前,无法在 BigQuery 中重命名表。实现此目的的方法是运行 BigQuery 复制作业,该作业将使用新名称复制表,完成后删除原始表。运行复印作业不会产生处理费用。

使用

bq
命令行工具,一些简单的 bash 就可以解决问题:

#!/usr/bin/env bash
SRC="<project-id>:<dataset>"
bq ls --max_results=500 --format=csv $SRC | awk '{if(NR>1)print}' | awk -F, '{print $1}' | while read -r TABLE; do bq cp -f "${SRC}.${TABLE}" "${SRC}.${TABLE}_transformed_${RANDOM}" && bq rm -f "${SRC}.${TABLE}";done

警告:这会删除原始表!小心点。

这里需要注意的一件事是

--max_results
参数。这很重要,因为默认情况下
bq ls
命令仅列出数据集中的 50 个表。所以需要这个参数来拉回数据集中的所有表(相应调整)。


0
投票
ALTER TABLE mydataset.mytable
RENAME TO mynewtable;

https://cloud.google.com/bigquery/docs/managing-tables#renaming-table

© www.soinside.com 2019 - 2024. All rights reserved.