介绍

在 Databricks Unity 目录中创建了一个名为 Information Schema 的存储系统信息的表。通过使用它,可以获得Unity Catalog的表信息、权限信息等目录信息。

关于信息架构
https://docs.databricks.com/spark/latest/spark-sql/language-manual/sql-ref-information-schema.html

使用 Unity Catalog 时,会在 information_schema 模式下创建具有以下结构的表。
如果您选中此项,您可以获得所需的信息。
Databricks Unity Catalog のカタログ情報を収集するには? (Information Schemaって何?)

使用信息模式检查信息

让我们通过查看上面的信息模式快速检查我们可以做什么。

在此之前,如果您使用 Unity Catalog,将自动显示 4 个目录。 (hive_metastore,主要,样本,系统)
Metastore 中存储的所有目录的信息都收集在名为 system 的目录中,因此如果要查看整个内容,则应查看此系统目录中的 Information Schema。

另请注意,hive_metastore 目录中的信息不是 Unity 目录,因此不包含在此信息模式中。这是为了访问传统的 Hive 目录。

1. 收集所有目录、模式(数据库)和表列表

SELECT
  table_catalog,
  table_schema,
  table_name,
  table_owner,
  comment,
  table_type,
  data_source_format
FROM
  system.information_schema.tables
WHERE
  table_schema != 'information_schema'

Databricks Unity Catalog のカタログ情報を収集するには? (Information Schemaって何?)

2.检查表权限

SELECT
  *
FROM
  system.information_schema.table_privileges
WHERE
  table_schema != 'information_schema'

在 Databricks SQL 中,您还可以创建如下所示的过滤器,因此您可以轻松地缩小到特定目录和模式。
Databricks Unity Catalog のカタログ情報を収集するには? (Information Schemaって何?)

3. 最近一小时内创建的表信息

SELECT
  table_name,
  table_owner,
  created_by,
  last_altered,
  last_altered_by,
  table_catalog
FROM
  system.information_schema.tables
WHERE
  datediff(now(), last_altered) < 1;

Databricks Unity Catalog のカタログ情報を収集するには? (Information Schemaって何?)

4.按降序列出列数最多的表

SELECT
  table_schema,
  table_name,
  count(column_name)
FROM
  system.information_schema.columns
WHERE
  table_schema != 'information_schema'
GROUP BY
  table_schema,
  table_name
ORDER BY
  3 DESC

Databricks Unity Catalog のカタログ情報を収集するには? (Information Schemaって何?)

在最后

由于Information_schema中还有更多的表信息,看来可以做各种分析。

另外,如果您创建仪表板以便您可以立即检查这些,并且如果您找到具有特定条件的表格,您可以发出警报等。这似乎对操作很有用。

另请参阅此处的 UnityCatalog 设置。
https://qiita.com/maroon-db/items/57cee03cef202c839b94


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308632113.html

相关文章: