Hortonworks Hive 仓库连接器和架构更新

Posted

技术标签:

【中文标题】Hortonworks Hive 仓库连接器和架构更新【英文标题】:Hortonworks Hive Warehouse Connector and schema updates 【发布时间】:2019-02-26 11:04:47 【问题描述】:

似乎直到 v.1.0.0 的 Hortonworks Hive Warehouse Connector 不支持架构更新。 我尝试使用

hive
  .createTable(tableName)
  .ifNotExists()
  .column(name, type)
  .create()

如果表存在但具有不同的架构并且没有任何反应。 然后我尝试用不同的模式编写 DataFrame。

dataFrame
  .write
  .format("com.hortonworks.spark.sql.hive.llap.HiveWarehouseConnector")
  .save()

也没有任何反应。我希望像 Spark 一样抛出 AnalysisException。

【问题讨论】:

【参考方案1】:

我发现要创建一个 HWC 表会生成一个查询...

CREATE TABLE IF NOT EXISTS schema.table  (SERIALKEY DECIMAL(38,10),SOME STRING,SOME_OTHER STRING,...) STORED AS ORC

仅当表不存在且方案不比较时才执行。 然后请求插入数据...

LOAD DATA INPATH '/tmp/20190222040853-6ab51b3c-a459-41df-9739-38bf5efb8da1' INTO TABLE schema.table

根据文档...

负载不执行针对架构的数据验证 命令。

因此,如果方案发生变化,HWC 可以将此数据帧记录在 Hive 存储中,其中具有不同方案的旧表将数据毫无例外地保存。

【讨论】:

以上是关于Hortonworks Hive 仓库连接器和架构更新的主要内容,如果未能解决你的问题,请参考以下文章

Spark 仓库 VS Hive 仓库

电商数据仓库项目简介

热点Hive未来两年的路线图

Hive 中的多个 SLF4J 绑定 - Hortonworks 沙箱

关于Hive数据仓库的那些事儿Hive架构

大数据系列之数据仓库Hive原理