ograniczenia łącznika GitHub

Ważna

Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

Ta strona zawiera informacje o znanych ograniczeniach łącznika zarządzanego GitHub w programie Lakeflow Connect.

Ogólne ograniczenia

  • Po uruchomieniu zaplanowanego potoku alerty nie są wyzwalane od razu. Zamiast tego wyzwalają się po uruchomieniu następnej aktualizacji.
  • Po usunięciu tabeli źródłowej tabela docelowa nie zostanie automatycznie usunięta. Musisz ręcznie usunąć tabelę docelową. To zachowanie nie jest zgodne z działaniem Spark Declarative Pipelines w Lakeflow.
  • W okresach konserwacji źródła usługa Databricks może nie mieć dostępu do Twoich danych.
  • Jeśli nazwa tabeli źródłowej powoduje konflikt z istniejącą nazwą tabeli docelowej, aktualizacja procesów zakończy się niepowodzeniem.
  • Obsługiwanie potoków z wieloma miejscami docelowymi jest dostępne wyłącznie przez API.
  • Możesz zmienić nazwę tabeli, którą importujesz. Jeśli zmienisz nazwę tabeli w swoim potoku, stanie się on potokiem dostępnym tylko przez API, i nie będzie można już edytować potoku w interfejsie użytkownika.
  • Jeśli wybierzesz kolumnę po uruchomieniu potoku, łącznik nie wypełnia automatycznie danych dla nowej kolumny. Aby pozyskać dane historyczne, ręcznie przeprowadź pełne odświeżanie na tabeli.
  • Usługa Databricks nie może pozyskiwać co najmniej dwóch tabel o tej samej nazwie w tym samym potoku, nawet jeśli pochodzą one z różnych schematów źródłowych.
  • System źródłowy zakłada, że kolumny kursorów są monotonicznie rosnące.
  • Łącznik pozyskuje nieprzetworzone dane bez przekształceń. Użyj dalszych deklaratywnych potoków Spark w potokach Lakeflow do przekształceń.

Usuwanie nie jest obsługiwane

Łącznik GitHub nie obsługuje pobierania informacji o usunięciach, z wyjątkiem repo_contents. Jest to ograniczenie interfejsu API GitHub.

Tabela repo_contents przechwytuje usunięcia plików. Po usunięciu pliku z repozytorium źródłowego łącznik usuwa odpowiedni wiersz z tabeli (usuwanie twarde). Zobacz Zawartość repozytorium.

Ograniczona obsługa przyrostowa

Większość tabel nie obsługuje aktualizacji przyrostowych, ponieważ interfejs API GitHub nie zapewnia sposobu filtrowania rekordów na podstawie kursora. Te tabele są całkowicie odświeżane przy każdej aktualizacji potoku. Aby uzyskać listę tabel i ich wzorców aktualizacji, zobacz Obsługiwane dane.

Wskazówki dotyczące wydajności dla dużych organizacji

Tabele używane wyłącznie do przetwarzania wsadowego, takie jak pull_requests, pull_request_commits i pull_request_reviews, mogą zawierać miliony rekordów w dużych organizacjach. Ponieważ te tabele są w pełni odświeżane w każdym przebiegu potoku, koszty pozyskiwania są skalowane z rozmiarem organizacji i częstotliwością potoku.

Aby zmniejszyć liczbę przebiegów:

  • Użyj wyboru kolumn, aby ograniczyć importowane kolumny w tych tabelach.
  • Użyj niższej częstotliwości uruchamiania potoku dla potoków zawierających tabele o dużym wolumenie danych.
  • Ogranicz pozyskiwanie danych do określonych repozytoriów dla tabel ograniczonych do repozytorium, takich jak pull_requests. To nie zmniejsza objętości dla pull_request_commits lub pull_request_reviews, które ignorują wybór repozytorium. Zobacz wybór repozytorium.

Wybór repozytorium

Domyślnie konektor pobiera dane ze wszystkich repozytoriów w organizacji. Aby ograniczyć pobieranie do konkretnych repozytoriów, ustaw opcję złącza repository_id_selections . Zobacz Opcje łącznika.

Wybór repozytorium dotyczy tylko tabel powiązanych z repozytorium. Nie ma to wpływu na następujące tabele na poziomie organizacji i tabele zagnieżdżone, które są zawsze w pełni importowane, nawet gdy ustawiono repository_id_selections:

  • audit_logs
  • teams
  • org_members
  • team_members
  • deployment_statuses
  • pull_request_commits
  • pull_request_reviews

Zawartość repozytorium

Tabela repo_contents pozyskuje wszystkie wpisy w drzewie każdego repozytorium, w tym pliki, katalogi, podmoduły i linki symboliczne. Tylko wpisy pliku (blob) wypełniają kolumnę content . Katalogi (tree) i podmoduły (commit) są wczytywane jako wiersze zawierające wyłącznie metadane, z kolumną content o wartości null. Obowiązują następujące ograniczenia:

  • Tylko gałąź domyślna: łącznik pobiera domyślną gałąź każdego repozytorium, zapisaną w kolumnie branch_name. Wybieranie lub importowanie wielu gałęzi w repozytorium nie jest obsługiwane.
  • Limit rozmiaru pliku: Pliki większe niż 100 MB nie są pobierane. Łącznik nadal pobiera wiersz z metadanymi pliku (path, sha, size_bytes), ale kolumna content jest null.
  • Pliki binarne: W przypadku plików binarnych kolumna content to null, a is_binary to true. Tylko zawartość plików tekstowych jest umieszczana w content.

Aby uzyskać więcej informacji, zobacz Zawartość repozytorium (repo_contents tabela).

Obsługiwane dane

Tabele z aktualizacjami przyrostowymi

Poniższe tabele obsługują aktualizacje przyrostowe:

  • repositories
  • audit_logs: Tylko konta organizacji. W github.com przypadku bezpłatnego planu historia dziennika inspekcji jest ograniczona do 90 dni.
  • repo_contents: Pobiera wpisy drzewa repozytorium i zawartość plików. Obsługiwane są aktualizacje przyrostowe i usuwanie. Zobacz Zawartość repozytorium.
  • commits
  • issues
  • issue_comments
  • pull_request_review_comments

Tylko tabele z aktualizacjami zbiorczymi

Poniższe tabele są w pełni odświeżane przy każdej aktualizacji potoku (nie przyrostowo):

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