Google cloud platform BQ表的模式转换-更改列数据类型

Google cloud platform BQ表的模式转换-更改列数据类型,google-cloud-platform,google-bigquery,pipeline,Google Cloud Platform,Google Bigquery,Pipeline,我们正在GCP上开发bigdata管道自动化,并正在接收一些CSV文件。为了防止在BQ级别由于模式而导致进程中断,我们在将所有列转换为“STRING”类型后接收了第一个表 在BQ中,是否有可能对刚刚摄取的表进行模式转换,以便我们可以将字符串类型更改为其实际类型,如INT64、FLOAT等 这是一种好方法吗?如果不刷新整个表,就无法更改数据类型。您可以像这样运行SQL 创建临时函数myFunctionStringToFloatx字符串 像 -假设您有非平凡的逻辑来安全地将字符串转换为浮点 -如果你

我们正在GCP上开发bigdata管道自动化,并正在接收一些CSV文件。为了防止在BQ级别由于模式而导致进程中断,我们在将所有列转换为“STRING”类型后接收了第一个表

在BQ中,是否有可能对刚刚摄取的表进行模式转换,以便我们可以将字符串类型更改为其实际类型,如INT64、FLOAT等


这是一种好方法吗?

如果不刷新整个表,就无法更改数据类型。您可以像这样运行SQL

创建临时函数myFunctionStringToFloatx字符串 像 -假设您有非平凡的逻辑来安全地将字符串转换为浮点 -如果你不这样做,你可以把SAFE_CASTx作为FLOAT ; 创建或替换myTable 作为SELECT*EXPEPTCOL1,myFunctionStringToFloatcol1作为myTable中的col1;
不过,您需要支付扫描桌子的费用。另一种方法是保持CSV超级干净,并确保使用FLOAT列成功加载表。

您可以尝试并提前定义模式。如果出现故障,您可以收到通知。

谢谢。我们使用了类似的方法,并预定义了模式来创建/加载表。到目前为止它已经成功了。谢谢你的回复!我会试试这个,并随时通知你。