Pular para o conteúdo principal

Diagnosticar e corrigir problemas com o Genie

info

Beta

Esse recurso está em Beta. Administradores do Workspace podem controlar o acesso a este recurso na página **Pré-visualizações**. Consulte Gerenciar prévias do Databricks.

Na IU do Lakebase, o Genie diagnostica e corrige seu banco de dados. Você pergunta sobre um problema específico com suas próprias palavras, e ele investiga usando a mesma telemetria que os Insights: estado do Postgres ao vivo, planos de query, eventos de espera e histórico de DDL e alteração de esquema. Este é o mesmo Genie que você usa no Lakehouse e nos aplicativos; aqui ele funciona no seu projeto Lakebase.

O Genie funciona como uma conversa passo a passo: ele mostra seu raciocínio e solicita que você aprove cada ação, incluindo as queries que executa durante a investigação. Qualquer correção, incluindo uma alteração de banco de dados, requer sua confirmação explícita antes de ser aplicada.

Esta página apresenta um incidente de produção comum (um deploy que remove uma coluna que o aplicativo ainda query) para mostrar como pedir ajuda ao Genie funciona de ponta a ponta.

Pré-requisitos

O cenário

Uma alteração de esquema executa ALTER TABLE users DROP COLUMN bio como parte de uma implantação de rotina. O aplicativo ainda lê essa coluna em sua página de perfil. Em poucos minutos, as solicitações de página de perfil começam a falhar com column "bio" does not exist, e a taxa de erros do aplicativo aumenta.

Como flui uma investigação do Genie

O que o Genie encontra e recomenda depende dos seus dados e da questão por trás deles, então trate isso como ilustrativo, não como um script que você verá literalmente. Abra o Genie a partir do seu projeto (ele capta automaticamente o contexto do seu projeto, branch e endpoint) e descreva o sintoma. A partir daí, uma investigação típica passa por quatro etapas:

Descreva o sintoma

Pergunte em linguagem simples, da maneira que você diria a um colega: "Por que a taxa de erro aumentou?" Você não precisa saber a causa, a query com falha ou qual tabela está envolvida.

O Genie correlaciona e lê a história

Ele vincula o erro à query com falha e, em seguida, verifica o histórico de DDL para ver o que mudou. O histórico de DDL não captura todas as alterações (uma feita logo quando um compute é retomado do scale-to-zero pode ser perdida), portanto, quando um registro está ausente, o Genie informa isso e recorre à comparação das colunas atuais da tabela com o que a query espera. De qualquer forma, ele identifica bio como a coluna removida. Esta é a mesma história que as percepções leem, portanto, o Genie pode retomar de onde uma percepção em segundo plano parou.

O Genie propõe uma recuperação, baseada no que encontrou

Normalmente, começa com uma branch de ponto no tempo criada logo antes da alteração: um clone instantâneo de copy-on-write que compartilha o armazenamento com a produção, sendo barato o suficiente para ser iniciado para qualquer correção. A partir daí, a recuperação é uma conversa: o Genie pode copiar os dados ausentes de volta para sua tabela atual ou alternar seu aplicativo para a branch restaurada. Alguns caminhos precisam de um detalhe seu ao longo do processo, como uma string de conexão que o Genie não consegue descobrir por conta própria.

Você confirma antes que qualquer coisa seja aplicada

O Genie nunca restaura, modifica ou aplica uma correção por conta própria. Ele relata as ações que realiza, mas verifique as ações consequentes (um ponto de restauração, uma branch excluída) na interface do Lakebase antes de confiar nelas.

Limitações a serem observadas

  • Alguns elementos genéricos da UI do Genie (como Customizações, Automações, Spaces e Adicionar contexto) atualmente aparecem no Genie, mas ainda não estão funcionais.
  • Uma conversação do Genie continuada de fora da UI do Lakebase (por exemplo, de um Notebook) mantém a história da conversação, mas perde as ferramentas e o contexto da página original. Começar novas investigações de dentro do projeto Lakebase para os resultados mais confiáveis.
  • Branches e endpoints aparecem pelo ID interno, não por um nome de exibição como "production". Se a resposta do Genie for ambígua sobre qual branch ou endpoint ele se refere, faça uma referência cruzada do ID na interface do Lakebase. Para saber mais, consulte as limitações de telemetria.

Próximos passos