Esquema de información
Se aplica a: Databricks SQL Databricks Runtime 10.4 LTS y versiones posteriores solo a 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í.
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. |
CREDENTIAL_PRIVILEGES | Enumera las entidades de seguridad que tienen privilegios en las credenciales. |
CREDENCIALES | Describe las credenciales. |
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 | [En desuso] Enumera las entidades de seguridad que tienen privilegios en las credenciales de almacenamiento. |
STORAGE_CREDENTIALS | [En desuso] 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