Apache Hive Metastore - information_schema

llew8vvj  于 4个月前  发布在  Hive
关注(0)|答案(1)|浏览(65)

我对Hive很陌生。我想知道是否可以有一个带有Hive元数据库数据的information_schema数据库?例如,我创建的Hive元数据库在执行“show database”时返回,这些数据库也可以添加到information_schema.schemata表中吗?我发现Hive元存储信息保存在Hive数据库中,我可以将其更改为information_schema吗?
一些帖子,比如下面的,暗示了一个信息模式是可能的,但是,我找不到任何关于如何实现这一点的好资源。
https://issues.apache.org/jira/browse/HIVE-16941

***更新***我们还没有决定使用哪个版本或供应商。我们正在考虑使用开源版本,但是,如果供应商提供此版本(而不是开源),我们将考虑供应商,因为这对我们来说是一个重要的问题。

dtcbnfnu

dtcbnfnu1#

我已经为hive_metastore开发了这个information_schema脚本。请随意使用-

cls = []
spark.sql("Drop view if exists allColumns")

for db in spark.sql("show databases").collect():
    for table in spark.catalog.listTables(f"{db.databaseName}"):
        try:
            for column in spark.catalog.listColumns(table.name, table.database):
                cls.append([table.database,table.name, column.name, column.dataType])
                print(table," table loaded successfully")
        except:
            print("Error Loading The Table ",table," in Information_Schema")
            
spark.createDataFrame(cls, schema = ['databaseName','tableName','columnName', 
'columnDataType']).createOrReplaceTempView("allColumns")

spark.sql("""create or replace table default.information_schema as select * from allColumns""")

字符串

相关问题