Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Important
Esta tabela do sistema está em Public Preview.
Este artigo inclui informações sobre a tabela do sistema de histórico de consultas, incluindo um resumo do esquema da tabela.
Caminho da tabela: Esta tabela do sistema encontra-se em system.query.history.
Usando a tabela de histórico de consultas
A tabela de histórico de consultas inclui registos para consultas executadas usando SQL warehouses ou computação sem servidor para blocos de anotações e trabalhos . A tabela inclui registros de toda a conta de todos os espaços de trabalho na mesma região a partir da qual você acessa a tabela.
Por padrão, apenas os administradores têm acesso à tabela do sistema. Se você quiser compartilhar os dados da tabela com um usuário ou grupo, o Databricks recomenda a criação de uma exibição dinâmica para cada usuário ou grupo. Consulte Criar uma vista dinâmica.
Esquema da tabela do sistema do histórico de consultas
A tabela de histórico de consultas usa o seguinte esquema:
| Nome da coluna | Tipo de dados | Description | Example |
|---|---|---|---|
account_id |
cadeia (de caracteres) | ID da conta. | 11e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
cadeia (de caracteres) | A ID do espaço de trabalho onde a consulta foi executada. | 1234567890123456 |
statement_id |
cadeia (de caracteres) | O ID que identifica exclusivamente a execução da instrução. Você pode usar este ID para localizar a execução da instrução na interface de utilizador do Histórico de Consultas. | 7a99b43c-b46c-432b-b0a7-814217701909 |
session_id |
cadeia (de caracteres) | O ID da sessão do Spark. | 01234567-cr06-a2mp-t0nd-a14ecfb5a9c2 |
execution_status |
cadeia (de caracteres) | O estado de terminação da declaração. Os valores possíveis são:
|
FINISHED |
compute |
estrutura | Um struct que representa o tipo de recurso de computação usado para executar a instrução e a ID do recurso, quando aplicável. O valor type será ou WAREHOUSE ou SERVERLESS_COMPUTE. |
{type: WAREHOUSE,cluster_id: NULL,warehouse_id: ec58ee3772e8d305} |
executed_by_user_id |
cadeia (de caracteres) | O ID do utilizador que executou a instrução. | 2967555311742259 |
executed_by |
cadeia (de caracteres) | O endereço de e-mail ou nome de usuário do usuário que executou a instrução. | example@databricks.com |
statement_text |
cadeia (de caracteres) | Texto da instrução SQL. Por defeito, este campo devolve, <REDACTED> a menos que seja administrador de conta ou membro do databricks_pii_access grupo ao nível da conta. Ver texto da declaração mascarada Acessar. Se você configurou chaves gerenciadas pelo cliente, statement_text está vazio. Devido a limitações de armazenamento, valores de texto de instrução mais longos são compactados. Mesmo com a compressão, você pode atingir um limite de caracteres. |
SELECT 1 |
statement_type |
cadeia (de caracteres) | O tipo de instrução. Por exemplo: ALTER, COPYe INSERT. |
SELECT |
error_message |
cadeia (de caracteres) | Mensagem descrevendo a condição de erro. Se você configurou chaves gerenciadas pelo cliente, error_message está vazio. |
[INSUFFICIENT_PERMISSIONS] Insufficient privileges: User does not have permission SELECT on table 'default.nyctaxi_trips'. |
client_application |
cadeia (de caracteres) | Aplicativo cliente que executou a instrução. Por exemplo: Databricks SQL Editor, Tableau e Power BI. Este campo é derivado de informações fornecidas por aplicativos cliente. Embora se espere que os valores permaneçam estáticos ao longo do tempo, isso não pode ser garantido. | Databricks SQL Editor |
client_driver |
cadeia (de caracteres) | O conector usado para se conectar ao Databricks para executar a instrução. Por exemplo: Databricks SQL Driver for Go, Databricks ODBC Driver, Databricks JDBC Driver. | Databricks JDBC Driver |
cache_origin_statement_id |
cadeia (de caracteres) | Para resultados de consulta obtidos do cache, este campo contém a ID da instrução da consulta que originalmente inseriu o resultado no cache. Se o resultado da consulta não for recuperado do cache, este campo conterá a ID da instrução da própria consulta. | 01f034de-5e17-162d-a176-1f319b12707b |
total_duration_ms |
bigint | Tempo total de execução da instrução em milissegundos (excluindo o tempo de busca de resultados). | 1 |
waiting_for_compute_duration_ms |
bigint | Tempo gasto aguardando que os recursos de computação sejam provisionados em milissegundos. | 1 |
waiting_at_capacity_duration_ms |
bigint | Tempo gasto na fila de espera pela capacidade de computação disponível em milissegundos. | 1 |
execution_duration_ms |
bigint | Tempo gasto na execução da instrução em milissegundos. | 1 |
compilation_duration_ms |
bigint | Tempo gasto carregando metadados e otimizando a instrução em milissegundos. | 1 |
total_task_duration_ms |
bigint | A soma de todas as durações de tarefas em milissegundos. Esse tempo representa o tempo combinado necessário para executar a consulta em todos os núcleos de todos os nós. Pode ser significativamente maior do que a duração do relógio de parede se várias tarefas forem executadas em paralelo. Pode ser menor do que a duração do relógio de parede se as tarefas aguardarem pelos nós disponíveis. | 1 |
result_fetch_duration_ms |
bigint | Tempo gasto, em milissegundos, para buscar os resultados da instrução após a conclusão da execução. | 1 |
start_time |
carimbo de data/hora | A hora em que a Databricks recebeu a solicitação. As informações de fuso horário são registradas no final do valor com +00:00 representando UTC. |
2022-12-05T00:00:00.000+0000 |
end_time |
carimbo de data/hora | A hora em que a execução da instrução terminou, excluindo o tempo de obtenção dos resultados. As informações de fuso horário são registradas no final do valor com +00:00 representando UTC. |
2022-12-05T00:00:00.000+00:00 |
update_time |
carimbo de data/hora | A última vez que a declaração recebeu uma atualização de progresso. As informações de fuso horário são registradas no final do valor com +00:00 representando UTC. |
2022-12-05T00:00:00.000+00:00 |
read_partitions |
bigint | O número de partições lidas após a poda. | 1 |
pruned_files |
bigint | O número de arquivos removidos. | 1 |
read_files |
bigint | O número de arquivos lidos após a poda. | 1 |
read_rows |
bigint | Número total de linhas lidas pela instrução. | 1 |
produced_rows |
bigint | Número total de linhas retornadas pela instrução. | 1 |
read_bytes |
bigint | Tamanho total dos dados lidos pelo comando em bytes. | 1 |
read_io_cache_percent |
int | A porcentagem de bytes de dados persistentes lidos do cache de E/S. | 50 |
from_result_cache |
boolean |
TRUE indica que o resultado da instrução foi obtido no cache. |
TRUE |
spilled_local_bytes |
bigint | Tamanho dos dados, em bytes, gravados temporariamente no disco durante a execução da instrução. | 1 |
written_bytes |
bigint | O tamanho em bytes de dados persistentes gravados no armazenamento de objetos na nuvem. | 1 |
written_rows |
bigint | O número de linhas de dados persistentes gravados no armazenamento de objetos na nuvem. | 1 |
written_files |
bigint | Número de arquivos de dados persistentes gravados no armazenamento de objetos na nuvem. | 1 |
shuffle_read_bytes |
bigint | A quantidade total de dados em bytes enviados pela rede. | 1 |
query_source |
estrutura | Uma estrutura que contém pares chave-valor que representam entidades Databricks que estiveram envolvidas na execução desta instrução, como tarefas, blocos de anotações ou painéis. Este campo regista apenas entidades Databricks. | {alert_id: 81191d77-184f-4c4e-9998-b6a4b5f4cef1,sql_query_id: null,dashboard_id: null,notebook_id: null,job_info: { job_id: 12781233243479, job_run_id: null, job_task_run_id: 110373910199121},legacy_dashboard_id: null,genie_space_id: null} |
query_parameters |
estrutura | Uma estrutura que contém parâmetros nomeados e posicionais usados em consultas parametrizadas. Os parâmetros nomeados são representados como pares chave-valor que mapeiam os nomes de parâmetros aos valores. Os parâmetros posicionais são representados como uma lista onde o índice indica a posição do parâmetro. Apenas um tipo (nomeado ou posicional) pode estar presente ao mesmo tempo. | {named_parameters: { "param-1": 1, "param-2": "hello"},pos_parameters: null,is_truncated: false} |
executed_as |
cadeia (de caracteres) | O nome do utilizador ou entidade de serviço cuja prerrogativa foi usada para executar a declaração. | example@databricks.com |
executed_as_user_id |
cadeia (de caracteres) | O ID do utilizador ou principal de serviço cujo privilégio foi usado para executar a instrução. | 2967555311742259 |
query_tags |
map<string, string> |
Etiquetas-chave-valor personalizadas aplicadas à consulta para agrupamento, filtragem e atribuição de custos. As etiquetas podem ser definidas usando parâmetros de configuração de sessão ou a SET QUERY_TAGS instrução SQL. Etiquetas somente de chave têm um valor null. Esta coluna é preenchida apenas para consultas executadas em armazéns SQL.
Ver etiquetas de consulta. |
{"team": "engineering","cost_center": "701","env": "prod"} |
Aceder ao texto da declaração mascarada
As instruções SQL podem conter informações sensíveis, como nomes de clientes, endereços de email ou outras informações pessoais identificáveis (PII). O statement_text campo devolve <REDACTED> por defeito. Administradores de contas e membros do databricks_pii_access grupo podem ler o texto SQL completo.
O databricks_pii_access grupo não foi criado para ti. Um administrador de conta tem de criá-lo. O nome do grupo é sensível a maiúsculas e minúsculas.
Crie o grupo e gere a adesão usando qualquer um destes métodos:
- Consola da conta. Veja Adicionar grupos à sua conta.
- API de Grupos de Conta. Veja Gerir grupos usando a API.
- Sistema para Gestão de Identidade Multidomínio (SCIM). Veja Sincronizar utilizadores e grupos do Microsoft Entra ID usando SCIM.
- Gestão automática de identidade. Veja Gestão automática de identidades.
Important
Cria databricks_pii_access na consola da conta, ou provisiona-a a partir do teu fornecedor de identidade como administrador da conta. Não crie este grupo a partir das definições de administrador do espaço de trabalho. Os administradores de espaço de trabalho que criam um grupo recebem automaticamente permissão de Gestão nesse grupo e podem alterar quem vê o texto da consulta desmascarada.
Se databricks_pii_access foi criado a partir das definições de administrador do espaço de trabalho, um administrador de conta pode revogar a permissão de gestão do administrador do espaço de trabalho no grupo:
- Como administrador de conta, inicie sessão na consola da conta.
- Na barra lateral, clique em Gerenciamento de usuários.
- No separador Grupos , clique
databricks_pii_accessem . - Clique na guia Permissões .
- Remover o Gerenciar dos administradores do espaço de trabalho. Consulte Gerir permissões num grupo.
Depois de adicionares membros, os diretores podem databricks_pii_access ser desmascarados statement_text. Revise painéis, alertas e tarefas que leiam statement_text e confirme que o principal a gerir cada carga de trabalho está no grupo.
Observação
Os administradores do espaço de trabalho não são automaticamente membros de databricks_pii_access.
Como as instruções SQL podem conter informações sensíveis, como nomes de clientes, endereços de email ou outras PII, o statement_text campo devolve <Redacted> por defeito para a maioria dos utilizadores.
Apenas administradores de contas e membros do grupo databricks_pii_access podem ler o texto SQL completo. Estes utilizadores têm acesso não censurado ao statement_text campo.
O databricks_pii_access grupo não está disponível por defeito. Um administrador de conta deve criar manualmente o grupo na sua conta:
- Como administrador de conta, cria um novo grupo.
- No campo do nome do novo grupo , introduza
databricks_pii_access(diferença de maiúsculas e minúsculas). - Clique em Adicionar grupo.
- Adicione os utilizadores ou principais de serviço que precisam de visualizar o texto SQL completo ao grupo.
Os administradores de contas também podem criar o grupo usando a API de Grupos de Conta, provisão SCIM ou gestão automática de identidades.
Após a criação do grupo, o administrador da conta deve adicionar os utilizadores ou principais de serviço que necessitam de acesso ao texto SQL completo ao grupo. Audite a sua conta para dashboards, alertas e trabalhos que leiam statement_text e confirmem que o principal que executa as cargas de trabalho pertence ao grupo.
Remover permissões acidentais de administrador de espaços de trabalho
O databricks_pii_access grupo não deve ser criado a partir das definições de administrador do espaço de trabalho. Os administradores de espaço de trabalho que criam um grupo recebem automaticamente permissão de Gestão para esse grupo e, por isso, podem controlar quem pode ver o texto de consulta não mascarado.
Se databricks_pii_access foi criado ao nível do workspace na sua conta, um administrador da conta deve revogar a permissão de gestão do administrador do workspace no grupo:
- Como administrador de conta, inicie sessão na consola da conta.
- Na barra lateral, clique em Gerenciamento de usuários.
- No separador Grupos , clique
databricks_pii_accessem . - Clique na guia Permissões .
- Remover o Gerenciar dos administradores do espaço de trabalho. Consulte Gerir permissões num grupo.
Resolução de problemas de máscaras de coluna sobrepostas
Se já aplicou uma máscara de coluna a statement_text, por exemplo, com uma política de controlo de acesso baseada em atributos (ABAC), consultas contra system.query.history podem falhar com COLUMN_MASKS_FEATURE_NOT_SUPPORTED.MULTIPLE_MASKS. Apenas uma máscara de coluna pode aplicar-se a uma coluna para um dado utilizador.
Para resolver o conflito, tens de ser administrador da metastore ou ter MANAGE disponível. Use Regras para múltiplos filtros e máscaras para identificar políticas sobrepostas, depois estreite ou remova a máscara em statement_text.
Leitura de campos encriptados
Quando os espaços de trabalho utilizam chaves geridas pelo cliente para serviços geridos, os statement_text campos e error_message na tabela do sistema são encriptados por defeito. Isto deve-se ao facto de as tabelas do sistema armazenarem dados e podem ser acedidas por todos os espaços de trabalho da região. Para desencriptar e exibir campos de tabelas de sistema encriptadas, os administradores de contas devem adicionar uma configuração de chave ao system próprio catálogo. Deve ter MANAGE permissão no system catálogo para realizar esta operação.
Advertência
Adicionar uma configuração de chave ao system catálogo remove qualquer concessão do Unity Catalog que tenha aplicado anteriormente ao system.query esquema e à system.query.history tabela, redefinindo-os para as concessões padrão. Como os subsídios são ao nível da metastore, isto afeta todos os espaços de trabalho ligados à metastore, incluindo os espaços de trabalho onde não executou o comando. Depois de ativar as chaves geridas pelo cliente, volte a aplicar quaisquer concessões personalizadas em system.query e system.query.history.
Podes criar uma nova chave ou reutilizar uma já existente. Usando o ID da chave completo, execute o seguinte comando:
curl -v -X PATCH https://my-workspace-url/api/2.1/unity-catalog/catalogs/system -H 'Authorization: Bearer <pat token>' --data '{
"managed_encryption_settings": {
"azure_key_vault_key_id": "https://my-key-vault.vault.azure.net/keys/my-key-name/my-key-version",
"azure_encryption_settings": {
"azure_tenant_id": "my-tenant-id"
}
}
}'
Espere até 24 horas para system.query.history começar a mostrar os campos encriptados.
Observação
O system catálogo é diferente para cada metastore, pelo que a chave gerida pelo cliente deve ser configurada separadamente para cada metastore. No entanto, metastores na mesma região podem ser configurados para usar a mesma chave.
::::
Exibir o perfil de consulta para um registro
Para navegar até o perfil de consulta de uma consulta com base em um registro na tabela de histórico de consultas, faça o seguinte:
- Identifique o registo de interesse e, em seguida, copie o
statement_id. - Faça referência ao registro
workspace_idpara garantir que você esteja conectado ao mesmo espaço de trabalho que o registro. - Clique no
Histórico de consultas na barra lateral do espaço de trabalho.
- No campo ID da declaração, cole o
statement_idno registo. - Clique no nome de uma consulta. Uma visão geral das métricas de consulta é exibida.
- Clique em Ver perfil da consulta.
Noções básicas sobre query_source coluna
A coluna query_source contém um conjunto de identificadores únicos de Azure Databricks entidades envolvidas na execução da instrução.
Se a query_source coluna contiver vários IDs, isso significa que a execução da instrução foi acionada por várias entidades. Por exemplo, um resultado de trabalho pode disparar um alerta que chama uma consulta SQL. Neste exemplo, todos os três IDs serão preenchidos em query_source. Os valores desta coluna não são ordenados por ordem de execução.
As possíveis fontes de consulta são:
- alert_id: Declaração acionada a partir de um alerta
- sql_query_id: Instrução executada a partir desta sessão do editor SQL
- dashboard_id: Declaração executada a partir do painel de controlo
- genie_space_id: Declaração executada a partir de um Agente Génio
- notebook_id: Declaração executada a partir de um notebook
- job_info.job_id: instrução executada dentro de um trabalho
- job_info.job_run_id: instrução executada a partir de uma execução de uma tarefa
- job_info.job_task_run_id: instrução executada dentro de uma tarefa de trabalho executada
Combinações válidas de query_source
Os exemplos a seguir mostram como a query_source coluna é preenchida dependendo de como a consulta é executada:
As consultas executadas durante uma execução de trabalho incluem uma estrutura preenchida
job_info:{alert_id: null,sql_query_id: null,dashboard_id: null,notebook_id: null,job_info: {job_id: 64361233243479,job_run_id: null,job_task_run_id: 110378410199121},legacy_dashboard_id: null,genie_space_id: null}Consultas dos alertas incluem
sql_query_idealert_id:{alert_id: e906c0c6-2bcc-473a-a5d7-f18b2aee6e34,sql_query_id: 7336ab80-1a3d-46d4-9c79-e27c45ce9a15,dashboard_id: null,notebook_id: null,job_info: null,legacy_dashboard_id: null,genie_space_id: null}As consultas dos painéis incluem um
dashboard_id, mas nãojob_info:{alert_id: null,sql_query_id: null,dashboard_id: 887406461287882,notebook_id: null,job_info: null,legacy_dashboard_id: null,genie_space_id: null}