AccueilBlogTest technique Databricks Workflows : orchestration et MLOps
Guide recrutement data

Test technique Databricks Workflows : orchestration et MLOps

Databricks Workflows est l orchestrateur natif de Databricks. En entretien, on évalue la capacité à l utiliser efficacement pour orchestrer des pipelines complexes avec des dépendances et du CI/CD.

Data Builder·Juin 2025·6 min de lecture·Data Engineer
Sommaire
  1. Concepts Workflows
  2. Tasks et dépendances
  3. Git integration
  4. Asset Bundles
  5. CI/CD Databricks
  6. Optimiser les coûts
  7. Grille

1Databricks Workflows vs Airflow

Question discriminante

Quand utilisez-vous Databricks Workflows plutôt qu Airflow ?

2Tasks et dépendances complexes

Question discriminante

Comment modélisez-vous un pipeline à 10 étapes avec dépendances conditionnelles ?

## Configuration Job via SDK Python from databricks.sdk import WorkspaceClient from databricks.sdk.service.jobs import * w = WorkspaceClient() job = w.jobs.create( name='pipeline_analytics', tasks=[ Task( task_key='ingest', notebook_task=NotebookTask(notebook_path='/pipelines/01_ingest'), job_cluster_key='shared_cluster' ), Task( task_key='transform_dbt', depends_on=[TaskDependency(task_key='ingest')], python_wheel_task=PythonWheelTask(package_name='dbt-databricks', entry_point='dbt', parameters=['run', '--select', 'tag:daily']) ), Task( task_key='validate', depends_on=[TaskDependency(task_key='transform_dbt')], condition_task=ConditionTask( op=ConditionTaskOp.EQUAL_TO, left='{{tasks.transform_dbt.values.status}}', right='SUCCESS' ) ), Task( task_key='alert_on_failure', depends_on=[TaskDependency( task_key='validate', outcome='false' # déclencher si validate échoue )], notebook_task=NotebookTask(notebook_path='/pipelines/alert') ) ] )

3Git integration dans Databricks

Question discriminante

Comment versionnnez-vous vos notebooks et jobs Databricks avec Git ?

4Asset Bundles : IaC pour Databricks

Question discriminante

Qu est-ce que les Databricks Asset Bundles ? Comment les utilisez-vous ?

## databricks.yml - Asset Bundle configuration bundle: name: mon-pipeline-analytics variables: environment: default: dev targets: dev: mode: development workspace: host: https://adb-xxxx.azuredatabricks.net prod: mode: production workspace: host: https://adb-yyyy.azuredatabricks.net resources: jobs: pipeline_daily: name: pipeline-daily-${bundle.target} tasks: - task_key: ingest notebook_task: notebook_path: ./notebooks/01_ingest - task_key: transform depends_on: [{task_key: ingest}] notebook_task: notebook_path: ./notebooks/02_transform ## Déploiement databricks bundle deploy --target dev databricks bundle deploy --target prod

5CI/CD avec Databricks Asset Bundles

Question discriminante

Comment intégrez-vous les Databricks Asset Bundles dans GitHub Actions ?

## .github/workflows/databricks-deploy.yml name: Deploy to Databricks on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: databricks/setup-cli@main - name: Validate bundle run: databricks bundle validate env: DATABRICKS_HOST: ${{ secrets.DATABRICKS_HOST }} DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }} - name: Deploy to production run: databricks bundle deploy --target prod env: DATABRICKS_HOST: ${{ secrets.DATABRICKS_HOST }} DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }}

6Optimiser les coûts des Workflows

Question discriminante

Comment minimisez-vous les coûts des jobs Databricks Workflows ?

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirméJobs basiques, tâches avec dépendances, job clustersA créé un job multi-tâches avec dépendances, utilise des job clustersUtilise des clusters all-purpose pour tous les jobs
SeniorAsset Bundles, CI/CD, Git integration, optimisation coûtsA déployé via Asset Bundles dans GitHub Actions, utilise des spot instancesNe sait pas ce que sont les Asset Bundles

Vous recrutez un Data Engineer Databricks ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.