Ingérer des données à partir de Zoho CRM
Bêta
Cette fonctionnalité est en Bêta. Pour l’utiliser, un administrateur de workspace doit activer Lakeflow Connect for Zoho CRM à partir de la page Previews . Consultez Gérer les aperçus Databricks.
Cette page montre comment créer un pipeline d’ingestion Zoho CRM managé avec Lakeflow Connect.
Exigences
-
Pour créer un pipeline d’ingestion, veuillez d’abord satisfaire aux exigences suivantes :
-
Votre Workspace doit être activé pour Unity Catalog.
-
Le compute serverless doit être activé pour votre workspace. Voir Conditions requises pour le compute serverless.
-
Pour créer une nouvelle connexion, vous devez disposer des privilèges
CREATE CONNECTIONsur le metastore. Consultez Gérer les privilèges dans Unity Catalog.Si le connecteur prend en charge la création de pipelines basée sur l’interface utilisateur, un administrateur peut créer la connexion et le pipeline en même temps en suivant les étapes décrites sur cette page. Toutefois, si les utilisateurs qui créent des pipelines utilisent la création de pipelines basée sur l’API ou ne sont pas des utilisateurs administrateurs, un administrateur doit d’abord créer la connexion dans l’Explorateur de catalogue. Voir Se connecter à des sources d’ingestion gérées.
-
Pour utiliser une connexion existante, vous devez avoir des privilèges
USE CONNECTIONouALL PRIVILEGESsur l'objet de connexion. -
Vous devez avoir les privilèges
USE CATALOGsur le catalogue cible. -
Vous devez avoir les privilèges
USE SCHEMAetCREATE TABLEsur un schéma existant ou les privilègesCREATE SCHEMAsur le catalogue cible.
-
-
Pour ingérer depuis Zoho CRM, configurez d'abord l'authentification depuis Databricks et créez une connexion. Voir Configurer l'authentification auprès de Zoho CRM et Créer une connexion Zoho CRM.
Options de connecteur
Définissez des options de portée de pipeline dans source_configurations. Voir Exemples pour l’utilisation.
Option | Portée | Obligatoire | S'applique à | Description |
|---|---|---|---|---|
| Pipeline | Oui | Toutes les tables incrémentielles | La date et l'heure les plus anciennes à partir desquelles ingérer les données, au format |
Créer un pipeline d'ingestion
Pour obtenir la liste des tables sources prises en charge, consultez la section Tables sources prises en charge.
- Declarative Automation Bundles
- Databricks notebook
Utilisez les Declarative Automation Bundles pour gérer les pipelines Zoho CRM en tant que code. Les bundles peuvent contenir des définitions YAML de Jobs et de tâches, sont gérés à l'aide de la CLI Databricks et peuvent être partagés et exécutés dans différents Workspace cibles (tels que le développement, la pré-production et la production). Pour plus d'informations, consultez Que sont les Declarative Automation Bundles ?.
-
Créer un bundle à l’aide de la CLI Databricks :
Bashdatabricks bundle init -
Ajoutez deux nouveaux fichiers de ressources au bundle :
- Fichier de définition de pipeline (par exemple,
resources/zoho_crm_pipeline.yml). Voir pipeline.ingestion_definition et Exemples. - Un fichier de définition de job qui contrôle la fréquence d’ingestion de données (par exemple,
resources/zoho_crm_job.yml).
- Fichier de définition de pipeline (par exemple,
-
Déployer le pipeline à l'aide de la CLI Databricks :
Bashdatabricks bundle deploy
- Importez le Notebook suivant dans votre Workspace Databricks :
-
Laissez les cellules une et deux telles qu’elles sont. Ne modifiez pas.
-
Modifier la cellule trois avec les détails de votre configuration de pipeline. Voir pipeline.ingestion_definition et exemples.
-
Vous pouvez également configurer des paramètres de pipeline avancés. Voir Modèles courants pour les pipelines d’ingestion gérés.
-
Cliquez sur Exécuter tout .
Exemples
Le connecteur Zoho CRM rend disponibles ses tables sources dans le schéma source default. Ingérer des tables individuelles ou la totalité du schéma. Chaque pipeline doit définir start_datetime.
Ingérer des tables spécifiques
Utilisez cette option pour ingérer un sous-ensemble spécifique de tables ou pour personnaliser le nommage des destinations pour chaque table.
- Declarative Automation Bundles
- Databricks notebook
Le fichier de définition de pipeline suivant ingère des tables Zoho CRM individuelles :
resources:
pipelines:
zoho_crm_pipeline:
name: zoho_crm_pipeline
catalog: 'main'
target: 'zoho_crm_data'
ingestion_definition:
connection_name: zoho_crm_connection
source_configurations:
- api_source_connector_config:
configs:
start_datetime: '<start-datetime>'
objects:
- table:
source_schema: 'default'
source_table: 'leads'
destination_catalog: 'main'
destination_schema: 'zoho_crm_data'
destination_table: 'leads'
- table:
source_schema: 'default'
source_table: 'contacts'
destination_catalog: 'main'
destination_schema: 'zoho_crm_data'
destination_table: 'contacts'
- table:
source_schema: 'default'
source_table: 'deals'
destination_catalog: 'main'
destination_schema: 'zoho_crm_data'
destination_table: 'deals'
La spécification de pipeline suivante ingère des tables Zoho CRM individuelles :
pipeline_name = "zoho_crm_pipeline"
connection_name = "<zoho-crm-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"source_configurations": [
{
"api_source_connector_config": {
"configs": {
"start_datetime": "<start-datetime>"
}
}
}
],
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "leads",
"destination_catalog": "main",
"destination_schema": "zoho_crm_data",
"destination_table": "leads"
}
},
{
"table": {
"source_schema": "default",
"source_table": "contacts",
"destination_catalog": "main",
"destination_schema": "zoho_crm_data",
"destination_table": "contacts"
}
},
{
"table": {
"source_schema": "default",
"source_table": "deals",
"destination_catalog": "main",
"destination_schema": "zoho_crm_data",
"destination_table": "deals"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingérer tout le schéma
Utilisez cette option pour ingérer toutes les tables sources Zoho CRM, y compris les tables de modules personnalisées, dans un schéma de destination unique avec une seule déclaration.
- Declarative Automation Bundles
- Databricks notebook
Le fichier de définition de pipeline suivant ingère toutes les tables Zoho CRM prises en charge dans un schéma de destination :
resources:
pipelines:
zoho_crm_pipeline:
name: zoho_crm_pipeline
catalog: 'main'
target: 'zoho_crm_data'
ingestion_definition:
connection_name: zoho_crm_connection
source_configurations:
- api_source_connector_config:
configs:
start_datetime: '<start-datetime>'
objects:
- schema:
source_schema: 'default'
destination_catalog: 'main'
destination_schema: 'zoho_crm_data'
La spécification de pipeline suivante ingère toutes les tables Zoho CRM prises en charge dans un schéma de destination :
pipeline_name = "zoho_crm_pipeline"
connection_name = "<zoho-crm-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"source_configurations": [
{
"api_source_connector_config": {
"configs": {
"start_datetime": "<start-datetime>"
}
}
}
],
"objects": [
{
"schema": {
"source_schema": "default",
"destination_catalog": "main",
"destination_schema": "zoho_crm_data"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Fichier de définition de job Declarative Automation Bundles
Voici un exemple de fichier de définition de job à utiliser avec Declarative Automation Bundles. Le job s'exécute quotidiennement.
- Declarative Automation Bundles
resources:
jobs:
zoho_crm_job:
name: zoho_crm_job
schedule:
quartz_cron_expression: '0 0 0 * * ?'
timezone_id: 'UTC'
tasks:
- task_key: zoho_crm_ingestion
pipeline_task:
pipeline_id: ${resources.pipelines.zoho_crm_pipeline.id}
Modèles courants
Pour les configurations de pipeline avancées, voir Modèles courants pour les pipelines d’ingestion gérés.
Étapes suivantes
Start, planifiez et définissez des alertes sur votre pipeline. Voir Tâches de maintenance courantes du pipeline.