Monitorar o uso com tabelas do sistema

Importante

Esse recurso está em uma versão prévia. No momento, não há encargos para usar esse recurso. No futuro, parte desse uso pode incorrer em uma cobrança.

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.

Quais tabelas do sistema estão disponíveis?

Atualmente, o Azure Databricks hospeda tabelas do sistema para:

Tabela Descrição Location Dá suporte ao streaming Retenção Inclui dados globais ou regionais
Logs de auditoria 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 da tabela 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 da coluna 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 N/D Global
Clusters Uma tabela de dimensão variável lenta que contém o histórico completo das configurações de cluster ao longo do tempo para qualquer cluster. system.compute.clusters Sim Nenhum Regional
Tipos de nós 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
Eventos do SQL warehouse Captura eventos relacionados a SQL warehouses. Por exemplo, iniciar, parar, executar, escalar verticalmente e reduzir verticalmente. system.compute.warehouse_events Yes 365 dias Regional
Eventos de funil do Marketplace 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 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 Controla o histórico de operações do recurso de otimização preditiva. system.storage.predictive_

optimization_operations_history
Não 180 dias Regional

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.

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 às tabelas do sistema. Para permitir acesso, um administrador do metastore ou outro usuário privilegiado precisa conceder as permissões USE e SELECT nos 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 de log de auditoria e de linhagem contêm dados operacionais de todos os workspaces na sua conta implantados na mesma região de nuvem. A tabela do sistema de cobrança (system.billing.usage) contém dados de todos os workspaces na sua conta, independentemente da região em que eles estão implantados.

Embora as tabelas do sistema só possam ser acessadas através de um workspace do Catálogo do Unity, as tabelas também incluem dados operacionais de workspaces na sua conta que não estejam no Catálogo Unity.

Onde estão as tabelas do sistema?

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.

Observação

Durante a Visualização Pública das tabelas do sistema, o Azure Databricks manterá todos os dados das tabelas do sistema.

Considerações sobre tabelas do sistema de streaming

O acesso às tabelas do sistema é compatível com o Compartilhamento Delta. 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 skipChangeCommit como true. 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 em Trigger.Once.
  • Se você usar um gatilho em seu trabalho de streaming e descobrir que o trabalho não está alcançando a versão mais recente da tabela do sistema, o Databricks recomenda aumentar a frequência agendada do trabalho.

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 e system.lineage do sistema foram preteridos e conterão tabelas vazias.