如何在创建BigQuery外部表时排除列?



我试图使用存储在GCS桶中的数据在BQ中创建一个外部表。下面是我使用的DDL命令:

CREATE OR REPLACE EXTERNAL TABLE `external table`
OPTIONS (
format = 'parquet',
uris = ['gs://...', 'gs://...']
);

如何将特定列从导入到外部表中排除?因为我不能在创建外部表后将其更改为DROP COLUMN。

在从GCS加载数据时没有选择列的规定。

在google提供的以下文档中提供了从GCS加载数据到bigQuery的所有可能的配置和属性。但是你要找的选择不在那里。https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv

但是还有其他方法可以做到这一点。

的第一选择,

您可以首先将此数据加载到临时表中,然后从中选择所需的列并填充第二个表。

第二选项,

如果您不想手动执行此操作。你可以在BigQuery事件上使用CloudRun。每当您将数据加载到第一个表中时,它都会触发Cloudrun,您可以在其中编写代码以删除不想要的列并将其插入到第二个表中。

https://cloud.google.com/blog/topics/developers-practitioners/how-trigger-cloud-run-actions-bigquery-events

第三个选项,

如果这只是一个一次性的活动,你可以把所有的数据加载到一个表中,然后在它上面创建一个视图,上面有所需的列。

最新更新