Limitações do conector GitHub
Beta
Esse recurso está em Beta.
Esta página contém informações sobre as limitações conhecidas do conector GitHub no LakeFlow Connect.
Limitações gerais
- Ao executar um pipeline agendado, os alertas não são acionados imediatamente. Em vez disso, elas são acionadas na próxima execução da atualização.
- Quando uma tabela de origem é excluída, a tabela de destino não é excluída automaticamente. Você deve excluir a tabela de destino manualmente. Este comportamento não é consistente com o comportamento do Spark Declarative Pipelines no Lakeflow.
- Durante períodos de manutenção da fonte de dados, o Databricks poderá não conseguir acessar seus dados.
- Se o nome de uma tabela de origem entrar em conflito com o nome de uma tabela de destino existente, a atualização do pipeline falhará.
- O suporte pipeline com múltiplos destinos é feito exclusivamente via API.
- Opcionalmente, você pode renomear uma tabela que você importa. Se você renomear uma tabela em seu pipeline, ele se tornará um pipeline somente para API e você não poderá mais editá- pipeline na interface do usuário.
- Se você selecionar uma coluna depois que um pipeline já tiver sido iniciado, o conector não preencherá automaticamente os dados da nova coluna. Para ingerir dados históricos, execute manualmente uma refresh completa na tabela.
- O Databricks não consegue ingerir duas ou mais tabelas com o mesmo nome no mesmo pipeline, mesmo que elas provenham de esquemas de origem diferentes.
- O sistema de origem pressupõe que as colunas do cursor estejam em ordem crescente monotônica.
- O conector ingere dados brutos sem transformações. Use Spark Declarative Pipelines subsequentes em Lakeflow pipelines para transformações.
Exclusões não suportadas
O conector GitHub não suporta a busca de exclusões, com exceção de repo_contents. Esta é uma limitação da API do GitHub.
A tabela repo_contents registra as exclusões de arquivos. Quando um arquivo é removido do repositório de origem, o conector remove a linha correspondente da tabela (exclusão permanente). Consulte Conteúdo do repositório.
Suporte incremental limitado
A maioria das tabelas não suporta atualizações incrementais porque a API do GitHub não oferece uma maneira de filtrar registros com base em um cursor. Essas tabelas são totalmente atualizadas a cada atualização do pipeline. Para obter uma lista das tabelas e seus padrões de atualização, consulte Dados suportados.
Orientações de desempenho para grandes organizações
Tabelas apenas de lotes, como pull_requests, pull_request_commits e pull_request_reviews, podem conter milhões de registros em grandes organizações. Como essas tabelas são totalmente atualizadas a cada execução de pipeline, o custo de ingestão escala com o tamanho da organização e a frequência do pipeline.
Para reduzir o volume por execução:
- Utilize a seleção de colunas para limitar as colunas incluídas nessas tabelas.
- Utilize uma frequência pipeline menor para pipelines que incluam tabelas de alto volume.
- Restrinja a ingestão a repositories específicos para tabelas com escopo de repository, como
pull_requests. Isso não reduz o volume parapull_request_commitsoupull_request_reviews, que ignoram a seleção de repository. Consulte Seleção de repository.
Seleção de repository
Por default, o conector ingere dados de todos os repositories na organização. Para restringir a ingestão a repositories específicos, defina a opção de conector repository_id_selections. Consulte Opções do conector.
A seleção de repository aplica-se apenas a tabelas com escopo de repository. Isso não tem efeito nas seguintes tabelas aninhadas e com escopo de organização, que são sempre ingeridas na íntegra, mesmo quando repository_id_selections está definido:
audit_logsteamsorg_membersteam_membersdeployment_statusespull_request_commitspull_request_reviews
Conteúdo do repositório
A tabela repo_contents ingere todas as entradas na árvore de cada repositório, incluindo arquivos, diretórios, submódulos e links simbólicos. Apenas entradas de arquivo (blob) preenchem a coluna content. Diretórios (tree) e submódulos (commit) são ingeridos como linhas apenas de metadados com uma coluna content nula. Aplicam-se as seguintes limitações:
- Apenas a branch default : O conector ingere a branch default de cada repositório, registrada na coluna
branch_name. A seleção ou ingestão de várias branches por repositório não é compatível. - 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 colunacontenténull. - Arquivos binários : Para arquivos binários, a coluna
contenténulleis_binaryétrue. Apenas o conteúdo de arquivos de texto é preenchido emcontent.
Para obter mais informações, consulte Conteúdo do repositório (tabela repo_contents).
Dados suportados
Tabelas com atualizações incrementais
As tabelas a seguir suportam atualizações incrementais:
repositoriesaudit_logs: Organization accounts only. GitHub retains organization audit log events for up to 180 days. The connector can't ingest events older than this retention window. Ongithub.comfree plan, audit log história is limited to 90 days.repo_contents: Ingere entradas da árvore do repositório e conteúdo de arquivos. Atualizações e exclusões incrementais são suportadas. Consulte Conteúdo do repositório.commitsissuesissue_commentspull_request_review_comments
Tabelas com atualizações de lotes apenas
As tabelas a seguir são totalmente atualizadas a cada atualização do pipeline (não incremental):
branchescollaboratorsdeploymentsdeployment_statusesdiscussionslabelsmilestonesorg_memberspull_request_commitspull_request_reviewspull_requestsreleasestagsteam_membersteamsworkflows