Spouštění federovaných dotazů v Cloudu dat Salesforce
Tento článek popisuje, jak nastavit Federaci Lakehouse pro spouštění federovaných dotazů v datech Salesforce Data Cloud, která nespravuje Azure Databricks. Další informace o federaci Lakehouse najdete v tématu Co je Federace Lakehouse?.
Pokud se chcete připojit k databázi Salesforce Data Cloud pomocí federace Lakehouse, musíte v metastore katalogu Azure Databricks Unity vytvořit následující:
- Připojení k databázi Salesforce Data Cloud.
- cizí katalog, který zrcadlí databázi Salesforce Data Cloud v Unity Catalog, abyste mohli použít syntaxi dotazů Unity Catalog a nástroje pro správu dat, které umožňují řídit přístup uživatelů k databázi na platformě Azure Databricks.
Než začnete
Požadavky na pracovní prostor:
- Pracovní prostor je povolený pro katalog Unity.
Požadavky na výpočetní prostředky:
- Síťové připojení z vašeho výpočetního prostředku k cílovým databázovým systémům. Viz doporučení k sítím pro Federaci Lakehouse.
- Výpočetní prostředky Azure Databricks musí používat Databricks Runtime 15.2 nebo novější a sdílený nebo režim přístupu jednoho uživatele.
- Sql Warehouse musí být pro nebo bezserverové a musí používat verzi 2024.30 nebo vyšší.
Požadovaná oprávnění:
- Pokud chcete vytvořit připojení, musíte být správcem metastoru nebo uživatelem s oprávněním
CREATE CONNECTION
k metastoru katalogu Unity připojenému k pracovnímu prostoru. - Chcete-li vytvořit cizí katalog, musíte mít oprávnění
CREATE CATALOG
k metastoru a být buď vlastníkem připojení, nebo mít oprávněníCREATE FOREIGN CATALOG
pro připojení.
Další požadavky na oprávnění jsou uvedeny v následující části založené na úlohách.
Vytvoření připojené aplikace Salesforce
Připojené aplikace Salesforce umožňují externí aplikaci integrovat se Salesforce pomocí rozhraní API a standardních protokolů. Tato část popisuje, jak vytvořit připojenou aplikaci pomocí jednotného přihlašování, aby se databricks mohla ověřit pomocí Salesforce.
Poznámka:
Podrobnější pokyny najdete v tématu Vytvoření připojené aplikace v dokumentaci ke službě Salesforce Data Cloud.
Pokud chcete vytvořit připojenou aplikaci Salesforce, postupujte takto:
- V pravém horním rohu datového cloudu klikněte na Nastavení.
- V části Nástroje platformy klikněte na > aplikací.
- Klikněte na Nová připojená aplikace.
- Zadejte jméno a e-mailovou adresu kontaktu.
- Povolení nastavení OAuth:
- Zadejte adresu URL zpětného Například:
https://cust-success.cloud.databricks.com/login/oauth/salesforce.html
. - (Volitelné) Pokud plánujete použít SQL k vytvoření připojení Azure Databricks a cizího katalogu v dalším kroku, vaše Salesforce Connected App také potřebuje podporovat přesměrovací URI
https://login.salesforce.com/services/oauth2/success
. To není potřeba, pokud plánujete použít Průzkumníka katalogu k vytvoření připojení Azure Databricks a cizího katalogu. Databricks doporučuje používat Průzkumníka katalogu, protože vyžaduje méně ručních kroků než jiné metody. - Přidejte následující obory:
- Přístup ke všem prostředkům rozhraní DATA Cloud API (cdp_api)
- Správa uživatelských dat prostřednictvím rozhraní API (api)
- Provádění dotazů ANSI SQL na data datového cloudu (cdp_query_api)
- Provádět žádosti kdykoli (refresh_token, offline_access)
- Klikněte na Uložit.
- Klikněte na Pokračovat.
- Zadejte adresu URL zpětného Například:
- Na stránce Přehled připojené aplikace klikněte na Spravovat podrobnosti o spotřebiteli. Zobrazí se výzva k ověření.
- Po úspěšném ověření se odhalí klíč příjemce a tajný klíč příjemce. Uložte tyto hodnoty. Budete je potřebovat při vytváření připojení Azure Databricks.
Vytvoření připojení Azure Databricks
Připojení určuje cestu a přihlašovací údaje pro přístup k externímu databázovému systému. K vytvoření připojení můžete použít Průzkumníka katalogu nebo příkaz CREATE CONNECTION
SQL v poznámkovém bloku Azure Databricks nebo editoru dotazů SQL Databricks.
Poznámka:
K vytvoření připojení můžete použít také rozhraní REST API Databricks nebo rozhraní příkazového řádku Databricks. Vizte POST /api/2.1/unity-catalog/connections a příkazy katalogu Unity.
Požadovaná oprávnění: Správce metastoru nebo uživatel s oprávněním CREATE CONNECTION
.
Průzkumník katalogu
V pracovním prostoru Azure Databricks klikněte na ikonu Katalog .
V horní části podokna katalogu
klikněte na ikonu Přidat nebo plus Ikona Přidat a v nabídce vybertePřidat připojení.Případně na stránce Rychlý přístup klikněte na tlačítko Externí data >, přejděte na kartu Připojení a klikněte na Vytvořit připojení.
Na stránce Základy připojení průvodce Nastavení připojení zadejte snadno pochopitelný název připojení.
Vyberte typ připojení pro Salesforce Data Cloud.
(Volitelné) Přidejte komentář.
Na stránce Ověřování zadejte následující vlastnosti připojení pro cloud dat Salesforce:
- (Volitelné) Vyberte jako sandbox.
- ID klienta: Klíč příjemce aplikace připojený k Salesforce
- tajný klíč klienta: Tajný klíč uživatele připojené aplikace Salesforce
- oboru klienta
:
Klikněte na Přihlásit se pomocí Salesforce.
(OAuth) Zobrazí se výzva k přihlášení ke službě Salesforce Data Cloud pomocí přihlašovacích údajů pro jednotné přihlašování.
Po úspěšném přihlášení budete přesměrováni zpět do Průvodce nastavením připojení Databricks. Tlačítko Přihlásit se pomocí Salesforce se nahradilo zprávou
Successfully authorized
.Klikněte na Vytvořit připojení.
Na stránce základy katalogu zadejte název cizího katalogu. Cizí katalog zrcadlí databázi v externím datovém systému, abyste mohli dotazovat a spravovat přístup k datům v této databázi pomocí Azure Databricks a Unity Catalog.
(Volitelné) Kliknutím na Otestovat připojení abyste ověřili jeho funkčnost.
Klikněte na Vytvořit katalog.
Na stránce Access vyberte pracovní prostory, ve kterých mají uživatelé přístup k vytvořenému katalogu. Můžete vybrat Všechny pracovní prostory mají přístup, nebo klepněte na Přiřadit k pracovním prostorům, vyberte pracovní prostory a potom klikněte na Přiřadit.
Změňte vlastníka , který bude moci spravovat přístup ke všem objektům v katalogu. Začněte do textového pole zadávat hlavní objekt a poté klikněte na hlavní objekt ve vrácených výsledcích.
Udělte oprávnění v katalogu. Klikněte na Udělit:
- Zadejte hlavní uživatele , kteří budou mít přístup k objektům v katalogu. Začněte do textového pole zadávat hlavní objekt a poté klikněte na hlavní objekt ve vrácených výsledcích.
- Vyberte přednastavení oprávnění , která se mají udělit každému uživateli. Všichni uživatelé účtu mají ve výchozím nastavení udělené
BROWSE
.- V rozevírací nabídce vyberte Čtenář dat a přiřaďte
read
oprávnění objektům v katalogu. - V rozevírací nabídce vyberte Datový editor, abyste udělili
read
amodify
oprávnění k objektům v katalogu. - Ručně vyberte oprávnění, která chcete udělit.
- V rozevírací nabídce vyberte Čtenář dat a přiřaďte
- Klikněte na Udělit.
Klikněte na Další.
Na stránce Metadata specifikujte páry klíč-hodnota značek. Další informace najdete v tématu Použití značek na zabezpečitelné objekty v Katalogu Unity.
(Volitelné) Přidejte komentář.
Klikněte na Uložit.
SQL
Databricks doporučuje vytvořit připojení a cizí katalog pomocí Průzkumníka katalogu, protože vyžaduje méně ručních kroků než jiné metody.
Pokud plánujete použít SQL k vytvoření připojení Azure Databricks a cizího katalogu, vaše aplikace Připojená k Salesforce musí podporovat identifikátor URI přesměrování https://login.salesforce.com/services/oauth2/success
. To není potřeba, pokud používáte Průzkumníka katalogu.
Vygenerujte PKCE ověřovací kód a kód výzvy. Můžete to provést pomocí online nástroje, například https://tonyxu-io.github.io/pkce-generator/ spuštěním následujícího skriptu Pythonu:
%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}\"")
Přejděte na následující adresu URL a autentizujte se pomocí svých přihlašovacích údajů Salesforce, abyste získali
authorization_code
(nahraďte<client_id>
a<code_challenge>
svými parametry).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>
Autorizační kód zakódovaný adresou URL je viditelný v přesměrované adrese URL.
V poznámkovém bloku nebo editoru dotazů SQL Databricks spusťte následující příkaz:
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 doporučuje používat Azure Databricks tajných kódů místo řetězců prostého textu pro citlivé hodnoty, jako jsou přihlašovací údaje. Příklad:
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" );
Informace o nastavení tajných kódů najdete v tématu Správa tajných kódů.
Vytvoření zahraničního katalogu
Poznámka:
Pokud k vytvoření připojení ke zdroji dat použijete uživatelské rozhraní, zahrne se vytvoření cizího katalogu a tento krok můžete přeskočit.
Cizí katalog zrcadlí databázi v externím datovém systému, abyste mohli dotazovat a spravovat přístup k datům v této databázi pomocí Azure Databricks a Unity Catalog. Chcete-li vytvořit cizí katalog, použijete připojení ke zdroji dat, který již byl definován.
K vytvoření cizího katalogu můžete použít Průzkumníka katalogu nebo příkaz CREATE FOREIGN CATALOG
SQL v poznámkovém bloku Azure Databricks nebo v editoru dotazů SQL. K vytvoření katalogu můžete použít také rozhraní REST API Databricks nebo rozhraní příkazového řádku Databricks. Viz POST /api/2.1/unity-catalog/catalogs a příkazy katalogu Unity.
Požadovaná oprávnění:CREATE CATALOG
oprávnění k metastoru a vlastnictví připojení nebo CREATE FOREIGN CATALOG
oprávnění k připojení.
Průzkumník katalogu
- V pracovním prostoru Azure Databricks kliknutím na ikonu katalogu Katalog otevřete Průzkumníka katalogu.
- V pravém horním rohu klikněte na Vytvořit katalog.
- Zadejte následující vlastnosti katalogu Salesforce Data Cloud.
- název katalogu: Uživatelsky přátelský název pro katalog.
-
Typ:
Foreign
. - Název připojení: Název připojení, ve které bude katalog vytvořen.
- Dataspace: Datový prostor Salesforce.
- Klikněte na Vytvořit.
SQL
V poznámkovém bloku nebo editoru dotazů SQL spusťte následující příkaz SQL. Položky v závorkách jsou volitelné.
CREATE FOREIGN CATALOG [IF NOT EXISTS] '<catalog-name>' USING CONNECTION '<connection-name>'
OPTIONS (dataspace '<dataspace>');
Nahraďte následující hodnoty:
-
<catalog-name>
: -
<connection-name>
: -
<dataspace>
: Datový prostor Salesforce. Napříkladdefault
.
Podporované odsdílení změn
Podporují se následující nabízení:
- Filtry
- Projekce
- Limit
- Souhrny
- Posun
- Změna typu
- Obsahuje, Startswith, Endswith
Mapování datového typu
Při čtení z Salesforce Data Cloud do Sparku se datové typy mapuje takto:
Datový typ Salesforce | Typ Sparku |
---|---|
Logická hodnota | BooleanType |
Datum | Typ data |
Datum a čas | TimestampType |
E-mail, Telefon, Text, Adresa URL | StringType |
Číslo, procento | DecimalType(38; 18) |
Omezení
- Podporuje se jenom jeden datový prostor Salesforce na katalog Databricks.
Další zdroje informací
Federace Lakehouse nepodporuje připojení jen pro čtení ke službě Salesforce Sales Cloud, ale LakeFlow Connect umožňuje načítat data ze Salesforce Sales Cloud do Databricks lakehouse. Viz Ingestování dat ze služby Salesforce.