Configuración de herramientas para Data Warehouse y ETL
¡Hola, te doy la bienvenida a este tutorial! Configurarás las bases de datos y herramientas que usaremos para el ETL y crear un data warehouse.
Usaremos PostgreSQL con la base de datos Adventureworks. Será nuestra base de datos transaccional y la fuente de información para llevar al data warehouse.
Ejecuta las siguientes instrucciones para configurar esto:
Ruby
Instalación de Ruby en Ubuntu o WSL con Ubuntu
Abre la terminal de Ubuntu
Ejecuta el siguiente comando en la terminal para actualizar la lista de paquetes disponibles:
sudo apt-get update
Una vez actualizada la lista de paquetes, instala Ruby ejecutando el siguiente comando en la terminal:
sudo apt-get install ruby-full
Verifica que Ruby se haya instalado correctamente ejecutando ruby -v en la terminal.
Selecciona la versión de Ruby que deseas instalar.
Ejecuta el instalador y sigue las instrucciones del asistente de instalación.
Una vez completada la instalación, abre la línea de comandos de Windows (cmd.exe) y escribe ruby -v para verificar que la instalación se haya realizado correctamente.
Instalación de Ruby en macOS
Abre la terminal de macOS.
Instala Homebrew ejecutando el siguiente comando en la terminal:
Selecciona la opción para crear una nueva conexión.
Selecciona PostgreSQL en la lista de bases de datos.
Ingresa la información de conexión necesaria en la pestaña.
Host: localhost
Port: 5432
Base de datos: Adventureworks
Nombre de usuario: postgres
Password: la que tengas de tu user de postgresql.
5.Haz clic en **TestConnection** para asegurarte de que los detalles de conexión sean correctos y que puedas conectarte a la base de datos.6.Si la prueba de conexión es exitosa, haz clic en "Finalizar" para guardar la configuración de la conexión.
Configuración de Pentaho
Esta herramienta la utilizaremos para crear las ETL de los datos transaccionales (DB Adventureworks) en Postgres a el Data Warehouse en AWS Redshift.
AWS Redshift será utilizado como data warehouse. Será el lugar donde construiremos las dimensiones, tablas de hechos y llevaremos los datos modelados y limpios que se obtuvieron del sistema transaccional.
Crea un nuevo clúster de AWS Redshift de manera similar al Curso de Fundamentos de ETL con Python y Pentaho. Puedes seguir las clases tutoriales de ese curso:
Sigan el tutorial del repositorio de Github, alli esta el archivo docker compose que automaticamente ejecutara el script (asumiendo que ya lo tienen en la carpeta como dice el paso 3) pero deberan renombrar el archivo para que se llame adventure_works_2014_OLTP_script.zip .
Una vez que ejecuten el comando...
docker compose up
Tendran la imagen contruida y la base da datos de Postgres llena y ejecutandose (porque la imagen ya tiene instalado ruby y ejecuto el script).
Pueden combinarlo con un archivo docker-compose.override.yml para levantar una imagen de un gestor de bases datos como PGAdmin4 o Adminer.
Para los que quieren hacerlo de esta forma y necesiten combinarlo con un archivo
docker-compose.override.yml
Este archivo lo puse en el mismo directorio donde está docker-compose.yml
version:'3'services:pgadmin:image: dpage/pgadmin4
restart: always
ports:-8080:80environment:-PGADMIN_DEFAULT_EMAIL=CORREO-PGADMIN_DEFAULT_PASSWORD=CONTRASEÑAdepends_on:- db
En la sección de depends_on debe ir el nombre del servicio para la base de datos definido en docker-compose.yml.
Después de eso corrí el comando:
docker-compose up
Entro a localhost:8080 desde el navegador e inicio sesión con las credenciales que escogí.
En esta interfaz de pgAdmin, se debe añadir un servidor. En la pestaña de Connection , en la sección "Host name/address", ingresa db (nombre del servicio definido en el archivo docker-compose.yml y en la sección de depends_on del archivo docker-compose.override.yml) como el nombre de host.
En la sección "Port", se coloca 5432 (puerto definido en el archivo docker-compose.yml) como el número de puerto.
En la sección "Maintenance database", se coloca el nombre de la base de datos, **postgres **en este caso.
En la sección "Username" y "Password", se coloca el nombre de usuario y contraseña respectivamente, también son postgres en este caso.
La guía de instalación de AdventureWorks esta bastante mala, he tenido mucha dificultad realizando la instalación. Debería por lo menos existir un vídeo de apoyo actualizado para la instalación.
Hola Jose Julián, encuentro muchos problemas para la instalación. Puedo contactarlo?
Completamente de acuerdo, asumen que el alumno puede no conocer a detalle ciertos procesos, lo que dificulta realizar los pasos que mencionan.
Encuentro fallas en la configuración de la base de datos AdventureWorks al utilizar el comando psql, windows no lo reconoce como una acción
Alguna solución para este error?: "sudo" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
Si estas en Windows debes abrir pgAdmin, búscalo en la barra de búsqueda. Debes ya tener instalado postgres
En q directorio tengo q correr el comando git clone ?
es ahí mismo en la dirección por defecto de la consola? en mi caso sería C:\Users\jairo ? o cuál?
paso 0: asegurar que tu path tenga (C:\Program Files\PostgreSQL\15\bin) y ademas a ver instalado el ruby.
paso 1: install git bash on windows 11
paso 2: en la consola de git bash ejecutar el siguiente comando:
git clone
paso 3: Copia y pega el archivo AdventureWorks-oltp-install-script.zip en el directorio AdventureWorks-for-Postgres
Hola, recuerden que los archivos .csv deben estar en la misma carpeta que las otros archivos, es decir sacarlos de la carpeta llamada AdventureWorks-oltp-install-script. Si no hacen esto les puede dar errores.
También tenang en cuenta que al ejecutar el comando de ruby: ruby update_csvs.rbla salida debe ser del tipo:
Processing ./CountryRegion.csvasi para varios archivos.
Si al ejecutar el comando no les sale esta respuesta puede ser un indicador de que algún paso anterior está mal
hola, he tenido un problema con la configuracion de postgres con wsl.
Yo instale postgres en mi terminal de wsl2 ubuntu, y tambien descargue pgAdmin 4. las versiones de ambos, tanto la version en wsl de postgres y la version de pgAdmin 4, son la version 14. el puerto que estoy utilizanod en ambas es el 5432.
Lo que no he podido lograr es ver reflejados los cambios o la creacion de bases de datos en pgAdmin en mi consola de wsl o viceversa.
cuando abro la terminal sql shell, esta si me deja ver los cambios y esta bien conectadad.
Lo que quiero lograr es solo trabajar con mi terminar de wsl.
Hola ! , parece que Pentaho ha sido removido. Alguna alternativa para crear las ETL?
Necesito apoyo con la sessión Descarga y configuración de la base de datos AdventureWorks, no he podido realizar los pasos 6, 7 y 8. En donde debo realizarlos?, no entiendo.
Estoy trabajando en Windows
Mirando en el repositorio de github solamente creamos la base de datos con
La base de datos la tengo en aws, podria hacer todo el proceso de ETL desde aws, osea, no usando pentaho si no mas bien directamente desde aws?
Si AWS tiene un servicio para construir pipelines podrías hacerlo todo directamente desde allí conectándolo con la BD. Lo importante es realizar las operaciones de ETL, no la herramienta para hacerlas.
Tengo una consulta, tengo un problema al crear la base de datos, hay otra manera de hacerlo?
Hola Paul, ¿Qué problema te esta presentando?. Nos compartes el proceso que sigues por favor?, sistema operativo y mensaje de error.
es mas facil crear una red para conectarse en local en docker asi : version: '2'
services: db: build: ./ environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres ports: - '5434:5432' # Mapeo del puerto de la máquina local al puerto del contenedor networks: - my_custom_network # Asignar la red personalizada al servicio
networks: my_custom_network: # Definición de la red personalizada driver: bridge
version: '2'
services:
db:
build: ./
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- '5434:5432' # Mapeo del puerto de la máquina local al puerto del contenedor
networks:
- my_custom_network # Asignar la red personalizada al servicio
networks:
my_custom_network: # Definición de la red personalizada
driver: bridge
Tiene alguien el backup de la base de datos? El tutorial no es muy claro.
Si alguien ya ha tenido exito con la migración de la base de datos en postgres y con la dato de cada tabla, si puede envie un backup para hacer restore.
PD: Estoy utlizando windows 11
hay muchos problemas con la guia de AdventureWorks, si pudieran realizar un video de apoyo con los comnados seria mas que satisfactorio.
como configuro pgadmin para conectarme a redshift
Hola, al final pude correr el archivo install.sql. Pero para ello tuve que crear la base de datos por mi cuenta:
Corri los siguientes 4 comandos