BIgQuery AVRO 外部表架构

Posted

技术标签:

【中文标题】BIgQuery AVRO 外部表架构【英文标题】:BIgQuery AVRO external table schema 【发布时间】:2018-08-28 16:43:59 【问题描述】:

我正在尝试使用 java API 创建一个空的外部 BigQuery 表。

在我们的流程中,在表创建和 avro 文件到达之间存在间隙,因此我需要创建没有任何基础数据的表。 ExternalTableDefinition 允许指定 sourceUri 和模式。

所以我尝试使用 null sourceUri 和有效架构。 我收到此错误: “STORAGE_FORMAT_AVRO 不允许指定模式”

为什么会有限制?

有什么方法可以仅基于架构创建外部 avro 表?

提前致谢

【问题讨论】:

【参考方案1】:

您不能创建一个空的外部

但是,您可以尝试使用虚拟/空 avro 文件,该文件将定义您的架构并在从源创建外部表时使用它。 重要 - 您可以在 gs://mybucket/path/to/myAvroFiles* 中使用通配符,因此匹配它的迟到文件将通过该外部表提供

【讨论】:

其实我就是这么做的;这似乎有点矫枉过正,因为 API 允许同时指定两者。没有理由限制...

以上是关于BIgQuery AVRO 外部表架构的主要内容,如果未能解决你的问题,请参考以下文章

分区 BigQuery 表,从 AVRO 加载

创建按一/多列分区的 BigQuery 外部表

在 Bigquery 中查询外部表并且新数据到达时没有架构自动检测

Spark AVRO 与 BigQuery 兼容

avro时间戳字段上的配置单元外部表返回一样长

Vertica HDFS 作为外部表