Udostępnij za pośrednictwem


Uruchamianie zapytań federacyjnych w chmurze danych usługi Salesforce

W tym artykule opisano sposób konfigurowania federacji 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 federacji usługi Lakehouse, należy utworzyć następujące elementy w magazynie metadanych wykazu aparatu Unity usługi Azure Databricks:

  • Połączenie z bazą danych usługi Salesforce Data Cloud.
  • Wykaz obcy, który odzwierciedla bazę danych usługi Salesforce Data Cloud w katalogu aparatu Unity, dzięki czemu można użyć składni zapytań katalogu 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 15.2 lub nowszego oraz trybu dostępu współużytkowanego lub pojedynczego użytkownika.
  • Magazyny SQL muszą mieć wartość Pro lub Bezserwerową i muszą używać wersji 2024.30 lub nowszej.

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łą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:

  1. W prawym górnym rogu okienka Chmura danych 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ć programu SQL do utworzenia połączenia usługi Azure Databricks i wykazu obcego w następnym kroku, aplikacja połączona salesforce musi również obsługiwać identyfikator URI https://login.salesforce.com/services/oauth2/successprzekierowania. Nie jest to konieczne, jeśli planujesz użyć Eksploratora wykazu do utworzenia połączenia usługi Azure Databricks i wykazu obcego. 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 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)
    4. Kliknij przycisk Zapisz.
    5. Kliknij przycisk Continue (Kontynuuj).
  6. Na stronie Przegląd połączonej aplikacji kliknij pozycję 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ę 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 okienku po lewej stronie rozwiń menu Dane zewnętrzne i wybierz pozycję Połączenia.
  3. Kliknij pozycję Utwórz połączenie.
  4. Wprowadź przyjazną dla użytkownika nazwę połączenia.
  5. Wybierz typ połączenia w usłudze Salesforce Data Cloud.
  6. Wprowadź następujące właściwości połączenia dla usługi Salesforce Data Cloud.
    • Typ uwierzytelniania: OAuth
    • Jest piaskownicą false
    • (OAuth) Klucz tajny klienta: Klucz tajny klienta połączonej aplikacji Salesforce
    • (OAuth) Identyfikator klienta: Klucz klienta połączonej aplikacji salesforce
    • (OAuth) 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 Cloud przy użyciu poświadczeń logowania jednokrotnego.
  9. Po pomyślnym zalogowaniu zostanie przekierowany z powrotem do strony Tworzenie połączenia usługi Databricks. Przycisk Zaloguj się przy użyciu usługi Salesforce został zastąpiony komunikatem Successfully authorized .
  10. (Opcjonalnie) Dodaj komentarz.
  11. Kliknij pozycję Utwórz.

SQL

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

Jeśli planujesz użyć programu SQL do utworzenia połączenia usługi Azure Databricks i katalogu obcego, aplikacja Połączona z usługą Salesforce musi obsługiwać identyfikator URI https://login.salesforce.com/services/oauth2/successprzekierowania. Nie jest to konieczne, jeśli używasz Eksploratora wykazu.

  1. Generowanie kodów weryfikatora PKCE i kodów 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 wartość (zastąp <client_id> wartości 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"
      );
    

    Usługa Databricks zaleca używanie wpisów tajnych usługi Azure Databricks zamiast ciągów w postaci zwykłego tekstu do 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

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 CREATE FOREIGN CATALOG polecenia SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL.

Uwaga

Do utworzenia katalogu 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/catalogs i Unity Catalog.

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 prawym górnym rogu kliknij pozycję Utwórz wykaz.
  3. Wprowadź następujące właściwości katalogu usługi Salesforce Data Cloud.
    • Nazwa wykazu: przyjazna dla użytkownika nazwa wykazu.
    • Typ: Foreign.
    • Nazwa połączenia: nazwa połączenia, w ramach 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 kwadratowych są opcjonalne.

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

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

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

Obsługiwane wypychania

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

  • Filtry
  • Projekcje
  • Limit
  • Agregacje
  • Przesunięcie
  • 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

  • Obsługiwany jest tylko jeden katalog danych usługi Salesforce na katalog usługi Databricks.