Se describe un paso a paso de un ejemplo de uso del adaptador de CrateDB para
Debe tener instalado python. En caso de no contar con esta herramienta consultar la siguiente dirección y proceder según el sistema operativo de su máquina. https://www.python.org/downloads/
- En caso de usar Windows, ver las consideraciones adicionales.
pip es el instalador de paquetes de python, el cual será necesario para la instalación de dbt y el adaptador dbt-cratedb. En caso de no contar con la herramienta
Descargar el siguiente archivo: https://bootstrap.pypa.io/get-pip.py
Ejecutar el archivo get-pip.py utilizando python.
Para actualizar pip, posteriormente ejecutar
python -m pip install --upgrade pip
Considerar la instalación requerida para el sistema operativo según lo que se indica en https://www.postgresql.org/download/
Descargar e instalar según indicaciones en https://git-scm.com/downloads según el sistema operativo utilizado.
- La versión recomendada de python para Windows es la 3.8.10 ya que con versiones más nuevas podría generar problemas de dependencias en el proceso de instalación de dbt.
- Para windows podría requerirse habilitar "developer mode" y "long paths" e instalar visual C++ build tools
- En Windows es necesario incluir las variables de entorno para poder ejecutar ambos programas desde cmd o powershell.
pip install dbt pip install --upgrade dbt
pip install dbt-cratedb==0.20.2
Por defecto, el archivo profiles.yaml, dónde se encuentran las posibles conexiones a bases de datos, se encuentra ubicado en ~/.dbt/profiles.yml. El contenido de este dependerá de la conexión a la base de datos. Para este ejemplo en particular que considera el adaptador de CrateDB, el contenido de este archivo debe ser similar al siguiente
crate: outputs: dev: type: cratedbadapter threads: 1 host: port: 5432 user: crate database: "" schema: dbt_dev target: dev
Para iniciar un nuevo proyecto de dbt, correr el siguiente comando.
dbt init ejemplo-dbt
Esto creará un directorio que contiene múltiples directorios y archivos.
Posterior a la inicialización del proyecto de dbt, guardar el contenido de cada directorio dentro del directorio example_files de este repositorio, con su respectivo directorio en el proyecto de dbt de la siguiente forma.
- example_files/csv_files -> data
- example_files/models_files -> models
- example_files/snapshots_files -> snapshots
- example_files/tests_files -> tests
- example_files/analysis_files -> analysis
- example_files/dbt_project.yml -> ./dbt_project.yml
Adicionalmente se reemplaza el contenido del archivo dbt_project.yml en el proyecto de dbt, por el contenido en el directorio example_files de este repositorio.
dbt seed
dbt test
dbt run
dbt snapshot.
dbt docs generate
dbt docs serve