Esquema de informação
Aplica-se a: Databricks SQL Databricks Runtime 10.4 LTS e superior apenas catálogo Unity
O INFORMATION_SCHEMA
é um esquema baseado em padrão SQL, fornecido em todos os catálogos criados no Unity Catalog.
Dentro do esquema de informações, você pode encontrar um conjunto de modos de exibição que descrevem os objetos conhecidos no catálogo do esquema que você tem o privilégio de ver.
O esquema de informações do catálogo SYSTEM
retorna informações sobre objetos em todos os catálogos dentro do metastore. As tabelas do sistema de esquema de informações não contêm metadados sobre hive_metastore
objetos.
O objetivo do esquema de informações é fornecer uma API autodescritiva baseada em SQL para os metadados.
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 | Lista entidades 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 máscaras de coluna em colunas de tabela 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 conexões estrangeiras. |
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 principais que têm privilégios nas credenciais. |
CREDENTIALS | Descreve credenciais. |
EXTERNAL_LOCATION_PRIVILEGES | Lista entidades 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 dados. |
KEY_COLUMN_USAGE | Lista as colunas das restrições de chave primária ou estrangeira dentro do catálogo. |
METASTORE_PRIVILEGES | Lista as entidades 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 de resultados de funções com valor de tabela. |
ROUTINE_PRIVILEGES | Lista principais que têm privilégios sobre as rotinas no 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 no 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 | [Preterido] Lista entidades que têm 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 visões 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 informações específicas sobre os modos de exibição no catálogo. |
VOLUMES | Descreve os volumes definidos no catálogo. |
VOLUME_PRIVILEGES | Lista principais 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
Embora os identificadores não diferenciem maiúsculas de minúsculas quando referenciados em instruções SQL, eles são armazenados no esquema de informação como STRING
.
Isso implica que você deve procurá-los usando o caso em que o identificador está armazenado 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';
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