Uruchamianie zapytań federacyjnych w chmurze danych usługi Salesforce
W tym artykule opisano sposób set federacji usługi Lakehouse w celu uruchamiania zapytań federacyjnych na danych usługi Salesforce Data Cloud, 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 usługi Salesforce Data Cloud przy użyciu usługi Lakehouse Federation, należy utworzyć następujące elementy w magazynie metadanych usługi Azure Databricks Unity Catalog:
- Połączenie z bazą danych usługi Salesforce Data Cloud.
- zewnętrzny catalog, który odwzorowuje bazę danych usługi Salesforce Data Cloud w środowisku Unity Catalog, dzięki czemu można używać składni zapytań Unity Catalog i narzędzi do zarządzania danymi w celu kontrolowania dostępu użytkowników usługi Azure Databricks do bazy danych.
Zanim rozpoczniesz
Wymagania dotyczące obszaru roboczego:
- Obszar roboczy włączono dla środowiska Unity Catalog.
Wymagania dotyczące obliczeń:
- Łączność sieciowa z zasobu obliczeniowego do docelowych systemów baz danych. Zobacz Zalecenia dotyczące sieci dla usługi Lakehouse Federation.
- Środowisko obliczeniowe usługi Azure Databricks musi używać Databricks Runtime 15.2 lub nowszego i trybu dostępu udostępnionego lub pojedynczego użytkownika.
- Magazyny SQL muszą być w wersji pro lub bezserwerowej i muszą używać wersji 2024.30 lub nowszej.
Wymagane uprawnienia:
- Aby utworzyć połączenie, musisz być administratorem magazynu metadanych lub użytkownikiem z uprawnieniami
CREATE CONNECTION
w magazynie metadanych Unity Catalog, który jest dołączony do obszaru roboczego. - Aby utworzyć zagraniczną catalog, musisz mieć uprawnienie
CREATE CATALOG
w magazynie metadanych i być właścicielem połączenia lub mieć przywilejCREATE FOREIGN CATALOG
w połączeniu.
Dodatkowe wymagania dotyczące uprawnień są określone w każdej sekcji opartej na zadaniach.
Tworzenie połączonej aplikacji usługi Salesforce
Połączone aplikacje usługi Salesforce umożliwiają integrowanie aplikacji zewnętrznej z usługą Salesforce przy użyciu interfejsów API i standardowych protokołów. W tej sekcji opisano sposób tworzenia połączonej aplikacji przy użyciu logowania jednokrotnego, aby umożliwić usłudze Databricks uwierzytelnianie za pomocą usługi Salesforce.
Uwaga
Aby uzyskać bardziej szczegółowe instrukcje, zobacz Tworzenie połączonej aplikacji w dokumentacji usługi Salesforce Data Cloud.
Aby utworzyć aplikację połączoną z usługą Salesforce, wykonaj następujące czynności:
- W prawym górnym rogu okienka Chmura danych kliknij pozycję Konfiguracja.
- W obszarze Narzędzia platformy kliknij pozycję Aplikacje > App Manager.
- Kliknij pozycję Nowa połączona aplikacja.
- Wprowadź nazwę i kontaktowy adres e-mail.
- Włącz ustawienia protokołu OAuth:
-
Wprowadź adres URL wywołania zwrotnego w następującym formacie:
https://<databricks_instance_url>/login/oauth/salesforce.html
. Na przykład:https://cust-success.cloud.databricks.com/login/oauth/salesforce.html
. - (Opcjonalnie) Jeśli planujesz użyć języka SQL do utworzenia połączenia usługi Azure Databricks i obcego catalog w następnym kroku, aplikacja połączona z usługą Salesforce musi również obsługiwać identyfikator URI przekierowania
https://login.salesforce.com/services/oauth2/success
. Nie jest to konieczne, jeśli planujesz użyć narzędzia Catalog Explorer do utworzenia połączenia z usługą Azure Databricks oraz obcego catalog. Usługa Databricks zaleca korzystanie z narzędzia Catalog Explorer, ponieważ wymaga mniej ręcznych kroków niż inne metody. - Dodaj następujące zakresy:
- Uzyskiwanie dostępu do wszystkich zasobów interfejsu API chmury danych (cdp_api)
- Zarządzanie danymi użytkownika za pośrednictwem interfejsów API (api)
- Wykonywanie zapytań ANSI SQL dotyczących danych w chmurze danych (cdp_query_api)
- Wykonywanie żądań w dowolnym momencie (refresh_token, offline_access)
- Kliknij przycisk Zapisz.
- Kliknij przycisk Continue (Kontynuuj).
-
Wprowadź adres URL wywołania zwrotnego w następującym formacie:
- Na stronie Przegląd połączonej aplikacji kliknij pozycję Zarządzaj szczegółami użytkownika. Zostanie wyświetlony monit o uwierzytelnienie.
- Po pomyślnym uwierzytelnieniu ujawniono klucz klienta i klucz tajny użytkownika. Zapisz te elementy (values). Będą one potrzebne podczas tworzenia połączenia usługi Azure Databricks.
Tworzenie połączenia usługi Azure Databricks
Połączenie określa ścieżkę i credentials na potrzeby uzyskiwania dostępu do zewnętrznego systemu bazy danych. Aby utworzyć połączenie, możesz użyć eksploratora Catalog lub polecenia CREATE CONNECTION
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 POST /api/2.1/unity-catalog/connections i polecenia Unity Catalog.
Wymagane uprawnienia: administrator magazynu metadanych lub użytkownik z uprawnieniami CREATE CONNECTION
.
Eksplorator Catalog
W obszarze roboczym usługi Azure Databricks kliknij ikonę Catalog.
W górnej części okienka Catalog kliknij ikonę Ikona Dodaj i selectDodaj połączenie z menu.
Alternatywnie, na stronie szybki dostęp, kliknij przycisk Zewnętrzne dane >, przejdź do karty Connections, a następnie kliknij pozycję Utwórz połączenie.
Na stronie Podstawowe informacje o połączeniu kreatora Set połączenia wprowadź przyjazną dla użytkownika nazwę połączenia .
Select typ połączenia usługi Salesforce Data Cloud.
(Opcjonalnie) Dodaj komentarz.
Na stronie Authentication wprowadź następujące właściwości połączenia dla usługi Salesforce Data Cloud:
- (Opcjonalnie) Selectto piaskownica.
- identyfikator klienta: klucz klienta aplikacji połączonej Salesforce.
- Klucz tajny klienta: klucz tajny aplikacji połączonej z Salesforce.
-
zakres klienta:
cdp_api api cdp_query_api refresh_token offline_access
Kliknij pozycję Zaloguj się przy użyciu usługi Salesforce.
(OAuth) Zostanie wyświetlony monit o zalogowanie się do usługi Salesforce Data Cloud przy użyciu logowania jednokrotnego credentials.
Po pomyślnym zalogowaniu zostaniesz przekierowany z powrotem do kreatora połączenia Databricks Set. Przycisk Zaloguj się przy użyciu usługi Salesforce został zastąpiony komunikatem
Successfully authorized
.Kliknij pozycję Utwórz połączenie.
Na stronie podstawowe Catalog wprowadź nazwę dla obcego elementu catalog. Zagraniczny catalog odzwierciedla bazę danych w zewnętrznym systemie danych, dzięki czemu można wykonywać zapytania i zarządzać dostępem do danych w tej bazie danych przy użyciu usług Azure Databricks i Unity Catalog.
(Opcjonalnie) Kliknij pozycję Testuj połączenie, aby potwierdzić, że działa.
Kliknij Utwórz catalog.
Na stronie Accessselect obszary robocze, w których użytkownicy mogą uzyskiwać dostęp do utworzonego catalog. Możesz selectumożliwić dostęp do wszystkich obszarów roboczych, lub kliknąć Przypisz do obszarów roboczych, select, a następnie kliknąć Przypisz.
Zmień właściciela , który będzie mógł zarządzać dostępem do wszystkich obiektów w catalog. Zacznij wpisywać główną nazwę w polu tekstowym, a następnie kliknij podmiot w zwróconych wynikach.
Grant uprawnienia w catalog. Kliknij Grant:
- Określ Principals, którzy będą mieli dostęp do obiektów w catalog. Zacznij wpisywać główną nazwę w polu tekstowym, a następnie kliknij podmiot w zwróconych wynikach.
-
Select ustawienia wstępne uprawnień grant do każdego podmiotu zabezpieczeń. Wszyscy użytkownicy konta domyślnie otrzymują
BROWSE
.-
Select
czytnik danych z menu rozwijanego, aby grant
read
uprawnienia do obiektów w catalog. -
Select
Edytor danych z menu rozwijanego, aby przypisać grant
read
orazmodify
uprawnienia do obiektów w catalog. - Ręcznie select uprawnienia do grant.
-
Select
czytnik danych z menu rozwijanego, aby grant
- Kliknij pozycję Grant.
Kliknij przycisk Dalej.
Na stronie Metadane określ pary tagów klucz-wartość. Aby uzyskać więcej informacji, zobacz Zastosuj tagi do obiektów Unity Catalog zabezpieczalnych.
(Opcjonalnie) Dodaj komentarz.
Kliknij przycisk Zapisz.
SQL
Databricks zaleca użycie eksploratora Catalog do utworzenia połączenia oraz programu catalog, ponieważ wymaga mniej czynności ręcznych niż inne metody.
Jeśli planujesz użyć programu SQL do utworzenia połączenia usługi Azure Databricks i obcego catalog, Twoja Salesforce Connected App powinna obsługiwać identyfikator URI przekierowania https://login.salesforce.com/services/oauth2/success
. Nie jest to konieczne, jeśli używasz programu Catalog Explorer.
Generate weryfikator kodu PKCE i wyzwanie kodu. Można to zrobić za pomocą narzędzia online, takiego jak https://tonyxu-io.github.io/pkce-generator/ lub, uruchamiając następujący skrypt języka Python:
%python import base64 import re import os import hashlib code_verifier = base64.urlsafe_b64encode(os.urandom(40)).decode('utf-8') code_verifier = re.sub('[^a-zA-Z0-9]+', '', code_verifier) code_challenge = hashlib.sha256(code_verifier.encode('utf-8')).digest() code_challenge = base64.urlsafe_b64encode(code_challenge).decode('utf-8') code_challenge = code_challenge.replace('=', '') print(f"pkce_verifier = \"{code_verifier}\"") print(f"code_challenge = \"{code_challenge}\"")
Odwiedź następujący adres URL i uwierzytelnij się przy użyciu Salesforce credentials do get
authorization_code
(zastąp<client_id>
i<code_challenge>
swoim parameters).https://login.salesforce.com/services/oauth2/authorize ?client_id=<client_id> &redirect_uri=https://login.salesforce.com/services/oauth2/success &response_type=code &code_challenge=<code_challenge>
Kod autoryzacji zakodowany w adresie URL jest widoczny w przekierowanym adresie URL.
Uruchom następujące polecenie w notesie lub edytorze zapytań SQL usługi Databricks:
CREATE CONNECTION '<Connection name>' TYPE salesforce_data_cloud OPTIONS ( client_id '<Consumer key from Salesforce Connected App>', client_secret '<Consumer secret from Salesforce Connected App>', pkce_verifier '<pkce_verifier from the last step>', authorization_code '<URL decoded `authorization_code`, should end with == instead of %3D%3D>', oauth_redirect_uri "https://login.salesforce.com/services/oauth2/success", oauth_scope "cdp_api api cdp_query_api refresh_token offline access", is_sandbox "false" );
Usługa Databricks zaleca używanie wpisów tajnych usługi Azure Databricks zamiast ciągów w postaci zwykłego tekstu w przypadku poufnych values, takich jak credentials. Na przykład:
CREATE CONNECTION '<Connection name>' TYPE salesforce_data_cloud OPTIONS ( client_id secret ('<Secret scope>','<Secret key client id>'), client_secret secret ('<Secret scope>','<Secret key client secret>'), pkce_verifier '<pkce_verifier from the last step>', authorization_code '<URL decoded `authorization_code`, should end with == instead of %3D%3D>', oauth_redirect_uri "https://login.salesforce.com/services/oauth2/success", oauth_scope "cdp_api api cdp_query_api refresh_token offline access", is_sandbox "false" );
Aby uzyskać informacje na temat konfigurowania wpisów tajnych, zobacz Zarządzanie wpisami tajnymi.
Stwórz obcy catalog
Uwaga
Jeśli używasz interfejsu użytkownika do utworzenia połączenia ze źródłem danych, tworzenie obcego catalog jest uwzględnione, więc możesz pominąć ten krok.
Zagraniczny catalog dubluje bazę danych w zewnętrznym systemie danych, dzięki czemu można wykonywać zapytania dotyczące dostępu do danych w tej bazie danych i zarządzać nimi przy użyciu usług Azure Databricks i Unity Catalog. Aby utworzyć obce catalog, należy użyć połączenia ze źródłem danych, które zostało już zdefiniowane.
Aby utworzyć obce catalog, możesz użyć eksploratora Catalog lub polecenia CREATE FOREIGN CATALOG
SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL. Możesz również użyć Databricks REST API lub Databricks CLI, aby utworzyć catalog. Zobacz POST /api/2.1/unity-catalog/catalogs i polecenia Unity Catalog.
Wymagane uprawnienia:CREATE CATALOG
uprawnienie do magazynu metadanych i własność połączenia lub CREATE FOREIGN CATALOG
uprawnienia do połączenia.
Eksplorator Catalog
- W obszarze roboczym usługi Azure Databricks kliknij ikonę Catalog, aby otworzyć eksploratora Catalog.
- W prawym górnym rogu kliknij pozycję Utwórz Catalog.
- Wprowadź następujące właściwości usługi Salesforce Data Cloud catalog.
- Catalog nazwa: przyjazna użytkownikowi nazwa dla catalog.
-
Typ:
Foreign
. - Nazwa połączenia: nazwa połączenia, na którym zostanie utworzony element catalog.
- Przestrzeń danych: przestrzeń danych usługi Salesforce.
- Kliknij pozycję Utwórz.
SQL
Uruchom następujące polecenie SQL w notesie lub edytorze zapytań SQL. Elementy w nawiasach kwadratowych są opcjonalne.
CREATE FOREIGN CATALOG [IF NOT EXISTS] '<catalog-name>' USING CONNECTION '<connection-name>'
OPTIONS (dataspace '<dataspace>');
Zastąp następujące values:
-
<catalog-name>
: -
<connection-name>
: -
<dataspace>
: Przestrzeń danych usługi Salesforce. Na przykładdefault
.
Obsługiwane wypychania
Obsługiwane są następujące wypychania:
- Filtry
- Projekcje
- Limit
- Agregacje
- Offset
- Rzutowanie
- Zawiera, Startswith, Endswith
Mapowanie typu danych
Podczas odczytywania z usługi Salesforce Data Cloud do platformy Spark typy danych są mapowe w następujący sposób:
Typ chmury danych usługi Salesforce | Typ platformy Spark |
---|---|
Wartość logiczna | Typ logiczny |
Data | Typ daty |
Datetime | TimestampType |
Adres e-mail, telefon, tekst, adres URL | StringType |
Liczba, procent | DecimalType(38, 18) |
Ograniczenia
- Wspierane jest tylko jedno miejsce na dane Salesforce na catalog w usłudze Databricks.
Dodatkowe zasoby
Usługa Lakehouse Federation nie obsługiwać tylko do odczytu connections do usługi Salesforce Sales Cloud, ale usługa LakeFlow Connect umożliwia pozyskiwanie danych z usługi Salesforce Sales Cloud do usługi Databricks lakehouse. Zobacz Pozyskiwanie danych z usługi Salesforce.