添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
发财的李子  ·  System.Data.OracleClie ...·  1 年前    · 
面冷心慈的菠萝  ·  react.js - ...·  1 年前    · 

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

0 人关注

我正在将一个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);

然而,对非外部表的分区是有支持的。

我有几个问题要问。

  • 是否支持创建带有分区的外部表?你能给我指出正确的方向吗?
  • 将数据加载到BigQuery中是否比将其存储在GS avro文件中更可取?
  • 如果是的话,我们如何处理模式的演变?
  • 非常感谢您的到来

    google-bigquery
    google-cloud-storage
    mihai
    mihai
    发布于 2018-08-17
    1 个回答
    Elliott Brossard
    Elliott Brossard
    发布于 2018-08-18
    已采纳
    0 人赞同
  • 你不能在GCS上的文件上创建分区表,尽管你可以使用特殊的 _FILE_NAME 伪列来过滤掉你不想阅读的文件。
  •