Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
En esta página se describe cómo configurar la federación de Lakehouse para ejecutar consultas federadas en datos de Salesforce Data 360 que Azure Databricks no administra. Para más información sobre La federación de Lakehouse, consulte ¿Qué es La federación de Lakehouse?
Para conectarse a la base de datos de Salesforce Data 360 mediante Lakehouse Federation, debe crear lo siguiente en el metastore del Unity Catalog de Azure Databricks:
- Una conexión a la base de datos de Salesforce Data 360.
- Catálogo externo que refleja la base de datos de Salesforce Data 360 en el Catálogo de Unity para que pueda usar la sintaxis de consulta del catálogo de Unity y las herramientas de gobernanza de datos para administrar el acceso de usuario de Azure Databricks a la base de datos.
¿Qué conector de Salesforce debo usar?
Databricks ofrece varios conectores para Salesforce. Hay dos conectores de copia cero: el conector de uso compartido de archivos de Salesforce Data 360 (anteriormente Data Cloud) y el conector de federación de consultas de Salesforce Data 360. Estos le permiten consultar datos en Salesforce Data 360 sin moverlos. También hay un conector de ingesta de Salesforce que copia datos de varios productos de Salesforce, incluidos Salesforce Data 360 y Salesforce Sales Cloud.
En la tabla siguiente se resumen las diferencias entre los conectores de Salesforce en Databricks:
| Conector | Caso de uso | Productos de Salesforce compatibles |
|---|---|---|
| Uso compartido de archivos de Salesforce Data 360 | Cuando se usa el conector de uso compartido de archivos de Salesforce Data 360 en la Federación de Lakehouse, Databricks llama directamente a las API de Salesforce Data-as-a-Service (DaaS) para leer datos en una ubicación de almacenamiento de objetos en la nube subyacente. Las consultas se ejecutan en el proceso de Databricks sin usar el protocolo JDBC. En comparación con la federación de consultas, el uso compartido de archivos es ideal para federar una gran cantidad de datos. Ofrece un rendimiento mejorado para leer archivos de varios orígenes de datos y mejoradas las capacidades de inserción. Consulte Federación de Lakehouse para la compartición de archivos de Salesforce Data 360. |
Datos de Salesforce 360 |
| Federación de consultas de Salesforce Data 360 | Cuando se usa el conector de federación de consultas de Salesforce Data 360 en Lakehouse Federation, Databricks utiliza JDBC para conectarse a los datos de origen y empuja las consultas en Salesforce. Consulte Ejecución de consultas federadas en Salesforce Data 360. | Datos de Salesforce 360 |
| Ingesta de Salesforce | El conector de ingesta de Salesforce en Lakeflow Connect permite crear canalizaciones de ingesta totalmente administradas a partir de datos de Salesforce Platform. Este conector maximiza el valor aprovechando no solo los datos de CDP, sino también los datos de CRM en la Plataforma de inteligencia de datos. Consulte Ingesta de datos de Salesforce. | Consulte ¿Qué productos de Salesforce admite el conector de ingesta de Salesforce? |
Antes de empezar
Requisitos del área de trabajo:
- Área de trabajo habilitada para Unity Catalog.
Requisitos de proceso:
- Conectividad de red desde su recurso de computación a los sistemas de bases de datos de destino. Consulte Recomendaciones de redes para Lakehouse Federation.
- El cómputo de Azure Databricks debe usar Databricks Runtime 15.2 o superior y el modo de acceso Standard o Dedicated.
- Los almacenes de SQL deben ser pro o sin servidor y deben usar 2024.30 o superior.
Permisos necesarios:
- Para crear una conexión, debe ser administrador del metastore o usuario con el privilegio
CREATE CONNECTIONen el metastore de Unity Catalog adjunto al área de trabajo. - Para crear un catálogo externo, debe tener el permiso
CREATE CATALOGen el metastore, y ser el propietario de la conexión o tener el privilegioCREATE FOREIGN CATALOGen la conexión.
Los requisitos de permisos adicionales se especifican en cada sección basada en tareas que se indica a continuación.
Creación de una aplicación conectada a Salesforce
Las aplicaciones conectadas a Salesforce permiten que una aplicación externa se integre con Salesforce mediante API y protocolos estándar. En esta sección se describe cómo crear una aplicación conectada mediante SSO para permitir que Databricks se autentique con Salesforce.
Nota:
Para obtener instrucciones más detalladas, consulte Creación de una aplicación conectada en la documentación de Salesforce Data 360.
Para crear una aplicación conectada a Salesforce, haga lo siguiente:
- En la esquina superior derecha de Datos 360, haga clic en Configurar.
- En Herramientas de la plataforma, haga clic en Aplicaciones > Administrador de aplicaciones.
- Haga clic en Nueva aplicación conectada.
- Escriba un nombre y una dirección de correo electrónico de contacto.
- Habilite Configuración de OAuth:
- Escriba la URL de devolución de llamada, con el siguiente formato:
https://<databricks_instance_url>/login/oauth/salesforce.html. Por ejemplo:https://cust-success.cloud.databricks.com/login/oauth/salesforce.html. - (Opcional) Si tiene previsto usar SQL para crear la conexión de Azure Databricks y el catálogo externo en el paso siguiente, la aplicación conectada a Salesforce también debe admitir el URI de redireccionamiento
https://login.salesforce.com/services/oauth2/success. Esto no es necesario si planea usar el Explorador de catálogos para crear la conexión de Azure Databricks y el catálogo externo. Databricks recomienda usar el Explorador de catálogos porque requiere menos pasos manuales que otros métodos. - Agregue los siguientes ámbitos:
- Acceso a todos los recursos de api de Data 360 (cdp_api)
- Administración de datos de usuario a través de API (api)
- Realización de consultas SQL ANSI en datos 360 (cdp_query_api)
- Realización de solicitudes en cualquier momento (refresh_token, offline_access)
- Haga clic en Save(Guardar).
- Haga clic en Continue.
- Escriba la URL de devolución de llamada, con el siguiente formato:
- En la página de información general de la aplicación conectada, haga clic en Administrar los detalles del consumidor. Se le pedirá que se autentique.
- Tras la autenticación correcta, se revelan Clave de consumidor y Secreto de consumidor. Copie estos valores. Los necesitará al crear una conexión de Azure Databricks.
Creación de una conexión de Azure Databricks
Una conexión especifica una ruta de acceso y las credenciales para acceder a un sistema de base de datos externo. Para crear una conexión, puede usar el Explorador de catálogos o el comando SQL CREATE CONNECTION en un cuaderno de Azure Databricks o el editor de consultas de Databricks SQL.
Nota:
También puede usar la API REST de Databricks o la CLI de Databricks para crear una conexión. Vea POST/api/2.1/unity-catalog/connections y Comandos de Unity Catalog.
Permisos necesarios: administrador del metastore o usuario con el privilegio CREATE CONNECTION.
Explorador de catálogo
En el área de trabajo de Azure Databricks, haga clic en
Catálogo.
En la parte superior del panel Catálogo, haga clic en el icono
Agregar y seleccione Agregar una conexión en el menú.Como alternativa, en la página de acceso rápido, haga clic en el botón Datos externos >, vaya a la pestaña Conexiones y haga clic en Crear conexión.
En la página Datos básicos de la conexión del asistente para Configurar conexión, escriba un Nombre de conexión fácil de usar.
Seleccione un tipo de conexión de Salesforce Data 360.
(Opcional) Agregue un comentario.
En la página Autenticación , escriba las siguientes propiedades de conexión para Salesforce Data 360:
- (Opcional) Seleccione Es espacio aislado.
- Id. de cliente: clave de consumidor de aplicaciones conectadas de Salesforce.
- Secreto de cliente: secreto de consumidor de aplicaciones conectadas de Salesforce.
-
Ámbito de cliente:
cdp_api api cdp_query_api refresh_token offline_access
Haga clic en Iniciar sesión con Salesforce.
(OAuth) Se le pedirá que inicie sesión en Salesforce Data 360 con sus credenciales de SSO.
Tras iniciar sesión correctamente, se le redirigirá al Asistente para configurar conexiones de Databricks. El botón Iniciar sesión con Salesforce se ha reemplazado por un
Successfully authorizedmensaje.Haga clic en Crear conexión.
En la página Datos básicos del catálogo, escriba un nombre para el catálogo externo. Un catálogo externo refleja una base de datos en un sistema de datos externo para que pueda consultar y administrar el acceso a los datos de esa base de datos mediante Azure Databricks y Unity Catalog.
Acceda al espacio de datos de Salesforce.
(Opcional) Haga clic en Probar conexión para confirmar que funciona.
Haga clic en Crear catálogo.
En la página Access, seleccione las áreas de trabajo en las que los usuarios pueden acceder al catálogo que creó. Puede seleccionar Todas las áreas de trabajo tienen accesoo haga clic en Asignar a áreas de trabajo, seleccione las áreas de trabajo y, a continuación, haga clic en Asignar.
Cambia el Propietario que podrá administrar el acceso a todos los objetos del catálogo. Comienza a escribir una entidad de seguridad en el cuadro de texto y, después, haz clic en la entidad de seguridad dentro de los resultados devueltos.
Concede Privilegios en el catálogo. Haz clic en Conceder:
- Especifica las Entidades de seguridad que tendrán acceso a los objetos del catálogo. Comienza a escribir una entidad de seguridad en el cuadro de texto y, después, haz clic en la entidad de seguridad dentro de los resultados devueltos.
- Selecciona los Preajustes de privilegios que vas a conceder a cada entidad de seguridad. A todos los usuarios de la cuenta se les concede
BROWSEde forma predeterminada.- Seleccione Data Reader en el menú desplegable para conceder privilegios
readsobre objetos en el catálogo. - Seleccione Editor de datos en el menú desplegable para conceder los privilegios
readymodifyen objetos del catálogo. - Seleccione manualmente los privilegios que se van a conceder.
- Seleccione Data Reader en el menú desplegable para conceder privilegios
- Haga clic en Concesión.
Haga clic en Next.
En la página Metadatos, especifique pares clave-valor de etiquetas. Para obtener más información, consulte Aplicar etiquetas a los objetos securitizables de Unity Catalog.
(Opcional) Agregue un comentario.
Haga clic en Save(Guardar).
SQL
Databricks recomienda usar el Explorador de catálogos para crear la conexión y el catálogo externo porque requiere menos pasos manuales que otros métodos.
Si tiene previsto usar SQL para crear la conexión de Azure Databricks y el catálogo externo, la aplicación conectada a Salesforce debe admitir el URI de redireccionamiento https://login.salesforce.com/services/oauth2/success. Esto no es necesario si usa el Explorador de catálogos.
Genere un comprobador de código PKCE y códigos de desafío de código. Puede hacerlo mediante una herramienta en línea, como https://tonyxu-io.github.io/pkce-generator/ o mediante la ejecución del siguiente script de 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}\"")Visite la siguiente dirección URL y autentíquese con sus credenciales de Salesforce para obtener el
authorization_code(reemplace<client_id>y<code_challenge>por sus parámetros).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>Un código de autorización con codificación URL está visible en la dirección URL redirigida.
Ejecute lo siguiente en un cuaderno o en el editor de consultas de Databricks SQL:
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 recomienda que utilice los secretos de Azure Databricks en lugar de cadenas de texto sin formato para valores confidenciales como las credenciales. Por ejemplo:
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" );Para obtener más información sobre la configuración de secretos, consulte Administración de secretos.
Creación de un catálogo externo
Nota:
Si usa la interfaz de usuario para crear una conexión con el origen de datos, se incluye la creación de catálogos externos y puede omitir este paso.
Un catálogo externo refleja una base de datos en un sistema de datos externo para que pueda consultar y administrar el acceso a los datos de esa base de datos mediante Azure Databricks y Unity Catalog. Para crear un catálogo externo, use una conexión al origen de datos que ya se ha definido.
Para crear un catálogo externo, puede usar Catalog Explorer o el comando SQL CREATE FOREIGN CATALOG en un cuaderno de Azure Databricks o el editor de consultas SQL. También puede usar la API de REST de Databricks o la CLI de Databricks para crear un catálogo. Vea POST /api/2.1/unity-catalog/catalogs y Comandos de Unity Catalog.
Permisos necesarios: permiso CREATE CATALOG en el metastore, y propiedad de la conexión o el privilegio CREATE FOREIGN CATALOG en la conexión.
Explorador de catálogo
- En el área de trabajo de Azure Databricks, haga clic en
Catálogo para abrir el Explorador de catálogos.
- En la esquina superior derecha, haga clic en Crear catálogo.
- Escriba las siguientes propiedades para el catálogo de Salesforce Data 360.
- Nombre del catálogo: nombre descriptivo para el catálogo.
-
Tipo:
Foreign. - Nombre de la conexión: nombre de la conexión en la que se creará el catálogo.
- Espacio de datos: espacio de datos de Salesforce.
- Haga clic en Crear.
SQL
Ejecute el siguiente comando SQL en un cuaderno o en un editor de consultas SQL. Los elementos entre corchetes son opcionales.
CREATE FOREIGN CATALOG [IF NOT EXISTS] '<catalog-name>' USING CONNECTION '<connection-name>'
OPTIONS (dataspace '<dataspace>');
Reemplace los siguientes valores:
-
<catalog-name>: -
<connection-name>: -
<dataspace>: espacio de datos de Salesforce. Por ejemplo,default.
Delegaciones admitidas
Se admiten las siguientes delegaciones:
- Filtros
- Proyecciones
- Límite
- Agregados
- Offset
- Elenco
- Contiene, Empieza con, Termina con
Mapeo de tipos de datos
Al leer desde Salesforce Data 360 a Spark, los tipos de datos se asignan de la siguiente manera:
| Tipo de datos de Salesforce 360 | Tipo de Spark |
|---|---|
| Boolean | Tipo Booleano |
| Fecha | TipoDeFecha |
| Fecha y Hora | Tipo de marca de tiempo |
| Correo electrónico, teléfono, texto, dirección URL | tipo de cadena |
| Número, porcentaje | DecimalType(38, 18) |
Limitaciones
- Solo se admite un espacio de datos de Salesforce por catálogo de Databricks.
- En Databricks Runtime 16.1 y versiones anteriores, no se admiten nombres de tabla y esquema que distingan mayúsculas de minúsculas. Esto incluye nombres que tienen letras mayúsculas en Salesforce Data 360. Por ejemplo,
MyTableno se admite.