我需要直接从 Metasore 执行一些 SQL 查询(如 here)。
PS:SHOW/DESCRIBE 命令不够。
如何启用从它作为数据库访问,或者 Metastore 的数据库名称是什么? ... 在如今(2019 年)有可能吗?
注意事项
什么是Metastore?
对我来说,这是 Hive 架构的一个非常重要的元素,最终用户需要对其进行一些访问......“所有 Hive 实现都需要一个 Metastore 服务,它存储元数据。它是使用关系中的表实现的数据库。默认情况下,Hive 使用内置的 Derby SQL 服务器",1 .
当然,您在您的上下文中需要一个“标准”Metastore。在我公司的 Hadoop 集群上,我们计划标准化 Metastore(本地和长期标准),也许是 PostgreSQL,还有一个(PostgREST API 用于从中外部使用一些 SQL View )。
当 Metastore 成为长期本地标准时,SQL 定义(表名等)将是稳定的,Metastore 查询将是可靠的。
Metastore 它与 Hive 紧密相连,它是一个 Java API,但 Metastore 也是一个标准的 RDBMS,并为外部世界提供标准连接(通过 SQL)。
PS:我对 Metastore 的兴趣在于这种外部环境。
最佳答案
Spark 在底层访问 Metastore,它有一个 first class元数据方法,它返回一个数据框,schema
属性,公开名称、类型等,并提供 getComment
方法。
参见 https://stackoverflow.com/a/57857021/287948
https://stackoverflow.com/questions/57401967/
相关文章:
python - Pygame display init on headless Raspberry
apache-spark - 将数据从 Spark Structured Streaming 加载到
pandas - future 警告 : Passing datetime64-dtype data
javascript - 使用 Vue I18n 和大内容文本 html 的最佳方式
react-native - 异步/等待函数返回 _40 : 0, _65 : 0, _55 : n
python - Google Sheets API 在本地工作,但从 AWS Lambda 运行时