动态模式的解决方案 - HIVE / AVRO

时间:2018-03-27 16:00:21

标签: hadoop hive schema

要求是跟上目标ORC表的模式演变。我从源代码接收JSON事件。我们计划将这些转换为AVRO(因为它支持模式演变)。由于模式可以每天/每周更改,我们需要继续摄取新数据JSON文件,将它们转换为AVRO并将所有数据(旧/新)存储在ORC配置单元表中。我们如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以遵循以下方法,这是您可以实现的许多不同方法之一。

<强> 1。创建HBASE表

  • 最初读取AVRO数据并在HBASE中创建表格。(您可以使用spark来有效地执行此操作)
  • HBASE表即使将来也会处理架构演变。

<强> 2。创建Hive Wrapper表

  • 创建指向HBASE表的hive包装器表(存储处理程序)。 (您可以阅读更多相关信息here

第3。创建ORC表

  • 现在从步骤2中创建的表创建ORC表

<强> 4。你需要处理的事情

  • 由于Hive表与模式紧密耦合,因此您需要在步骤2中将数据写入Hive包装器表之前处理一个步骤。您需要在此处标识新列,然后将列适当地添加到现有包装器或ORC表。这可以通过NiFi或Spark再次实现,也可以像shell脚本一样简单。根据您的使用情况选择合适的工具。