我正在将一个java应用程序从Hadoop/Hive移植到Google Cloud/BigQuery。该应用程序将avro文件写入hdfs,然后在文件之上创建具有一个/多个分区的Hive外部表。 我知道Big Query目前只支持日期/时间戳分区,没有嵌套分区。
我们现在处理hive的方式是生成ddl,然后用rest call来执行它。
我在BigQuery DDL文档中找不到对CREATE EXTERNAL TABLE的支持,所以我改用java库。 我成功地创建了一个外部表,但我在传递给调用的参数中找不到对分区的任何引用。 下面是我使用的代码的一个片段。
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);然而,对非外部表的分区是有支持的。
我有几个问题要问。
非常感谢您的到来