Udostępnij za pomocą


Uruchamianie zapytań federacyjnych w usłudze Salesforce Data 360

Na tej stronie opisano sposób konfigurowania usługi Lakehouse Federation w celu uruchamiania zapytań federacyjnych na danych usługi Salesforce Data 360, 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 Salesforce Data 360 przy użyciu Federacji Lakehouse, musisz utworzyć następujące elementy w magazynie metadanych Unity Catalog usługi Azure Databricks:

  • Połączenie z bazą danych usługi Salesforce Data 360.
  • Katalog zewnętrzny, który odzwierciedla bazę danych Salesforce Data 360 w katalogu Unity, dzięki czemu można używać składni zapytań katalogu Unity i narzędzi do zarządzania danymi, aby zarządzać dostępem użytkowników Azure Databricks do bazy danych.

Którego łącznika usługi Salesforce należy użyć?

Usługa Databricks oferuje wiele łączników dla usługi Salesforce. Istnieją dwa łączniki bez kopiowania: łącznik udostępniania plików usługi Salesforce Data 360 (dawniej Data Cloud) i łącznik federacji zapytań usługi Salesforce Data 360. Umożliwiają one wykonywanie zapytań dotyczących danych w usłudze Salesforce Data 360 bez ich przenoszenia. Istnieje również łączy pozyskiwania danych Salesforce, który kopiuje dane z różnych produktów Salesforce, w tym Salesforce Data 360 i Salesforce Sales Cloud.

W poniższej tabeli przedstawiono podsumowanie różnic między łącznikami usługi Salesforce w usłudze Databricks:

Łącznik Przypadek użycia Obsługiwane produkty Salesforce
Udostępnianie plików w usłudze Salesforce Data 360 Gdy używasz łącznika udostępniania plików usługi Salesforce Data 360 w Federacji Lakehouse, Databricks wywołuje interfejsy API Salesforce Data-as-a-Service (DaaS), aby bezpośrednio odczytywać dane w podstawowej lokalizacji magazynu obiektów w chmurze. Zapytania są uruchamiane w obliczeniach usługi Databricks bez używania protokołu JDBC.
W porównaniu z federacją zapytań udostępnianie plików jest idealne do sfederowania dużej ilości danych. Zapewnia lepszą wydajność odczytu plików z wielu źródeł danych i lepsze możliwości optymalizacji przetwarzania. Zobacz Federację Lakehouse do udostępniania plików w Salesforce Data 360.
Salesforce Data 360
Federacja zapytań usługi Salesforce Data 360 W przypadku korzystania z łącznika federacji zapytań usługi Salesforce Data 360 w usłudze Lakehouse Federation usługa Databricks używa protokołu JDBC do nawiązywania połączenia z danymi źródłowymi i wypychania zapytań do usługi Salesforce. Zobacz Uruchamianie zapytań federacyjnych w usłudze Salesforce Data 360. Salesforce Data 360
Wczytywanie danych do Salesforce Łącznik pozyskiwania usługi Salesforce w usłudze Lakeflow Connect umożliwia tworzenie w pełni zarządzanych potoków pozyskiwania na podstawie danych platformy Salesforce. Ten łącznik maksymalizuje wartość dzięki wykorzystaniu nie tylko danych CDP, ale także danych CRM na platformie analizy danych. Zobacz Pozyskiwanie danych z usługi Salesforce. Zobacz Jakie produkty usługi Salesforce obsługuje łącznik pozyskiwania usługi Salesforce?

Zanim rozpoczniesz

Wymagania dotyczące obszaru roboczego:

  • Obszar roboczy z dostępem do 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 oraz trybu dostępu Standardowego lub Dedykowanego.
  • 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 dołączonym do obszaru roboczego.
  • Aby utworzyć katalog zagraniczny, musisz mieć uprawnienie CREATE CATALOG w metastore i być właścicielem połączenia lub mieć uprawnienia CREATE FOREIGN CATALOG dla połączenia.

Dodatkowe wymagania dotyczące uprawnień są określone w każdej sekcji związanej z zadaniami.

Utwórz połączoną aplikację 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 360.

Aby utworzyć aplikację połączoną z usługą Salesforce, wykonaj następujące czynności:

  1. W prawym górnym rogu pozycji Dane 360 kliknij pozycję Konfiguracja.
  2. W obszarze Narzędzia platformy kliknij pozycję Aplikacje > App Manager.
  3. Kliknij pozycję Nowa połączona aplikacja.
  4. Wprowadź nazwę i kontaktowy adres e-mail.
  5. Włącz ustawienia protokołu OAuth:
    1. 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.
    2. (Opcjonalnie) Jeśli planujesz użyć SQL do utworzenia połączenia Azure Databricks i katalogu obcego w następnym kroku, Połączona Aplikacja 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ć Eksploratora katalogu do utworzenia połączenia usługi Azure Databricks i katalogu zewnętrznego. Usługa Databricks zaleca korzystanie z Eksploratora wykazu, ponieważ wymaga mniejszej liczby kroków ręcznych niż inne metody.
    3. Dodaj następujące zakresy:
      • Uzyskiwanie dostępu do wszystkich zasobów interfejsu API usługi Data 360 (cdp_api)
      • Zarządzanie danymi użytkownika za pośrednictwem interfejsów API (api)
      • Wykonywanie zapytań ANSI SQL dotyczących danych 360 (cdp_query_api)
      • Wykonywanie żądań w dowolnym momencie (refresh_token, offline_access)
    4. Kliknij przycisk Zapisz.
    5. Kliknij przycisk Continue (Kontynuuj).
  6. Na stronie Przegląd aplikacji połączonej kliknij Zarządzaj szczegółami użytkownika. Zostanie wyświetlony monit o uwierzytelnienie.
  7. Po pomyślnym uwierzytelnieniu ujawniono klucz klienta i klucz tajny użytkownika. Zapisz te wartości. 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ę dostępu i dane uwierzytelniające do zewnętrznego systemu bazodanowego. Aby utworzyć połączenie, możesz użyć Eksploratora wykazu 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 oraz polecenia 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 ikonę Dane.Wykaz.

  2. Na górze okienka Katalog kliknij ikonę Dodaj lub plusDodaj i wybierz pozycję Dodaj połączenie z menu.

    Alternatywnie na stronie szybki dostęp do kliknij przycisk Zewnętrzne dane >, przejdź do karty połączenia, a następnie kliknij przycisk Utwórz połączenie.

  3. Na stronie Podstawy połączenia w kreatorze Konfigurowanie połączenia, wprowadź nazwę połączenia przyjazną dla użytkownika .

  4. Wybierz typ połączenia usługi Salesforce Data 360.

  5. (Opcjonalnie) Dodaj komentarz.

  6. Na stronie Uwierzytelnianie wprowadź następujące właściwości połączenia dla usługi Salesforce Data 360:

    • (Opcjonalnie) Wybierz Czy 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
  7. Kliknij pozycję Zaloguj się przy użyciu usługi Salesforce.

  8. (OAuth) Zostanie wyświetlony monit o zalogowanie się do usługi Salesforce Data 360 przy użyciu poświadczeń SSO.

  9. Po pomyślnym zalogowaniu zostaniesz przekierowany z powrotem do kreatora Databricks Konfigurowanie połączenia. Przycisk Zaloguj się przy użyciu usługi Salesforce został zastąpiony komunikatem Successfully authorized.

  10. Kliknij pozycję Utwórz połączenie.

  11. Na stronie Podstawy katalogu wprowadź nazwę katalogu 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.

  12. Wprowadź przestrzeń danych usługi Salesforce.

  13. (Opcjonalnie) Kliknij pozycję Testuj połączenie, aby potwierdzić, że działa.

  14. Kliknij pozycję Utwórz katalog.

  15. Na stronie Access wybierz obszary robocze, w których użytkownicy mogą uzyskiwać dostęp do utworzonego katalogu. Możesz wybrać opcję Wszystkie obszary robocze mają dostęplub kliknij Przypisać do obszarów roboczych, wybierz obszary robocze, a następnie kliknij Przypisz.

  16. Zmień właściciela , który będzie mógł zarządzać dostępem do wszystkich obiektów w katalogu. Zacznij wpisywać główną nazwę w polu tekstowym, a następnie kliknij podmiot w zwróconych wynikach.

  17. Nadaj przywileje w katalogu. Kliknij Zezwól:

    1. Określ podmioty, które będą miały dostęp do obiektów w katalogu. Zacznij wpisywać główną nazwę w polu tekstowym, a następnie kliknij podmiot w zwróconych wynikach.
    2. Wybierz ustawienia wstępne przywilejów, aby przyznać każdemu podmiotowi. Wszyscy użytkownicy konta domyślnie otrzymują BROWSE.
      • Wybierz Czytnik danych z menu rozwijanego, aby nadać read uprawnienia do obiektów w katalogu.
      • Wybierz pozycję Edytor danych z menu rozwijanego, aby przyznać read i modify uprawnienia do obiektów w wykazie.
      • Ręcznie wybierz uprawnienia do udzielenia.
    3. Kliknij Grant.
  18. Kliknij przycisk Dalej.

  19. Na stronie Metadane określ pary tagów klucz-wartość. Aby uzyskać więcej informacji, zobacz Zastosuj tagi do obiektów zabezpieczalnych w Unity Catalog.

  20. (Opcjonalnie) Dodaj komentarz.

  21. Kliknij przycisk Zapisz.

SQL

Databricks zaleca użycie Eksploratora Katalogu do utworzenia połączenia i katalogu obcego, ponieważ wymaga to mniej ręcznych kroków niż inne metody.

Jeśli planujesz użyć SQL do utworzenia połączenia Azure Databricks i obcego katalogu, Twoja połączona aplikacja Salesforce musi wspierać URI przekierowania https://login.salesforce.com/services/oauth2/success. Nie jest to konieczne, jeśli używasz Eksploratora wykazu.

  1. Generuj kody weryfikacyjne PKCE i kody wyzwania. 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}\"")
    
  2. Odwiedź następujący adres URL i uwierzytelnij się przy użyciu poświadczeń usługi Salesforce, aby uzyskać authorization_code (zastąp <client_id> i <code_challenge> swoimi parametrami).

    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.

  3. 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"
      );
    

    Databricks zaleca używanie sekretów Azure Databricks zamiast ciągów w postaci tekstowej w przypadku poufnych wartości, takich jak poświadczenia. 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.

Tworzenie wykazu obcego

Uwaga

Jeśli używasz interfejsu użytkownika do utworzenia połączenia ze źródłem danych, uwzględnione jest tworzenie katalogu zewnętrznego i możesz pominąć ten krok.

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, należy użyć połączenia ze źródłem danych, które zostało już zdefiniowane.

Aby utworzyć wykaz obcy, możesz użyć Eksploratora wykazu lub polecenia CREATE FOREIGN CATALOG SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL. 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 i polecenia Katalogu Unity.

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

Eksplorator wykazu

  1. W obszarze roboczym usługi Azure Databricks kliknij ikonę Dane.Wykaz do otwierania Eksploratora wykazu.
  2. W prawym górnym rogu kliknij pozycję Utwórz wykaz.
  3. Wprowadź następujące właściwości katalogu usługi Salesforce Data 360.
    • nazwa wykazu: przyjazna dla użytkownika nazwa wykazu.
    • Typ: Foreign.
    • nazwa połączenia: nazwa połączenia, przy której zostanie utworzony wykaz.
    • Przestrzeń danych: przestrzeń danych usługi Salesforce.
  4. Kliknij pozycję Utwórz.

SQL

Uruchom następujące polecenie SQL w notesie lub edytorze zapytań SQL. Elementy w nawiasach są opcjonalne.

CREATE FOREIGN CATALOG [IF NOT EXISTS] '<catalog-name>' USING CONNECTION '<connection-name>'
OPTIONS (dataspace '<dataspace>');

Zastąp następujące wartości:

  • <catalog-name>:
  • <connection-name>:
  • <dataspace>: Przestrzeń danych usługi Salesforce. Na przykład default.

Obsługiwane funkcje wypychania

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

  • Filtry
  • Projekcje
  • Ograniczenie
  • Agregacje
  • Przesunięcie
  • Rzutowanie
  • Zawiera, Rozpoczyna się od, Kończy się na

Mapowanie typu danych

Podczas odczytywania danych z Salesforce Data 360 do platformy Spark, typy danych są mapowane w następujący sposób:

Typ usługi Salesforce Data 360 Typ platformy Spark
logiczny Typ logiczny
Data Typ daty
Data i czas Typ Znacznika Czasu
Adres e-mail, telefon, tekst, adres URL TypCiągu
Liczba, procent DecimalType(38, 18)

Ograniczenia

  • Obsługiwany jest jeden obszar danych Salesforce na katalog Databricks.
  • W środowisku Databricks Runtime 16.1, i starszych, nazwy tabel i schematów, które uwzględniają wielkość liter, nie są obsługiwane. Obejmuje to nazwy, które mają wielkie litery w usłudze Salesforce Data 360. Na przykład MyTable nie jest obsługiwane.