Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
Databricks Runtime 10.4 LTS e versões superiores
somente ao Unity Catalog
No SYSTEM catálogo, INFORMATION_SCHEMA é um esquema padrão SQL que fornece metadados sobre objetos em todos os catálogos dentro da metastore. Não contém metadados sobre hive_metastore objetos.
Separadamente, cada catálogo criado no Unity Catalog também inclui automaticamente um information_schema que descreve apenas metadados sobre objetos nesse catálogo.
Ambos os tipos de esquemas de informação filtram automaticamente os resultados para incluir apenas os objetos a que tem privilégios do Unity Catalog para acedecer. Este comportamento difere de outras tabelas do sistema Azure Databricks. Veja Como as tabelas do sistema de esquemas de informação lidam com permissões.
O objetivo do esquema de informação é fornecer uma API baseada em SQL, consciente de privilégios e auto-descritiva para aceder aos metadados do catálogo.
Como as tabelas do sistema de esquemas de informação lidam com permissões
system.information_schema difere de outras tabelas de sistema por implementar filtragem automática. Isto significa que só vês os objetos (catálogos, esquemas, tabelas, colunas, etc.) aos quais tens privilégios de acesso no Unity Catalog. Se os seus privilégios mudarem, o que vê no esquema de informação muda em conformidade. Por exemplo, quando consultas information_schema.tables, apenas as linhas das tabelas que tens permissão para ver são devolvidas.
Como em todas as outras tabelas do sistema, precisa de permissões explícitas USE e SELECT para aceder e consultar o esquema de informações.
Diagrama de relacionamento de entidade do esquema de informações
O diagrama de relacionamento de entidade (ER) a seguir fornece uma visão geral de um subconjunto de exibições de esquema de informações e como elas se relacionam entre si.
Visões de esquema de informação
| Nome | Descrição |
|---|---|
| CATALOG_PRIVILEGES | Enumera os principais que têm privilégios nos catálogos. |
| CATALOG_PROVIDER_SHARE_USAGE | Descreve a partilha de fornecedor montada em catálogos. |
| CATALOG_TAGS | Contém tags que foram aplicadas aos catálogos. |
| CATALOGS | Descreve catálogos. |
| CHECK_CONSTRAINTS | Reservado para uso futuro. |
| COLUMN_MASKS | Descreve as máscaras de coluna nas colunas das tabelas no catálogo. |
| COLUMN_TAGS | Contém metadados de marcação de coluna numa tabela. |
| COLUMNS | Descreve colunas de tabelas e modos de exibição no catálogo. |
| CONNECTION_PRIVILEGES | Lista principais que têm privilégios nas ligações externas. |
| CONNECTIONS | Descreve conexões estrangeiras. |
| 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 os utilizadores que têm privilégios nas credenciais. |
| CREDENTIALS | Descreve credenciais. |
| EXTERNAL_LOCATION_PRIVILEGES | Lista principais 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 dentro do catálogo. |
| METASTORE_PRIVILEGES | Lista os principais que têm privilégios no metastore atual. |
| METASTORES | Descreve o metastore atual. |
| PARAMETERS | Descreve parâmetros de rotinas (funções) no catálogo. |
| PROVIDERS | Descreve os provedores. |
| RECIPIENT_ALLOWED_IP_RANGES | Lista intervalos de IP permitidos para destinatários. |
| RECIPIENT_TOKENS | Lista os 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 dos resultados de funções de valor tabelar. |
| ROUTINE_PRIVILEGES | Lista entidades principais que têm privilégios nas rotinas do catálogo. |
| ROUTINES | Descreve rotinas (funções) no catálogo. |
| ROW_FILTERS | Descreve filtros aplicados às linhas das tabelas no catálogo. |
| SCHEMA_PRIVILEGES | Lista entidades que têm privilégios nos esquemas do catálogo. |
| SCHEMA_TAGS | Contém metadados de marcação de esquema dentro do esquema. |
| SCHEMA_SHARE_USAGE | Descreve os esquemas referenciados em partilhas. |
| SCHEMATA | Descreve esquemas dentro do catálogo. |
| SHARE_RECIPIENT_PRIVILEGES | Descreve os destinatários que receberam acesso a ações. |
| SHARES | Descreve compartilhamentos. |
| STORAGE_CREDENTIAL_PRIVILEGES | [Obsoleto] Lista as entidades que possuem privilégios nas credenciais de armazenamento. |
| STORAGE_CREDENTIALS | [Preterido] Descreve as credenciais de armazenamento. |
| TABLE_CONSTRAINTS | Descreve metadados para todas as restrições de chave primária e estrangeira dentro do catálogo. |
| TABLE_PRIVILEGES | Lista principais que têm privilégios nas tabelas e vistas no catálogo. |
| TABLE_SHARE_USAGE | Descreve as tabelas referenciadas em partilhas. |
| TABLE_TAGS | Contém metadados de marcação de tabela dentro de uma tabela. |
| TABLES | Descreve tabelas e exibições definidas no catálogo. |
| VIEWS | Descreve as informações específicas sobre as visualizações no catálogo. |
| VOLUMES | Descreve os volumes definidos no catálogo. |
| VOLUME_PRIVILEGES | Lista as entidades que têm privilégios nos volumes do catálogo. |
| VOLUME_TAGS | Contém metadados de marcação de volume aplicados a um volume. |
Notas
- O esquema de informação implementa filtragem consciente de privilégios. Só vês automaticamente os objetos a que tens permissões de acesso no Catálogo Unity. Veja Como as tabelas do sistema de esquemas de informação lidam com permissões.
- Pode ser necessário usar
REPAIR TABLEuma sincronização manual para que algumas alterações de metadados do catálogo sejam refletidas no esquema de informações. Para obter mais informações, consulte REPAIR TABLE. - Todos os identificadores, exceto os nomes de colunas e etiquetas, são armazenados no esquema de informações em minúsculas .
Para o desempenho da consulta, evite usar funções como
LOWER()ouUPPER()na coluna identificadora. Em vez disso, compare identificadores diretamente usando valores minúsculos. - Para evitar tempos limite de consulta, aplique filtros seletivos ao consultar o esquema de informações (por exemplo,
WHERE table_catalog = 'main' AND table_schema = 'default'). Consulte a documentação acima para obter uma lista completa de colunas que podem ser usadas como filtros para cada tabela do esquema de informações.- Observe que o pushdown
LIMITnão é suportado atualmente, portanto, embora possa truncar os resultados, não melhorará o desempenho.
- Observe que o pushdown
Exemplos
> SELECT table_name, column_name
FROM information_schema.columns
WHERE data_type = 'DOUBLE'
AND table_schema = 'information_schema';
A seguir estão exemplos de fluxos de trabalho que usam as tabelas de esquema de informações no nível do sistema.
Se pretender ver todas as tabelas que foram criadas nas últimas 24 horas, a sua consulta poderá ter o seguinte aspeto.
> 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 você quiser exibir quantas tabelas você tem em cada esquema, considere 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