hive - 如何从直线访问 Metastore?

我需要直接从 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-shell解决方案

Spark 在底层访问 Metastore,它有一个 first class元数据方法,它返回一个数据框,schema 属性,公开名称、类型等,并提供 getComment 方法。

参见 https://stackoverflow.com/a/57857021/287948

https://stackoverflow.com/questions/57401967/

相关文章:

python - 如何从数据集中创建锚定正负对来训练模型?

python - 用dask阅读时如何跳过坏行?

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 运行时

ruby - Rails 5 使用 Devise 和 acts_as_tenant

python - 设置 TensorBoard 以在 Google Colab 中为 TensorF