如何重命名 Big Query 中的列? [关闭]
Posted
技术标签:
【中文标题】如何重命名 Big Query 中的列? [关闭]【英文标题】:How to rename column in Big Query? [closed] 【发布时间】:2017-02-24 15:00:49 【问题描述】:我们正在手动将 Datastore 表(即种类)(作为云存储中的备份)加载到 Big Query 中。在加载到 Big Query 之前,有什么方法可以转换(重命名等)数据存储列。当在 Big Query 中加载数据存储类型备份时,它似乎支持 E(提取)和 L(加载)功能,但不支持 T(转换)功能。 问题是我们在数据存储类型中将列键作为主要字段,因此当类型加载到 Big Query 时,我们会看到名称为“_key__.id”的列。 我们希望此列以名称“id”而不是“_key__.id”加载。所以只是想知道,有没有办法重命名 Big Query 中的列? 非常感谢及时的帮助。
【问题讨论】:
Update Big Query Table Schema的可能重复 【参考方案1】:通过 SQL 查询支持 ETL 的“T”部分。您可以使用直接查询数据存储备份作为外部表 (https://cloud.google.com/bigquery/external-data-sources) 或先加载到临时表,然后运行 SQL 来转换它。 标准 SQL 中的重命名如下所示:
SELECT * EXCEPT(oldname1, oldname2), oldname1 as newname1, oldname2 as newname2 FROM ...
但由于您提到了用点分隔的名称:_key__.id
它可能是嵌套字段,_key__
的类型为 RECORD,因此 SQL 看起来像
SELECT * EXCEPT(_key__), _key__.id AS id FROM ...
【讨论】:
谢谢莫莎。你的回答有帮助。但似乎,我们需要在它上面做更多的 PoC,因为我们在这种用例上找不到好的编程示例。我们需要以编程方式对 20-30 多个表进行数据存储备份的提取(E),然后在 BIG Query 中进行转换(T)和加载(L)。不确定是否所有这些都可以由 API 支持而无需任何人工干预。不过,我很感激你的指示。 自 2022 年 3 月起,您可以使用 ALTER TABLE RENAME COLUMN以上是关于如何重命名 Big Query 中的列? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章