Esquema de información

Se aplica a:check marked yes Databricks SQL check marked yes Databricks Runtime 10.2 y versiones posteriores check marked yes Solo Unity Catalog

INFORMATION_SCHEMA es un esquema basado en SQL estándar, proporcionado en cada catálogo creado en Unity Catalog.

Dentro del esquema de información se encuentra un conjunto de vistas que describen los objetos conocidos del catálogo del esquema que tiene permiso para ver. El esquema de información del catálogo SYSTEM devuelve información sobre los objetos de todos los catálogos del metastore. Las tablas del sistema de esquema de información no contienen metadatos sobre objetos hive_metastore.

El propósito del esquema de información es proporcionar una API autodescriptiva basada en SQL a los metadatos.

Diagrama de relación de entidad del esquema de información

En el siguiente diagrama de relaciones de entidad (ER), se proporciona una descripción general de un subconjunto de vistas de los esquemas de información y cómo se relacionan entre sí.

ER diagram of information schema

Vistas de esquema de información

Nombre Descripción
CATALOG_PRIVILEGES Enumera las entidades de seguridad que tienen privilegios en los catálogos.
CATALOG_PROVIDER_SHARE_USAGE Describe el recurso compartido de proveedor montado en catálogos.
CATALOG_TAGS Contiene etiquetas que se han aplicado a los catálogos.
CATALOGS Describe los catálogos.
CHECK_CONSTRAINTS Reservado para uso futuro.
COLUMN_MASKS Describe las máscaras de columna en las columnas de las tablas del catálogo.
COLUMN_TAGS Contiene metadatos de etiquetado de columnas dentro de una tabla.
COLUMNS Describe columnas de tablas y vistas del catálogo.
CONNECTION_PRIVILEGES Enumera las entidades de seguridad que tienen privilegios en las conexiones externas.
CONNECTIONS Describe las conexiones externas.
CONSTRAINT_COLUMN_USAGE Describe las restricciones que hacen referencia a columnas del catálogo.
CONSTRAINT_TABLE_USAGE Describe las restricciones que hacen referencia a tablas del catálogo.
EXTERNAL_LOCATION_PRIVILEGES Enumera las entidades de seguridad que tienen privilegios en las ubicaciones externas.
EXTERNAL_LOCATIONS Describe las ubicaciones externas.
INFORMATION_SCHEMA_CATALOG_NAME Devuelve el nombre del catálogo de este esquema de información.
KEY_COLUMN_USAGE Enumera las columnas de las restricciones de clave principal o externa dentro del catálogo.
METASTORE_PRIVILEGES Enumera las entidades de seguridad que tienen privilegios en el metastore actual.
METASTORES Describe el metastore actual.
PARAMETERS Describe los parámetros de rutinas (funciones) del catálogo.
PROVIDERS Describe los proveedores.
RECIPIENT_ALLOWED_IP_RANGES Enumera los intervalos IP permitidos para los destinatarios.
RECIPIENT_TOKENS Enumera los tokens para los destinatarios.
RECIPIENTS Describe los destinatarios.
REFERENTIAL_CONSTRAINTS Describe las restricciones referenciales (clave externa) definidas en el catálogo.
ROUTINE_COLUMNS Describe las columnas de resultados de las funciones con valores de tabla.
ROUTINE_PRIVILEGES Enumera las entidades de seguridad que tienen privilegios en las rutinas del catálogo.
ROUTINES Describe las rutinas (funciones) del catálogo.
ROW_FILTERS Describe los filtros de fila en las tablas del catálogo.
SCHEMA_PRIVILEGES Enumera las entidades de seguridad que tienen privilegios en los esquemas del catálogo.
SCHEMA_TAGS Contiene metadatos de etiquetado de esquemas dentro del esquema.
SCHEMA_SHARE_USAGE Describe los esquemas a los que se hace referencia en los recursos compartidos.
SCHEMATA Describe los esquemas del catálogo.
SHARE_RECIPIENT_PRIVILEGES Describe los destinatarios a los que se ha concedido acceso a los recursos compartidos.
SHARES Describe los recursos compartidos.
STORAGE_CREDENTIAL_PRIVILEGES Enumera las entidades de seguridad que tienen privilegios en las credenciales de almacenamiento.
STORAGE_CREDENTIALS Describe las credenciales de almacenamiento.
TABLE_CONSTRAINTS Describe metadatos para todas las restricciones de clave principal y externa dentro del catálogo.
TABLE_PRIVILEGES Enumera las entidades de seguridad que tienen privilegios en las tablas y vistas del catálogo.
TABLE_SHARE_USAGE Describe las tablas a las que se hace referencia en recursos compartidos.
TABLE_TAGS Contiene metadatos de etiquetado de tablas dentro de una tabla.
TABLAS Describe las tablas y vistas definidas en el catálogo.
VIEWS Describe la vista de información específica sobre las vistas del catálogo.
VOLÚMENES Describe los volúmenes definidos en el catálogo.
VOLUME_PRIVILEGES Enumera las entidades de seguridad que tienen privilegios en los volúmenes del catálogo.
VOLUME_TAGS Contiene metadatos de etiquetado de volúmenes aplicados a un volumen.

Notas

Aunque los identificadores no distinguen mayúsculas de minúsculas cuando se hace referencia a ellos en instrucciones SQL, se almacenan en el esquema de información como STRING. Esto implica que debe buscarlos con las mayúsculas y minúsculas con las que se almacenó el identificador o usar funciones como ilike.

Ejemplos

> SELECT table_name, column_name
    FROM information_schema.columns
    WHERE data_type = 'DOUBLE'
      AND table_schema = 'information_schema';

A continuación se muestran ejemplos de flujos de trabajo que usan las tablas de esquema de información de nivel de sistema.

Si quiere ver todas las tablas que se han creado en las últimas 24 horas, la consulta podría ser similar a la siguiente.

> 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;

Si quiere ver cuántas tablas tiene en cada esquema, tenga en cuenta el ejemplo siguiente.

> SELECT table_schema, count(table_name)
    FROM system.information_schema.tables
    WHERE table_schema = 'tpch'
    GROUP BY table_schema
    ORDER BY 2 DESC