Tarea dbt para trabajos
Use la tarea dbt para configurar y ejecutar proyectos de dbt en Azure Databricks.
Importante
Cuando se ejecutan las tareas de dbt, Databricks inserta DBT_ACCESS_TOKEN
para la entidad de seguridad configurada en el campo Ejecutar como.
Configuración de una tarea dbt
Agregue una tarea dbt
desde la pestaña Tareas de la interfaz de usuario trabajos haciendo lo siguiente:
En el menú desplegable Tipo, seleccione
dbt
.En el menú desplegable Origen, puede seleccionar Área de trabajo a fin de usar un proyecto dbt ubicado en una carpeta del área de trabajo de Azure Databricks o Proveedor de Git para un cuaderno ubicado en un repositorio de Git remoto.
Si selecciona Área de trabajo, use el navegador de archivos proporcionado para seleccionar el Directorio del proyecto.
Si selecciona proveedor de Git, haga clic en Editar para escribir información de Git para el repositorio del proyecto. Consulte Uso de Git con trabajos.
Si el proyecto no está en el directorio raíz del repositorio, use el campo Directorio del proyecto para especificar la ruta de acceso a él.
Los cuadros de texto predeterminados de los comandos dbt de los comandos dbt deps, dbt seed y dbt run. Los comandos proporcionados se ejecutan en orden secuencial. Agregue, quite o edite estos campos según sea necesario para el flujo de trabajo. Consulte ¿Qué son los comandos dbt?.
En SQL warehouse, seleccione un almacenamiento de SQL para ejecutar el código SQL generado por dbt. En el menú desplegable SQL warehouse solo se muestran los almacenamientos de SQL sin servidor y Pro.
Especifique un catálogo de almacenamiento. Si no se establece, se usa el valor predeterminado del área de trabajo.
Especifique un esquema de almacenamiento. De manera predeterminada, se usa el esquema
default
.Elija dbt CLI compute (proceso de la CLI de dbt) para ejecutar dbt Core (núcleo de dbt). Databricks recomienda usar el proceso sin servidor para trabajos o trabajos clásicos configurados con un clúster de un solo nodo.
Especifique una versión de
dbt-databricks
para la tarea.Si usa el proceso
Serverless
, use el campo Environment and Libraries (Entorno y bibliotecas) para seleccionar, editar o agregar un nuevo entorno. Consulte Instalación de dependencias de cuaderno.Para todas las demás configuraciones de proceso, el campo Dependent libraries (Bibliotecas dependientes) se rellena con
dbt-databricks>=1.0.0,<2.0.0
de forma predeterminada. Elimine esta configuración y + Agregar una biblioteca PyPi para anclar una versión.Nota:
Una buena práctica en Databricks consiste en anclar las tareas de dbt a una versión específica del paquete dbt-databricks para asegurarse de que se va a usar la misma versión para las ejecuciones de las fases de desarrollo y producción. Use la versión 1.6.0 del paquete de Databricks dbt-databricks o una posterior.
Haga clic en Create task (Crear tarea).
¿Qué son los comandos dbt?
El campo comandos dbt permite especificar comandos para ejecutarse mediante la interfaz de la línea de comandos (CLI) de dbt. Para obtener más información sobre la CLI de dbt, consulte la documentación de dbt.
Compruebe la documentación de dbt para ver los comandos admitidos por la versión especificada de dbt.
Pasar opciones a comandos dbt
La sintaxis de selección de nodo dbt permite especificar recursos para incluir o excluir en una ejecución determinada. Comandos como run
y build
aceptan marcas como --select
y --exclude
. Consulte los documentos de información general sobre la sintaxis dbt para obtener una descripción completa.
Las marcas de configuración adicionales controlan cómo dbt ejecuta el proyecto. Consulte la columna Opciones de la línea de comandos en la documentación oficial de dbt para obtener una lista de marcas disponibles.
Algunas marcas toman argumentos posicionales. Algunos argumentos de las marcas son cadenas. Consulte la documentación de dbt para ver ejemplos y explicaciones.
Pasar variables a comandos dbt
Use la marca --vars
para pasar valores estáticos o dinámicos a comandos en campos de comandos dbt.
Se pasa un JSON delimitado entre comillas simples a --vars
. Todas las claves y los valores del JSON deben delimitarse entre comillas dobles, como en el ejemplo siguiente:
dbt run --vars '{"volume_path": "/Volumes/path/to/data", "date": "2024/08/16"}'
Ejemplos de comandos dbt con parámetros
Puede hacer referencia a valores de tarea, parámetros de trabajo y parámetros de trabajo dinámicos al trabajar con dbt. Los valores se sustituyen como texto sin formato en el campo comandos dbt antes de que se ejecute el comando. Para obtener información sobre cómo pasar valores entre tareas o hacer referencia a metadatos de trabajos, vea Parameterize jobs (Parametrización de trabajos).
En estos ejemplos se supone que se han configurado los siguientes parámetros de trabajo:
Nombre de parámetro | Valor del parámetro |
---|---|
volume_path |
/Volumes/path/to/data |
table_name |
my_table |
select_clause |
--select "tag:nightly" |
dbt_refresh |
--full-refresh |
En los ejemplos siguientes se muestran formas válidas de hacer referencia a estos parámetros:
dbt run '{"volume_path": "{{job.parameters.volume_path}}"}'
dbt run --select "{{job.parameters.table_name}}"
dbt run {{job.parameters.select_clause}}
dbt run {{job.parameters.dbt_refresh}}
dbt run '{"volume_path": "{{job.parameters.volume_path}}"}' {{job.parameters.dbt_refresh}}
También puede hacer referencia a parámetros dinámicos y valores de tarea, como en los ejemplos siguientes:
dbt run --vars '{"date": "{{job.start_time.iso_date}}"}'
dbt run --vars '{"sales_count": "{{tasks.sales_task.values.sales_count}}"}'