Esquema de informações
Aplica-se a: SQL do Databricks Databricks Runtime 10.4 LTS e superior Somente Catálogo do Unity
O INFORMATION_SCHEMA
é um esquema baseado em SQL padrão, fornecido em todos os catálogos criados no Unity Catalog.
No esquema de informações, você encontra um conjunto de exibições que descrevem os objetos conhecidos pelo catálogo do esquema que você tem a permissão para ver.
O esquema de informações do catálogo SYSTEM
retorna informações sobre objetos em todos os catálogos no metastore. As tabelas do sistema do esquema de informações não contêm metadados sobre objetos hive_metastore
.
A finalidade do esquema de informações é fornecer uma API autodescritiva e baseada em SQL para os metadados.
Diagrama de relacionamento de entidade do esquema de informações
O diagrama de ER (relacionamento de entidade) a seguir fornece uma visão geral de um subconjunto das exibições de esquema de informações e como elas se relacionam entre si.
Exibições do esquema de informações
Nome | Descrição |
---|---|
CATALOG_PRIVILEGES | Lista as entidades de segurança que têm privilégios nos catálogos. |
CATALOG_PROVIDER_SHARE_USAGE | Descreve o compartilhamento de provedor montado em catálogos. |
CATALOG_TAGS | Contém marcas que foram aplicadas aos catálogos. |
CATALOGS | Descreve os catálogos. |
CHECK_CONSTRAINTS | Reservado para uso futuro. |
COLUMN_MASKS | Descreve as máscaras de coluna nas colunas de tabela no catálogo. |
COLUMN_TAGS | Contém metadados de marcação de coluna em uma tabela. |
COLUMNS | Descreve as colunas de tabelas e exibições no catálogo. |
CONNECTION_PRIVILEGES | Lista as entidades de segurança que têm privilégios nas conexões externas. |
CONEXÕES | Descreve conexões externas. |
CONSTRAINT_COLUMN_USAGE | Descreve as restrições que fazem referência a colunas no catálogo. |
CONSTRAINT_TABLE_USAGE | Descreve as restrições que fazem referência a tabelas no catálogo. |
CREDENTIAL_PRIVILEGES | Lista as entidades que têm privilégios nas credenciais. |
CREDENCIAIS | Descreve as credenciais. |
EXTERNAL_LOCATION_PRIVILEGES | Lista entidades de segurança que têm privilégios nos locais externos. |
EXTERNAL_LOCATIONS | Descreve locais externos. |
INFORMATION_SCHEMA_CATALOG_NAME | Retorna o nome do catálogo deste esquema de informações. |
KEY_COLUMN_USAGE | Lista as colunas das restrições de chave primária ou estrangeira no catálogo. |
METASTORE_PRIVILEGES | Lista as entidades de segurança que têm privilégios nos metastores atuais. |
METASTORES | Descreve o metastore atual. |
PARAMETERS | Descreve os parâmetros de rotinas (funções) no catálogo. |
PROVEDORES | Descreve provedores. |
RECIPIENT_ALLOWED_IP_RANGES | Lista intervalos de IP permitidos para destinatários. |
RECIPIENT_TOKENS | Lista tokens para destinatários. |
RECIPIENTS | Descreve os destinatários. |
REFERENTIAL_CONSTRAINTS | Descreve restrições referenciais (chave estrangeira) definidas no catálogo. |
ROUTINE_COLUMNS | Descreve colunas de resultados de funções com valor de tabela. |
ROUTINE_PRIVILEGES | Lista as entidades de segurança que têm privilégios nas rotinas do catálogo. |
ROUTINES | Descreve as rotinas (funções) no catálogo. |
ROW_FILTERS | Descreve os filtros de linha nas tabelas no catálogo. |
SCHEMA_PRIVILEGES | Lista as entidades de segurança que têm privilégios em esquemas no catálogo. |
SCHEMA_TAGS | Contém metadados de marcação de esquema dentro do esquema. |
SCHEMA_SHARE_USAGE | Descreve os esquemas referenciados em compartilhamentos. |
SCHEMATA | Descreve os esquemas do catálogo. |
SHARE_RECIPIENT_PRIVILEGES | Descreve os destinatários que receberam acesso aos compartilhamentos. |
SHARES | Descreve compartilhamentos. |
STORAGE_CREDENTIAL_PRIVILEGES | [Obsoleto] Lista as entidades principais que têm privilégios nas credenciais de armazenamento. |
STORAGE_CREDENTIALS | [Obsoleto] Descreve as credenciais de armazenamento. |
TABLE_CONSTRAINTS | Descreve metadados de todas as restrições de chave primária e estrangeira no catálogo. |
TABLE_PRIVILEGES | Lista as entidades de segurança que têm privilégios nas tabelas e exibições do catálogo. |
TABLE_SHARE_USAGE | Descreve as tabelas referenciadas em compartilhamentos. |
TABLE_TAGS | Contém metadados de marcação de tabela em uma tabela. |
TABLES | Descreve as tabelas e exibições definidas no catálogo. |
VIEWS | Descreve informações específicas sobre as exibições no catálogo. |
VOLUMES | Descreve volumes definidos no catálogo. |
VOLUME_PRIVILEGES | Lista as entidades de segurança que têm privilégios nos volumes do catálogo. |
VOLUME_TAGS | Contém metadados de marcação de volume aplicados a um volume. |
Observações
Embora os identificadores não façam distinção entre maiúsculas e minúsculas quando referenciados em instruções SQL, eles são armazenados no esquema de informações como STRING
.
Isso implica que você deve procurá-los usando a definição de maiúsculas e minúsculas em que eles estão armazenados ou usar funções como ilike.
Exemplos
> SELECT table_name, column_name
FROM information_schema.columns
WHERE data_type = 'DOUBLE'
AND table_schema = 'information_schema';
Veja a seguir exemplos de fluxos de trabalho que usam as tabelas de esquema de informações no nível do sistema.
Se quiser ver todas as tabelas que foram criadas nas últimas 24 horas, sua consulta será semelhante à seguinte.
> 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;
Se quiser ver quantas tabelas você tem em cada esquema, veja o exemplo a seguir.
> SELECT table_schema, count(table_name)
FROM system.information_schema.tables
WHERE table_schema = 'tpch'
GROUP BY table_schema
ORDER BY 2 DESC