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

Hadoop 动态模式解决方案-HIVE/AVRO,hadoop,hive,schema,Hadoop,Hive,Schema,需求是跟上目标ORC表的模式演变。我正在从源代码接收JSON事件。我们计划将它们转换为AVRO(因为它支持模式演化)。由于模式可以每天/每周更改,我们需要不断接收新的数据JSON文件,将它们转换为AVRO,并将所有数据(旧/新)存储在ORC配置单元表中。我们如何解决这个问题 您可以遵循以下方法,这是解决此问题的多种方法之一 1。创建HBASE表 首先读取AVRO数据并在HBASE中创建表。(您可以使用spark高效地执行此操作) HBASE表甚至在将来也将负责模式的演变 2。创建配置单元包装

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

您可以遵循以下方法,这是解决此问题的多种方法之一

1。创建HBASE表

  • 首先读取AVRO数据并在HBASE中创建表。(您可以使用spark高效地执行此操作)
  • HBASE表甚至在将来也将负责模式的演变
2。创建配置单元包装表

  • 创建指向HBASE表的配置单元包装表(存储处理程序)。(你可以阅读更多关于它的内容
3.创建ORC表

  • 现在从步骤2中创建的表创建ORC表
4.你需要处理的事情

  • 由于配置单元表与架构紧密耦合,因此在步骤2中将数据写入配置单元包装器表之前,您需要处理一个步骤。您需要在此处标识新列,然后将这些列适当地添加到现有包装器或ORC表中。这同样可以通过NiFi或Spark或简单的shell脚本来实现。选择r根据您的用例选择合适的工具

源是否能够发送Avro?如果不能,您能否将事件接收到NiFi或Kafka中,例如,然后从中生成Avro?欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南,正如您创建此帐户时所建议的。适用于此处。在您发布MCVE之前,我们无法有效地帮助您编写代码并准确描述问题。Hive可以很好地处理演化…额外的腿部工作包括HBase的目的是什么?在理想情况下,您可能不需要HBase,但如果您只是在Hive中维护数据,并且如果您的源正在更改数据类型或列名或任何此类更改,那么如果您的数据在HBase中,则很容易处理。例如:出于更实际的目的,最好将数据放在HBase中。