Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime 10.4 LTS e superior
somente no Catálogo do Unity
No catálogo SYSTEM, o INFORMATION_SCHEMA é um esquema padrão SQL que fornece metadados sobre objetos em todos os catálogos no metastore. Ele não contém metadados sobre hive_metastore objetos.
Separadamente, cada catálogo criado no Catálogo do Unity também inclui automaticamente um information_schema que descreve metadados sobre objetos somente nesse catálogo.
Ambos os tipos de esquemas de informações filtram automaticamente os resultados para incluir apenas os objetos que você tem privilégios do Catálogo do Unity para acessar. Esse comportamento difere de outras tabelas do sistema do Azure Databricks. Veja como as tabelas do sistema de esquema de informações lidam com permissões.
A finalidade do esquema de informações é fornecer uma API baseada em SQL, com reconhecimento de privilégios e autodescrevendo para acessar metadados de catálogo.
Como as tabelas do sistema de esquema de informações lidam com permissões
system.information_schema difere de outras tabelas do sistema, pois implementa a filtragem automática. Isso significa que você vê apenas os objetos (catálogos, esquemas, tabelas, colunas etc.) que você tem privilégios para acessar no Catálogo do Unity. Se seus privilégios mudarem, o que você vê no esquema de informações muda adequadamente. Por exemplo, quando você consulta information_schema.tables, apenas as linhas de tabelas que você tem permissão para ver são retornadas.
Assim como todas as outras tabelas do sistema, você precisa de USE e SELECT permissões explícitas para acessar e consultar o esquema de informações.
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.
Visualizaçõ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 etiquetas 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 das colunas dentro de uma tabela. |
| COLUMNS | Descreve as colunas de tabelas e exibições no catálogo. |
| CONNECTION_PRIVILEGES | Lista entidades que têm privilégios nas conexões com o exterior. |
| CONNECTIONS | 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 de segurança que têm privilégios nas credenciais. |
| CREDENTIALS | Descreve as credenciais. |
| EXTERNAL_LOCATION_PRIVILEGES | Lista as 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 no metastore atual. |
| METASTORES | Descreve o metastore atual. |
| PARAMETERS | Descreve os parâmetros de rotinas (funções) no catálogo. |
| PROVIDERS | 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 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 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 princípios 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 nas 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
- O esquema de informações implementa a filtragem com reconhecimento de privilégios. Você verá automaticamente apenas os objetos que você tem permissões do Catálogo do Unity para acessar. Veja como as tabelas do sistema de esquema de informações lidam com permissões.
- Uma sincronização manual usando
REPAIR TABLEpode ser necessária para que algumas alterações de metadados de catálogo sejam refletidas no esquema de informações. Para obter mais informações, consulte REPAIR TABLE. - Todos os identificadores, exceto nomes de colunas e marcas, são armazenados no esquema de informações como
STRINGem minúsculas. Para o desempenho da consulta, evite usar funções comoLOWER()ouUPPER()na coluna do identificador. Em vez disso, compare os 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 esquema de informações.- Observe que não há suporte para pushdown
LIMITno momento, portanto, embora ele possa truncar os resultados, ele não melhorará o desempenho.
- Observe que não há suporte para pushdown
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