Prueba de concepto para comprobar el funcionamiento y la forma de trabajo entre dbt y synapse. Puntos a validar:
- Construcción pipeline de transformación de datos
- Calidad del dato
- Orquestación y Monitorización
- Documentación automática
- Linaje
- Versionado
- CI/CD
A continuación se describen los pasos necesarios para instalar y ejecutar este proyecto
Descargar e instalar la versión de Python 3.10.6 64 bits
Una vez instalado python, es recomendable realizar una actualización para asegurarnos de tener las últimas versiones de pip
y setuptools
.
python -m pip install --upgrade pip wheel setuptools
Para instalar dbt-core
y el adaptador para synapse
, usaremos pip
.
pip install dbt-core==1.3.2
pip install dbt-synapse==1.3.0
Trabajaremos con estas dos versiones específicas, que son estables. Podemos encontrar más información sobre esta instalación en la web del adaptador de synapse para dbt
El adaptador de synapse necesitar este componente para comunicarse con el data warehouse del cloud. Desde este enlace podremos encontrar la información y descargar la versión de 64 bits.
Utilizaremos este paquete como linter para nuestro código sql. Para instalarlo usaremos pip
pip install sqlfluff
pip install sqlfluff-templater-dbt
Podemos encontrar más información sobre este paquete aquí
Recomendamos usar este IDE para trabajar con este proyecto. Podéis descargarlo desde aquí
Importante: Una vez descargado el código, es necesario crear la carpeta .\vscode en el raíz de vuestro proyecto, y dentro de la misma el fichero settings.json, para acontinuación asociar un template a los ficheros y crear las variables de entorno necesarias para la conexión.
"files.associations":{
"*.sql":"jinja-sql",
"**/target/**":""
},
"terminal.integrated.env.windows":{
"SYNAPSE_SERVER": "wkspace-synapsedev.sql.azuresynapse.net",
"PORT_SYNAPSE_SERVER": "1433",
"DABATASE_SYNAPSE": "XXXXXX",
"SCHEMA_SYNAPSE": "XXXXXX",
"AUTHENTICATION_SYNAPSE": "ActiveDirectoryPassword",
"USER_SYNAPSE": "XXXXXXX",
"PASSWORD_SYNAPSE": "XXXXXXXX",
"SCHEMA_SILVER": "XXXXXXX",
"SCHEMA_GOLD": "XXXXXXX"
},
"dbt.queryLimit": 500
- Aprende más sobre dbt en los documentos