我通过Ambari使用Azure HDInsights、Azure Data Lake和Hive。
我正在设置一个测试环境。原始环境的数据以通过Hive加载的ORC文件的形式存储在Azure data Lake上。我通过数据工厂成功地将原始数据湖中的所有数据复制到测试数据湖中。
当我尝试在测试环境中创建我的Hive ORC表,然后查询它们时,不会返回任何记录。各个数据湖上的架构/文件夹位置是相同的,我是否缺少与元存储相关的东西,因为它在测试中是不同的?
编辑:我想补充一点,我使用Polybase在SQL数据仓库中为测试环境的Data Lake设置了一个外部表,它可以很好地读取数据。
正如chemikadze所提到的,运行MSCK REPAIR TABLE <your-table>
修复了它。我的表是分区的,所以元存储不知道在某些子文件夹中查找数据。
下面的模式现在可以帮助我完成环境复制:
- 创建数据工厂管道以从Dev->Test复制数据湖文件夹
- 在测试环境中运行配置单元DDL
- 对在测试环境中创建的每个分区表运行repair table命令