首页 > 解决方案 > 无法迁移到 bigquery,因为 bigquery 列名仅允许英文字符

问题描述

Bigquery 列名(字段)只能包含英文字母、数字和下划线。

我正在使用 python,我想创建一个脚本来将我的数据从 Postgres 迁移到 Bigquery,并且 Postgres 表有许多非英语列名。

我可能需要将列名编码为 Bigquery 接受的某种格式,但我需要能够稍后将其解码回原始格式。

做这个的最好方式是什么?

标签: sqlgoogle-bigquerydatabase-migrationnon-ascii-characters

解决方案


您可以将列名编码为 base64 之类的名称,并将 +=/ 字符替换为某种占位符。

如果您不关心字段长度,您可以编码为 base 32(它比 base64 长约 20%,但不要使用 '+' 或 '/' 并且 '=' 仅用于填充,因此您可以丢弃它它不会影响字符串)

除了您可以为您的语言中的每个非英文字符制作小转换表到英文字符的某种组合之外,这仅在您有少量非英文字符时才有效。


推荐阅读