limitações do conector GitHub

Importante

Esse recurso está em Beta. Os administradores do workspace podem controlar o acesso a esse recurso na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.

Esta página contém informações sobre limitações conhecidas do conector GitHub gerenciado no Lakeflow Connect.

Limitações gerais

  • Quando você executa um pipeline agendado, os alertas não são disparados imediatamente. Em vez disso, eles são disparados quando a próxima atualização é executada.
  • Quando uma tabela de origem é excluída, a tabela de destino não é excluída automaticamente. Você precisa excluir a tabela de destino manualmente. Este comportamento não é consistente com o comportamento de Pipelines Declarativos do Spark no Lakeflow.
  • Durante os períodos de manutenção, o Databricks pode não conseguir acessar seus dados.
  • Se o nome da tabela de origem entrar em conflito com um nome de tabela de destino existente, o fluxo falhará.
  • O suporte a pipeline de vários destinos é somente para API.
  • Opcionalmente, você pode renomear uma tabela que ingerir. Se você renomear uma tabela em seu pipeline, ela se tornará um pipeline somente de API e você não poderá mais editar o pipeline na interface do usuário.
  • Se você selecionar uma coluna depois que um pipeline já tiver sido iniciado, o conector não fará o backfill de dados automaticamente para a nova coluna. Para ingerir dados históricos, execute manualmente uma atualização completa na tabela.
  • O Databricks não pode ingerir duas ou mais tabelas com o mesmo nome no mesmo pipeline, mesmo que elas venham de esquemas de origem diferentes.
  • O sistema de origem pressupõe que as colunas de cursor estão aumentando monotonicamente.
  • O conector ingere dados brutos sem transformações. Use Pipelines Declarativos do Spark em pipelines do Lakeflow para transformações.

Não há suporte para exclusões

O conector do GitHub não oferece suporte à recuperação de exclusões, com exceção de repo_contents. Essa é uma limitação da API GitHub.

A tabela repo_contents registra exclusões de arquivos. Quando um arquivo é removido do repositório de origem, o conector remove a linha correspondente da tabela (exclusão rígida). Consulte o conteúdo do Repositório.

Suporte incremental limitado

A maioria das tabelas não dá suporte a atualizações incrementais porque a API GitHub não fornece uma maneira de filtrar registros com base em um cursor. Essas tabelas são totalmente atualizadas em cada atualização de pipeline. Para obter uma lista de tabelas e seus padrões de atualização, consulte os dados com suporte.

Diretrizes de desempenho para grandes organizações

Tabelas como commits, pull_requestse issues podem conter milhões de registros em grandes organizações. Como essas tabelas são totalmente atualizadas a cada execução do pipeline, o custo de ingestão escala de acordo com o tamanho da organização e a frequência do pipeline.

Para reduzir o volume por execução:

  • Use a seleção de coluna para limitar as colunas ingeridas para essas tabelas.
  • Use uma frequência de pipeline mais baixa para pipelines que incluam tabelas de alto volume.

Conteúdo do repositório

A repo_contents tabela ingere todas as entradas na árvore de cada repositório, incluindo arquivos, diretórios, submódulos e links simbólicos. Somente entradas de arquivo (blob) preenchem a content coluna. Diretórios (tree) e submódulos (commit) são ingeridos como linhas somente de metadados com uma coluna nula content . As seguintes limitações se aplicam:

  • Apenas a ramificação padrão: o conector importa a ramificação padrão de cada repositório, registrada na coluna branch_name. Não há suporte à seleção ou ingestão de várias ramificações por repositório.
  • Limite de tamanho do arquivo: arquivos maiores que 100 MB não são buscados. O conector ainda ingere a linha de metadados do arquivo (path, sha, size_bytes), mas a coluna content é null.
  • Arquivos binários: para arquivos binários, a content coluna é null e is_binary é true. Somente o conteúdo de arquivos de texto é preenchido em content.

Para obter mais informações, consulte o conteúdo do Repositório (repo_contents tabela).

Dados com suporte

Tabelas com atualizações incrementais

As tabelas a seguir dão suporte a atualizações incrementais:

  • repositories
  • audit_logs: Somente para contas da organização. No github.com plano gratuito, o histórico dos logs de auditoria é limitado a 90 dias.
  • repo_contents: ingere entradas de árvore de repositório e conteúdo de arquivo. Há suporte para atualizações incrementais e exclusões. Consulte o conteúdo do Repositório.

Tabelas apenas com atualizações em lote

As tabelas a seguir são totalmente atualizadas a cada atualização do pipeline (não incremental):

  • branches
  • collaborators
  • commits
  • deployments
  • deployment_statuses
  • discussions
  • issues
  • labels
  • milestones
  • org_members
  • pull_request_commits
  • pull_request_review_comments
  • pull_request_reviews
  • pull_requests
  • releases
  • tags
  • team_members
  • teams
  • workflows