Spark SQL 外部表(hive 支持)- 在元存储数据库中查找外部(blob 存储)表的位置“路径”

问题描述 投票:0回答:1

我已经设置了一个由 postgres 支持的独立 hive-metastore(v3.0.0),并在 Spark sql 中创建了外部表。外部数据位置位于天蓝色 blob 中。我可以使用 dbname.tablename 而不是实际位置来查询这些表。这些是非分区表。

当我检查 Metastore postgres db,TBLS 表时,我可以看到字段 TBL_TYPE 设置为 EXTERNAL_TABLE,并且有一个映射到表 SDS 的键 SD_ID。 SDS 表有一个 LOCATION 字段,该字段不显示实际的 blob 位置。相反,它显示数据库路径并附加一个 PLACEHOLDER。

Location
file:/home/ash/mydatabase/youraddress4-__PLACEHOLDER__ 

上述本地位置根本不存在。

spark 或 hive Metastore 如何解析表的实际位置以及它实际存储在 Metastore 数据库中的位置?

apache-spark hive-metastore
1个回答
0
投票

有同样的问题(尽管使用 Hive 4.0.0)。最终执行了

pg_dump
,然后在输出文件中搜索预期的
abfss://
路径。在
abfss://
表中找到了预期的
SERDE_PARAMS
路径,因此推测 Hive 使用它来解析实际位置。

© www.soinside.com 2019 - 2024. All rights reserved.