查询从单独环境复制的 Hive 中的 ORC 数据

Querying ORC data in Hive copied from separate environment

我正在通过 Ambari 使用 Azure HDInsights、Azure Data Lake 和 Hive。

我正在设置测试环境。原始环境的数据以通过 Hive 加载的 ORC 文件的形式存储在 Azure Data Lake 上。我成功地将原始数据湖中的所有数据通过数据工厂复制到测试数据湖中。

当我尝试在测试环境中创建我的 Hive ORC table 并查询它们时,没有返回任何记录。 Schema/Folder 各个数据湖上的位置相同,我是否遗漏了与 Metastore 相关的内容,因为它在测试中是不同的?

编辑:我想补充一点,我使用 Polybase 在 SQL 数据仓库中为测试环境的数据湖设置了一个外部 table,它能够很好地读取数据。

正如 chemikadze 提到的,运行 MSCK REPAIR TABLE <your-table> 修复了它。我的 table 已分区,因此 Metastore 不知道要在某些子文件夹中查找数据。

以下模式现在可以帮助我完成环境复制:

  1. 创建数据工厂管道以从 Dev -> Test 复制 Data Lake 文件夹。
  2. 运行 测试环境中的 Hive DDL。
  3. 运行 在测试环境中创建的每个分区 table 上修复 table 命令。