Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Na tej stronie pokazano, jak utworzyć zarządzany potok pozyskiwania danych z GitHub za pomocą Databricks Lakeflow Connect.
Requirements
Aby utworzyć potok pozyskiwania, należy najpierw spełnić następujące wymagania:
Obszar roboczy musi być włączony dla Unity Catalog.
Obliczenia bezserwerowe muszą być aktywowane w obszarze roboczym. Zobacz Wymagania dotyczące obliczeń bezserwerowych.
Aby utworzyć nowe połączenie, musisz mieć
CREATE CONNECTIONuprawnienia do magazynu metadanych. Zobacz Zarządzanie uprawnieniami w Unity Catalog.Jeśli łącznik obsługuje tworzenie potoków opartych na interfejsie użytkownika, administrator może utworzyć połączenie i potok w tym samym czasie, wykonując kroki opisane na tej stronie. Jeśli jednak użytkownicy, którzy tworzą potoki, używają tworzenia potoków za pomocą API lub są użytkownikami niebędącymi administratorami, administrator musi najpierw utworzyć połączenie w Eksploratorze Katalogu. Zobacz Połączenie z zarządzanymi źródłami pozyskiwania danych.
Aby użyć istniejącego połączenia, musisz mieć
USE CONNECTIONuprawnienia lubALL PRIVILEGESw obiekcie połączenia.Musisz mieć
USE CATALOGuprawnienia do docelowego katalogu.Musisz mieć przywileje
USE SCHEMAiCREATE TABLEdo istniejącego schematu lubCREATE SCHEMAw wykazie docelowym.
Aby importować z usługi GitHub, musisz najpierw wykonać czynności opisane w artykule Tworzenie połączenia z usługą GitHub.
Tworzenie potoku pozyskiwania danych
Każda tabela źródłowa jest przesyłana do tabeli strumieniowej. Aby uzyskać listę obsługiwanych tabel źródłowych, zobacz Obsługiwane dane.
Interfejs użytkownika usługi Databricks
- Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Pozyskiwanie danych.
- Na stronie Dodaj dane, w sekcji łączniki Databricks, kliknij pozycję GitHub.
- Na stronie Connection w kreatorze importowania wybierz połączenie, które przechowuje poświadczenia dostępu do GitHub. Jeśli masz uprawnienia
CREATE CONNECTIONdo magazynu metadanych, możesz kliknąćUtwórz połączenie, aby utworzyć nowe połączenie, używając danych uwierzytelniających z Tworzenie połączenia GitHub.
- Kliknij przycisk Dalej.
- Na stronie Konfiguracja importu wprowadź unikatową nazwę potoku.
- Wybierz wykaz i schemat, do których mają być zapisywane dzienniki zdarzeń. Jeśli masz
i uprawnienia w katalogu, możesz kliknąć "Utworzyć schemat" w menu rozwijanym, aby stworzyć nowy schemat.ikonę Plus - Kliknij Utwórz kanał i kontynuuj.
- Na stronie Źródło wybierz tabele do importowania.
- Kliknij przycisk Zapisz i kontynuuj.
- Na stronie Miejsce docelowe wybierz wykaz i schemat, do którego mają być ładowane dane. Jeśli masz
i uprawnienia w katalogu, możesz kliknąć "Utworzyć schemat" w menu rozwijanym, aby stworzyć nowy schemat.ikonę Plus - Kliknij przycisk Zapisz i kontynuuj.
- (Opcjonalnie) Na stronie Harmonogramy i powiadomienia kliknij
Utwórz harmonogram. Ustaw częstotliwość odświeżania tabel docelowych.
- (Opcjonalnie) Kliknij
Dodaj powiadomienie aby ustawić powiadomienia e-mail dotyczące powodzenia lub niepowodzenia operacji potoku, a następnie kliknij pozycję Zapisz i uruchom potok.
Pakiety automatyzacji deklaratywnej
Użyj pakietów automatyzacji deklaratywnej, aby zarządzać potokami GitHub jako kodem. Pakiety mogą zawierać definicje YAML dotyczące prac i zadań, są zarządzane przy użyciu interfejsu wiersza polecenia usługi Databricks i mogą być udostępniane oraz uruchamiane w różnych docelowych obszarach roboczych (takich jak rozwój, środowisko testowe i produkcja). Aby uzyskać więcej informacji, zobacz Co to są pakiety deklaratywne automatyzacji?.
Utwórz nowy pakiet przy użyciu interfejsu wiersza polecenia usługi Databricks:
databricks bundle initDodaj dwa nowe pliki zasobów do pakietu:
- Plik definicji potoku (na przykład
resources/github_pipeline.yml). Zobacz pipeline.ingestion_definition i przykłady. - Plik definicji zadania, który kontroluje częstotliwość pozyskiwania danych (na przykład
resources/github_job.yml).
- Plik definicji potoku (na przykład
Wdróż pipeline za pomocą CLI Databricks.
databricks bundle deploy
Notatnik Databricks
Zaimportuj następujący notes do obszaru roboczego usługi Azure Databricks:
Pozostaw komórkę jedną bez zmian.
Zmodyfikuj komórkę numer trzy, używając szczegółów konfiguracji przepływu danych. Zobacz pipeline.ingestion_definition i przykłady.
Kliknij Uruchom wszystko.
Examples
Skorzystaj z tych przykładów, aby skonfigurować rurociąg. Pole source_schema określa nazwę organizacji GitHub, z której mają być pobierane dane. Nazwa jest opcjonalna destination_table — jeśli jej nie podasz, łącznik używa source_table nazwy.
Wczytaj pojedynczą tabelę źródłową
Pakiety automatyzacji deklaratywnej
Poniższy plik definicji rurociągu importuje pojedynczą tabelę źródłową.
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
# The main pipeline for github_dab
resources:
pipelines:
pipeline_github:
name: github_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <github-connection>
objects:
# An array of objects to ingest from GitHub. This example ingests the repositories table.
- table:
source_schema: <your_org_name>
source_table: repositories
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
Notatnik Databricks
Poniżej przedstawiono przykładową specyfikację rurociągu danych, która importuje pojedynczą tabelę źródłową.
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<github-connection>",
"objects": [
{
"table": {
"source_schema": "<your_org_name>",
"source_table": "repositories",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
Przetwarzanie wielu tabel źródłowych
Pakiety automatyzacji deklaratywnej
Następujący plik definicji potoku importuje wiele tabel źródłowych:
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
# The main pipeline for github_dab
resources:
pipelines:
pipeline_github:
name: github_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <github-connection>
objects:
# An array of objects to ingest from GitHub. This example ingests the repositories and pull_requests tables.
- table:
source_schema: <your_org_name>
source_table: repositories
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
- table:
source_schema: <your_org_name>
source_table: pull_requests
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
Notatnik Databricks
Poniżej przedstawiono przykładową specyfikację przepływu danych, która importuje wiele tabel źródłowych:
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<github-connection>",
"objects": [
{
"table": {
"source_schema": "<your_org_name>",
"source_table": "repositories",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
},
{
"table": {
"source_schema": "<your_org_name>",
"source_table": "pull_requests",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
Ogranicz pozyskiwanie danych do określonych repozytoriów
Domyślnie konektor importuje wszystkie repozytoria należące do organizacji. Aby pobierać tylko konkretne repozytoria, ustaw opcję złącza repository_id_selections poniżej github_options na listę numerycznych identyfikatorów repozytoriów GitHub. Opcja obejmuje zakres każdej tabeli o skali repozytorium w potoku, więc ustaw ją na jednym obiekcie w definicji pobierania. Semantykę opcji i tabele, do których się odnosi, znajdziesz w Opcjach Łącznika.
Pakiety automatyzacji deklaratywnej
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
resources:
pipelines:
pipeline_github:
name: github_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <github-connection>
objects:
- table:
source_schema: <your_org_name>
source_table: repositories
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
connector_options:
github_options:
repository_id_selections:
- '123456789'
- '987654321'
Notatnik Databricks
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<github-connection>",
"objects": [
{
"table": {
"source_schema": "<your_org_name>",
"source_table": "repositories",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema",
"connector_options": {
"github_options": {
"repository_id_selections": ["123456789", "987654321"]
}
}
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
Plik definicji zadania zbiorczego
Poniżej przedstawiono przykładowy plik definicji zadania do użycia z pakietami deklaratywnej automatyzacji. Zadanie jest uruchamiane codziennie, dokładnie w odstępie jednego dnia od ostatniego uruchomienia.
resources:
jobs:
github_dab_job:
name: github_dab_job
trigger:
periodic:
interval: 1
unit: DAYS
email_notifications:
on_failure:
- <email-address>
tasks:
- task_key: refresh_pipeline
pipeline_task:
pipeline_id: ${resources.pipelines.pipeline_github.id}
Często używane wzorce
Aby zapoznać się z zaawansowanymi konfiguracjami potoków, zobacz Typowe wzorce dla zarządzanych potoków pozyskiwania.
Następne kroki
Rozpocznij, zaplanuj i ustaw alerty w swoim strumieniu danych. Zobacz Typowe zadania zarządzania potokiem.
Dodatkowe zasoby
- ograniczenia łącznika GitHub
- Informacje o łączniku GitHub