Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks SQL
Databricks Runtime 10.4 LTS y versiones posteriores
solo a Unity Catalog
En el SYSTEM catálogo, INFORMATION_SCHEMA es un esquema estándar de SQL que proporciona metadatos sobre objetos en todos los catálogos del metastore. No contiene metadatos sobre hive_metastore objetos.
Por separado, cada catálogo creado en Unity Catalog también incluye automáticamente un
Ambos tipos de esquemas de información filtran automáticamente los resultados para incluir solo los objetos a los que tiene privilegios de Catálogo de Unity para acceder. Este comportamiento difiere de otras tablas del sistema de Azure Databricks. Consulte Cómo controlan las tablas del sistema de esquema de información los permisos.
El propósito del esquema de información es proporcionar una API basada en SQL, con reconocimiento de privilegios y autodescripta para acceder a los metadatos del catálogo.
Cómo controlan las tablas del sistema de esquema de información los permisos
system.information_schema difiere de otras tablas del sistema en que implementa el filtrado automático. Esto significa que solo verá los objetos (catálogos, esquemas, tablas, columnas, etc.) a los que tiene privilegios de acceso en el catálogo de Unity. Si cambian los privilegios, lo que ve en el esquema de información cambia en consecuencia. Por ejemplo, al consultar information_schema.tables, solo se devuelven las filas de las tablas que tiene permiso para ver.
Al igual que todas las demás tablas del sistema, necesita permisos explícitos USE y SELECT para acceder y consultar desde el esquema de información.
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 los principales que tienen privilegios sobre las credenciales. |
| CREDENTIALS | 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 las acciones. |
| SHARES | Describe los recursos compartidos. |
| STORAGE_CREDENTIAL_PRIVILEGES | [En desuso] Enumera los principales 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 los recursos compartidos. |
| TABLE_TAGS | Contiene metadatos de etiquetado de tablas dentro de una tabla. |
| TABLES | Describe las tablas y vistas definidas en el catálogo. |
| VIEWS | Describe información específica de la vista sobre las vistas del catálogo. |
| VOLUMES | 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
- El esquema de información implementa el filtrado con reconocimiento de privilegios. Solo verá los objetos a los que tiene permisos de catálogo de Unity para acceder. Consulte Cómo controlan las tablas del sistema de esquema de información los permisos.
- Es posible que se requiera una sincronización manual mediante
REPAIR TABLEpara que algunos cambios de metadatos del catálogo se reflejen en el esquema de información. Para obtener más información, consulte REPAIR TABLE. - Todos los identificadores excepto los nombres de columna y etiqueta se almacenan en el esquema de información en minúsculas
STRING. Para el rendimiento de las consultas, evite usar funciones comoLOWER()oUPPER()en la columna de identificador. En su lugar, compare los identificadores directamente mediante valores en minúsculas. - Para evitar tiempos de espera de consulta, aplique filtros selectivos al consultar el esquema de información (por ejemplo,
WHERE table_catalog = 'main' AND table_schema = 'default'). Consulte la documentación anterior para obtener una lista completa de columnas que se pueden usar como filtros para cada tabla de esquema de información.- Tenga en cuenta que actualmente no se admite la delegación
LIMIT, por lo que, si bien puede truncar los resultados, no mejorará el rendimiento.
- Tenga en cuenta que actualmente no se admite la delegación
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