使用DDL在BigQuery中基于GCS创建原生表失败
解决BigQuery DDL创建GCS关联表失败的问题
问题根因
你用的是创建原生内部表的CREATE TABLE语句,但要关联GCS存储桶中的数据,必须使用CREATE EXTERNAL TABLE语法。另外format参数不属于CREATE TABLE的OPTIONS支持范围,这就是报错Unknown option: format的直接原因。
修正后的DDL语句
方式1:手动指定表结构
CREATE EXTERNAL TABLE `sample_ds_001.native` ( -- 替换为你的CSV实际字段与类型,示例如下: id INT64, user_name STRING, score FLOAT64 ) OPTIONS ( format = 'CSV', uris = ["gs://test-bucket-003/File_Folder/sample.txt"], -- 可选:若CSV文件包含表头,添加该参数跳过首行 skip_leading_rows = 1 );
方式2:自动检测表结构
如果不想手动编写字段结构,可以开启自动检测功能:
CREATE EXTERNAL TABLE `sample_ds_001.native` OPTIONS ( format = 'CSV', uris = ["gs://test-bucket-003/File_Folder/sample.txt"], autodetect = TRUE, skip_leading_rows = 1 -- 有表头时添加 );
额外说明
- 原生内部表(
CREATE TABLE)会将数据导入BigQuery自有存储,而外部表(CREATE EXTERNAL TABLE)仅关联GCS数据源,数据仍保留在GCS中。 - UI创建时BigQuery会自动识别外部表场景并生成正确配置,所以能成功;手动写DDL时必须明确指定外部表语法。
内容的提问来源于stack exchange,提问作者Devi
相关产品推荐
相关产品推荐

