Udostępnij za pośrednictwem


Uruchamianie zapytań federacyjnych w usłudze Google BigQuery

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

W tym artykule opisano sposób konfigurowania federacji lakehouse w celu uruchamiania zapytań federacyjnych na danych BigQuery, które nie są zarządzane przez usługę Azure Databricks. Aby dowiedzieć się więcej o federacji Lakehouse, zobacz Co to jest Federacja Lakehouse?.

Aby nawiązać połączenie z bazą danych BigQuery przy użyciu usługi Lakehouse Federation, należy utworzyć następujące elementy w magazynie metadanych wykazu aparatu Unity usługi Azure Databricks:

  • Połączenie z bazą danych BigQuery.
  • Wykaz obcy, który odzwierciedla bazę danych BigQuery w katalogu aparatu Unity, dzięki czemu można użyć składni zapytań wykazu aparatu Unity i narzędzi do zapewniania ładu danych w celu zarządzania dostępem użytkowników usługi Azure Databricks do bazy danych.

Zanim rozpoczniesz

Wymagania dotyczące obszaru roboczego:

  • Obszar roboczy włączony dla wykazu aparatu Unity.

Wymagania dotyczące obliczeń:

  • Łączność sieciowa z klastra środowiska Databricks Runtime lub usługi SQL Warehouse z docelowymi systemami baz danych. Zobacz Zalecenia dotyczące sieci dla usługi Lakehouse Federation.
  • Klastry usługi Azure Databricks muszą używać środowiska Databricks Runtime 13.3 LTS lub nowszego oraz trybu dostępu współużytkowanego lub pojedynczego użytkownika.
  • Magazyny SQL muszą mieć wartość Pro lub Bezserwerową.

Wymagane uprawnienia:

  • Aby utworzyć połączenie, musisz być administratorem magazynu metadanych lub użytkownikiem z CREATE CONNECTION uprawnieniami w magazynie metadanych wykazu aparatu Unity dołączonym do obszaru roboczego.
  • Aby utworzyć wykaz obcy, musisz mieć CREATE CATALOG uprawnienia do magazynu metadanych i być właścicielem połączenia lub mieć CREATE FOREIGN CATALOG uprawnienia do połączenia.

Dodatkowe wymagania dotyczące uprawnień są określone w każdej sekcji opartej na zadaniach.

Tworzenie połączenia

Połączenie określa ścieżkę i poświadczenia dostępu do zewnętrznego systemu bazy danych. Aby utworzyć połączenie, możesz użyć Eksploratora wykazu lub CREATE CONNECTION polecenia SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.

Uwaga

Do utworzenia połączenia można również użyć interfejsu API REST usługi Databricks lub interfejsu wiersza polecenia usługi Databricks. Zobacz POLECENIA POST /api/2.1/unity-catalog/connections i Unity Catalog.

Wymagane uprawnienia: administrator magazynu metadanych lub użytkownik z uprawnieniami CREATE CONNECTION .

Eksplorator wykazu

  1. W obszarze roboczym usługi Azure Databricks kliknij pozycję Ikona wykazu Wykaz.

  2. W górnej części okienka Wykaz kliknij Dodaj lub ikonę znaku plus ikonę Dodaj i wybierz pozycję Dodaj połączenie z menu.

    Alternatywnie na stronie Szybki dostęp kliknij przycisk Dane >zewnętrzne, przejdź do karty Połączenia, a następnie kliknij pozycję Utwórz połączenie.

  3. Wprowadź przyjazną dla użytkownika nazwę połączenia.

  4. Wybierz typ połączenia BigQuery.

  5. Wprowadź następującą właściwość połączenia dla wystąpienia bigquery.

    GoogleServiceAccountKeyJson: nieprzetworzonego obiektu JSON używanego do określania projektu BigQuery i zapewnienia uwierzytelniania. Możesz wygenerować ten obiekt JSON i pobrać go ze strony szczegółów konta usługi w usłudze Google Cloud w obszarze "KLUCZE". Konto usługi musi mieć odpowiednie uprawnienia przyznane w trybie BigQuery, w tym użytkownika BigQuery i podglądu danych BigQuery. Poniżej przedstawiono przykład.

    {
      "type": "service_account",
      "project_id": "PROJECT_ID",
      "private_key_id": "KEY_ID",
      "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
      "client_email": "SERVICE_ACCOUNT_EMAIL",
      "client_id": "CLIENT_ID",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "token_uri": "https://accounts.google.com/o/oauth2/token",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL",
      "universe_domain": "googleapis.com"
    }
    
  6. (Opcjonalnie) Wprowadź następującą właściwość połączenia dla wystąpienia bigquery:

    Identyfikator projektu: nazwa projektu BigQuery używana do rozliczeń dla wszystkich zapytań uruchamianych w ramach tego połączenia. Domyślnie jest to identyfikator projektu konta usługi.

  7. (Opcjonalnie) Kliknij pozycję Testuj połączenie , aby potwierdzić łączność sieciową. Ta akcja nie testuje uwierzytelniania.

  8. (Opcjonalnie) Dodaj komentarz.

  9. Kliknij pozycję Utwórz.

SQL

Uruchom następujące polecenie w notesie lub edytorze zapytań SQL usługi Databricks. Zastąp <GoogleServiceAccountKeyJson> element nieprzetworzonym obiektem JSON, który określa projekt BigQuery i zapewnia uwierzytelnianie. Możesz wygenerować ten obiekt JSON i pobrać go ze strony szczegółów konta usługi w usłudze Google Cloud w obszarze "KLUCZE". Konto usługi musi mieć odpowiednie uprawnienia przyznane w trybie BigQuery, w tym użytkownika bigquery i podglądu danych BigQuery. Na przykładowy obiekt JSON wyświetl kartę Eksplorator wykazu na tej stronie.

CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
  GoogleServiceAccountKeyJson '<GoogleServiceAccountKeyJson>'
);

Zalecamy używanie wpisów tajnych usługi Azure Databricks zamiast ciągów w postaci zwykłego tekstu dla poufnych wartości, takich jak poświadczenia. Na przykład:

CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
  GoogleServiceAccountKeyJson secret ('<secret-scope>','<secret-key-user>')
)

Aby uzyskać informacje na temat konfigurowania wpisów tajnych, zobacz Zarządzanie wpisami tajnymi.

Tworzenie wykazu obcego

Wykaz obcy odzwierciedla bazę danych w zewnętrznym systemie danych, dzięki czemu można wykonywać zapytania o dostęp do danych w tej bazie danych i zarządzać nimi przy użyciu usług Azure Databricks i Unity Catalog. Aby utworzyć wykaz obcy, użyj połączenia ze źródłem danych, które zostało już zdefiniowane.

Aby utworzyć wykaz obcy, możesz użyć Eksploratora wykazu lub CREATE FOREIGN CATALOG w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.

Uwaga

Do utworzenia katalogu można również użyć interfejsu API REST usługi Databricks lub interfejsu wiersza polecenia usługi Databricks. Zobacz POST /api/2.1/unity-catalog/catalogs lub Unity Catalog polecenia.

Wymagane uprawnienia: CREATE CATALOG uprawnienie do magazynu metadanych i własność połączenia lub CREATE FOREIGN CATALOG uprawnienia do połączenia.

Eksplorator wykazu

  1. W obszarze roboczym usługi Azure Databricks kliknij pozycję Ikona wykazu Wykaz , aby otworzyć Eksploratora wykazu.

  2. W górnej części okienka Wykaz kliknij Dodaj lub ikonę znaku plus ikonę Dodaj i wybierz pozycję Dodaj wykaz z menu.

    Alternatywnie na stronie Szybki dostęp kliknij przycisk Wykazy , a następnie kliknij przycisk Utwórz wykaz .

  3. (Opcjonalnie) Wprowadź następującą właściwość wykazu:

    Identyfikator projektu danych: nazwa projektu BigQuery zawierającego dane, które zostaną zamapowane na ten wykaz. Domyślnie identyfikator projektu rozliczeniowego ustawiony na poziomie połączenia.

  4. Postępuj zgodnie z instrukcjami dotyczącymi tworzenia katalogów obcych w temacie Tworzenie katalogów.

SQL

Uruchom następujące polecenie SQL w notesie lub edytorze SQL usługi Databricks. Elementy w nawiasach kwadratowych są opcjonalne. Zastąp wartości symboli zastępczych.

  • <catalog-name>: nazwa wykazu w usłudze Azure Databricks.
  • <connection-name>: obiekt połączenia określający źródło danych, ścieżkę i poświadczenia dostępu.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>;

Obsługiwane wypychania

Obsługiwane są następujące wypychania:

  • Filtry
  • Projekcje
  • Limit
  • Funkcje: częściowe, tylko dla wyrażeń filtru. (Funkcje ciągów, Funkcje matematyczne, Dane, Czas i Sygnatura czasowa oraz inne różne funkcje, takie jak Alias, Cast, SortOrder)
  • Agregacje
  • Sortowanie w przypadku użycia z limitem

Następujące wypychania nie są obsługiwane:

  • Sprzężenia
  • Funkcje systemu Windows

Mapowanie typu danych

W poniższej tabeli przedstawiono mapowanie typu danych BigQuery na spark.

Typ BigQuery Typ platformy Spark
bignumeryczne, liczbowe Typ dziesiętny
int64 LongType
float64 DoubleType
array, geography, interval, json, string, struct VarcharType
B BinaryType
bool Typ logiczny
data Typ daty
datetime, time, timestamp TimestampType/TimestampNTZType

Podczas odczytywania z trybu BigQuery bigquery Timestamp jest mapowany na platformę Spark TimestampType , jeśli preferTimestampNTZ = false (wartość domyślna). Funkcja BigQuery Timestamp jest mapowana na TimestampNTZType wartość if preferTimestampNTZ = true.