【发布时间】:2018-08-17 14:45:12
【问题描述】:
我正在将 Java 应用程序从 Hadoop/Hive 移植到 Google Cloud/BigQuery。应用程序将 avro 文件写入 hdfs,然后在文件顶部创建具有一个/多个分区的 Hive 外部表。 我了解 Big Query 目前仅支持日期/时间戳分区,不支持嵌套分区。
我们现在处理 hive 的方式是生成 ddl,然后使用 rest 调用执行它。
我在 BigQuery DDL 文档中找不到对 CREATE EXTERNAL TABLE 的支持,因此我改用了 java 库。 我设法创建了一个外部表,但在传递给调用的参数中找不到对分区的任何引用。 这是我使用的代码的 sn-p:
....
ExternalTableDefinition extTableDef =
ExternalTableDefinition.newBuilder(schemaName, null, FormatOptions.avro()).build();
TableId tableID = TableId.of(dbName, tableName);
TableInfo tableInfo = TableInfo.newBuilder(tableID, extTableDef).build();
Table table = bigQuery.create(tableInfo);
....
但是支持非外部表的分区。
我有几个问题:
- 是否支持创建带有分区的外部表?你能指出我正确的方向吗
- 是否将数据加载到 BigQuery 中,而不是将其存储在 GS avro 文件中?
- 如果是,我们将如何处理模式演变?
非常感谢您
【问题讨论】:
标签: google-bigquery google-cloud-storage