Monitorar a atividade da conta com tabelas do sistema
Esse artigo explica o conceito das tabelas do sistema no Azure Databricks e destaca os recursos que você pode usar para aproveitar ao máximo os dados das tabelas do sistema.
O que são tabelas do sistema?
As tabelas do sistema são um repositório analítico hospedado pelo Azure Databricks dos dados operacionais da sua conta encontrados no catálogo system
. As tabelas do sistema podem ser usadas para observabilidade histórica em sua conta.
Observação
Para obter a documentação sobre system.information_schema
, confira o esquema de informações.
Requisitos
Para acessar as tabelas do sistema, seu workspace deve estar habilitado para o Catálogo do Unity. Para obter mais informações, consulte Habilitar esquemas da tabela do sistema.
As tabelas do sistema não estão disponíveis nas seguintes regiões:
- Regiões do Azure na China
- Regiões do Azure Governamental
- Índia Ocidental
- Oeste da Suíça
Quais tabelas de sistema estão disponíveis?
No momento, o Azure Databricks hospeda as seguintes tabelas do sistema:
Tabela | Descrição | Location | Dá suporte ao streaming | Período de retenção gratuito | Inclui dados globais ou regionais |
---|---|---|---|---|---|
Logs de auditoria (Visualização Pública) | Inclui registros para todos os eventos de auditoria de workspaces em sua região. Para obter uma lista dos eventos de auditoria disponíveis, confira Referência do log de diagnóstico. | system.access.audit |
Yes | 365 dias | Regional para eventos no nível do workspace. Global para eventos de nível de conta. |
Linhagem de tabela (Visualização Pública) | Inclui um registro para cada evento de leitura ou gravação em uma tabela ou caminho do Catálogo do Unity. | system.access.table_lineage |
Yes | 365 dias | Regional |
Linhagem de colunas (Visualização Pública) | Inclui um registro para cada evento de leitura ou gravação em uma coluna do Catálogo do Unity (mas não inclui eventos que não têm uma origem). | system.access.column_lineage |
Yes | 365 dias | Regional |
Uso faturável | Inclui registros de todo o uso faturável em sua conta. Cada registro de uso é um agregado por hora do uso faturável de um recurso. | system.billing.usage |
Yes | 365 dias | Global |
Preços | Um log histórico de preços de SKU. Um registro é adicionado sempre que há uma alteração em um preço de SKU. | system.billing.list_prices |
Não | Ilimitado | Global |
Clusters (Visualização Pública) | Uma tabela de dimensões com variabilidade lenta que contém o histórico completo das configurações de computação ao longo do tempo para qualquer cluster. | system.compute.clusters |
Yes | N/D | Regional |
Linha do tempo do nó (Visualização Pública) | Captura as métricas de utilização dos recursos de computação de todos os seus trabalhos e para todos os fins. | system.compute.node_timeline |
Sim | 30 dias | Regional |
Tipos de nó (Visualização Pública) | Captura os tipos de nós atualmente disponíveis com suas informações básicas de hardware. | system.compute.node_types |
Não | N/D | Regional |
SQL warehouses (Visualização Pública) | Contém o histórico completo de configurações ao longo do tempo para qualquer SQL warehouse. | system.compute.warehouses |
Sim | 365 dias | Regional |
Eventos do SQL warehouse (Visualização Pública) | Captura eventos relacionados a SQL warehouses. Por exemplo, iniciar, parar, executar, escalar verticalmente e reduzir verticalmente. | system.compute.warehouse_events |
Yes | 365 dias | Regional |
Trabalhos (Visualização Pública) | Rastreia todos os trabalhos criados na conta. | system.lakeflow.jobs |
Sim | 365 dias | Regional |
Tarefas de trabalho (Visualização Pública) | Rastreia todas as tarefas de trabalho executadas na conta. | system.lakeflow.job_tasks |
Sim | 365 dias | Regional |
Linha do tempo de execução do trabalho (Visualização Pública) | Rastreia os horários de início e término das execuções de trabalhos. | system.lakeflow. job_run_timeline |
Sim | 365 dias | Regional |
Linha do tempo da tarefa de trabalho (Visualização Pública) | Rastreia os horários de início e término e calcula os recursos usados para execuções de tarefas de trabalho. | system.lakeflow. job_task_run_timeline |
Sim | 365 dias | Regional |
Eventos de funil do Marketplace (Visualização Pública) | Inclui a impressão do consumidor e os dados de funil para suas listagens. | system.marketplace.listing_ funnel_events |
Yes | 365 dias | Regional |
Acesso à listagem do Marketplace (Visualização Pública) | Inclui informações do consumidor para eventos solicitar dados ou obter dados concluídos em suas listagens. | system.marketplace.listing_ access_events |
Yes | 365 dias | Regional |
Otimização preditiva (Visualização Pública) | Controla o histórico de operações do recurso de otimização preditiva. | system.storage.predictive_ optimization_operations_history |
Não | 180 dias | Regional |
Eventos do Assistente do Databricks (Visualização Pública) | Rastreia as mensagens de usuário enviadas ao Assistente do Databricks. | system.access.assistant_events |
Não | 365 dias | Regional |
Histórico de consultas (Visualização Pública) | Captura registros para todas as consultas executadas em SQL warehouses. | system.query.history |
Sim | 90 dias | Regional |
Eventos de ambiente controlado (Visualização Pública) | Captura eventos relacionados a ambientes controlados. | system.access.clean_room_events |
Sim | 365 dias | Regional |
Uso do ponto de extremidade de serviço do modelo (Visualização Pública) | Captura contagens de tokens para cada solicitação para um ponto de extremidade de serviço do modelo e suas respostas. Para capturar o uso do endpoint nesta tabela, você deve habilitar o rastreamento de uso no endpoint de veiculação. | system.serving.endpoint_usage . |
Sim | 90 dias | Regional |
Dados do ponto de extremidade de serviço do modelo (Visualização Pública) | Uma tabela de dimensão variável lenta que armazena metadados para cada modelo externo atendido em um ponto de extremidade de serviço do modelo. | system.serving.served_entities |
Sim | 365 dias | Regional |
O uso faturável e o uso das tabelas de preços são gratuitos. As tabelas na Visualização Pública também são gratuitas para uso durante a visualização, mas podem incorrer em uma cobrança no futuro.
Observação
Você pode ver outras tabelas do sistema em sua conta além das listadas acima. Essas tabelas estão na versão prévia privada atualmente e são vazias por padrão. Se você estiver interessado em usar qualquer uma dessas tabelas, entre em contato com sua equipe de conta do Databricks.
Habilitar esquemas de tabelas do sistema
Como as tabelas do sistema são regidas pelo Catálogo do Unity, você precisará de pelo menos um workspace habilitado pelo Catálogo do Unity em sua conta para habilitar e acessar as tabelas do sistema. As tabelas do sistema incluem dados de todos os workspaces em sua conta, mas só podem ser acessadas de um workspace habilitado pelo Catálogo do Unity.
As tabelas do sistema são habilitadas no nível do esquema. Se você ativar um esquema do sistema, você habilita todas as tabelas desse esquema. Quando novos esquemas são lançados, um administrador de conta precisa habilitar manualmente o esquema.
As tabelas do sistema devem ser habilitadas por um administrador de conta. Você pode habilitar tabelas do sistema usando a API SystemSchemas.
Observação
O esquema billing
está habilitado por padrão. Outros esquemas devem ser ativados manualmente.
Listar os esquemas do sistema disponíveis
Use o seguinte comando curl para listar os esquemas do sistema disponíveis:
curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas"
Veja a seguir um exemplo de saída do comando GET
:
{"schemas":[{"schema":"access","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"billing","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"information_schema","state":"<AVAILABLE OR EnableCompleted>"}]}
state: AVAILABLE
: o esquema do sistema está disponível, mas ainda não foi habilitado.
state: EnableCompleted
: você habilitou o esquema do sistema e ele está visível no Catalog Explorer.
Habilitar um esquema do sistema
Use o seguinte comando curl para habilitar um esquema do sistema:
curl -v -X PUT -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"
Se o esquema do sistema estiver habilitado com êxito, o código de resultado 200
será retornado.
Se você tentar habilitar novamente um esquema do sistema, o seguinte será retornado: "error_code":"SCHEMA_ALREADY_EXISTS","message":"Schema <schema-name> already exists"
.
Desabilitar um esquema do sistema
Use o seguinte comando curl para desabilitar um esquema do sistema:
curl -v -X DELETE -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"
Conceder acesso às tabelas do sistema
O acesso às tabelas do sistema é controlado pelo Catálogo do Unity. Por padrão, nenhum usuário tem acesso a esses esquemas do sistema. Para conceder acesso, um usuário que seja tanto um administrador do metastore quanto um administrador de conta precisa conceder as permissões USE
e SELECT
sobre os esquemas do sistema. Consulte Gerenciar privilégios no Catálogo do Unity.
As tabelas do sistema são somente leitura e não podem ser modificadas.
Observação
Se a sua conta foi criada após 9 de novembro de 2023, talvez você não tenha um administrador de metastore por padrão. Para obter mais informações, Confira Configurar e gerenciar o Catálogo do Unity.
As tabelas do sistema contêm dados de todos os workspaces na sua conta?
As tabelas do sistema contêm dados operacionais de todos os espaços de trabalho na sua conta implantados na mesma região de nuvem. As tabelas do sistema de faturamento contêm dados de toda a conta.
Embora as tabelas do sistema só possam ser acessadas através de um espaço de trabalho do Catálogo do Unity, as tabelas também incluem dados operacionais de espaços de trabalho na sua conta que não estejam no Catálogo Unity.
Onde os dados de uma tabela do sistema são armazenados?
Os dados da tabela do sistema da sua conta são armazenados em uma conta de armazenamento hospedada no Azure Databricks localizada na mesma região que o metastore. Os dados são compartilhados em segurança com você usando o Compartilhamento Delta.
Cada tabela tem um período de retenção de dados gratuito. Para obter informações sobre como estender o período de retenção, entre em contato com a equipe de conta do Azure Databricks.
Onde as tabelas do sistema estão localizadas no Explorador de Catálogos?
As tabelas do sistema na sua conta estão localizadas em um catálogo chamado system
, que está incluído em cada metastore do Catálogo do Unity. No catálogo system
, você verá esquemas como access
e billing
que contêm as tabelas do sistema.
Considerações sobre tabelas do sistema de streaming
O Azure Databricks usa o Compartilhamento Delta para compartilhar dados da tabela do sistema com os clientes. Esteja ciente das seguintes considerações ao transmitir com o Compartilhamento Delta:
- Se estiver usando a transmissão com tabelas do sistema, defina a opção
skipChangeCommits
comotrue
. Isso garante que o trabalho de transmissão não seja interrompido por exclusões nas tabelas do sistema. Consulte Ignorar atualizações e exclusões. - Não há suporte para
Trigger.AvailableNow
com o streaming de Compartilhamento Delta. Ele será convertido emTrigger.Once
.
Se você usar um gatilho em seu trabalho de streaming e descobrir que ele não está alcançando a versão mais recente da tabela do sistema, o Databricks recomenda aumentar a frequência agendada do trabalho.
Ler alterações incrementais de tabelas do sistema de streaming
spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")
Problemas conhecidos
Atualmente, não há suporte para monitoramento em tempo real. Os dados são atualizados ao longo do dia. Se não houver um log de um evento recente, verifique novamente mais tarde.
Para habilitar tabelas do sistema, talvez seja necessário conceder acesso à rede para o ponto de extremidade de armazenamento de blobs das tabelas do sistema. Para exibir uma lista do ponto de extremidade do armazenamento das tabelas do sistema de cada região, consulte Endereços IP do ponto de extremidade do armazenamento.
Os esquemas
system.operational_data
esystem.lineage
do sistema foram preteridos e conterão tabelas vazias.O esquema de tabela do sistema
__internal_logging
é usado para dar suporte ao registro em log de payload usando tabelas de inferência. Esse esquema é visível para os administradores da conta, mas não pode ser ativado e não deve ser usado para fluxos de trabalho do cliente.