¡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:
⚠️ Recuerda nombrar diferente al clúster de AWS Redshift y al bucket de AWS S3 que usarás para el proyecto de este curso.
Con esto has completado la configuración de herramientas a usar en las siguientes clases del curso.
Deja en los comentarios si tienes alguna duda o problema que impida tu progreso, para que en comunidad podamos apoyarte.
Avanza a la siguiente clase. ⚙️➡️
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, 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.
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.
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.
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
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.