Skip to main content

paquete que permite interactuar pandas con redshift

Project description

treinta_redshift

treinta_redshift es una poderosa librería de Python diseñada específicamente para ingenieros de datos, analistas de Insights & Analytics, y profesionales de Data Science. Facilita la interacción con Amazon Redshift, permitiendo realizar desde operaciones básicas hasta avanzadas con mínima complejidad y máxima eficiencia.

Ventajas Clave

  • Simplificación de Operaciones con Redshift: Simplifica la ejecución de consultas SQL, la manipulación de tablas, y la ejecución de procedimientos almacenados, convirtiendo complejas tareas de gestión de bases de datos en operaciones sencillas y directas.
  • Integración Directa con Pandas: Permite una integración fluida con pandas, transformando los resultados de consultas SQL directamente en DataFrames y viceversa, lo cual es ideal para análisis de datos y machine learning.
  • Optimización de Cargas de Datos: Aprovecha la eficiencia del almacenamiento en S3 y la velocidad de la instrucción COPY de Redshift para cargar grandes volúmenes de datos de manera eficiente, utilizando un enfoque de Data Lake.
  • Flexibilidad y Control: Ofrece a los usuarios control total sobre sus datos, permitiendo operaciones a nivel de base de datos, esquema, o tabla, y facilitando ajustes finos como la limitación del número de entradas a recuperar.

Requisitos Previos

Para comenzar con treinta_redshift, asegúrate de tener lo siguiente:

  • Python 3.11 o superior instalado en tu entorno de desarrollo.
  • Acceso configurado a AWS, con un rol de AWS IAM que tenga los permisos necesarios para interactuar con los servicios de Redshift y S3.

Políticas de IAM Requeridas

El rol de IAM debe tener políticas adjuntas que permitan las acciones necesarias en Redshift y S3. Aquí se muestran ejemplos de políticas mínimas requeridas:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "redshift:GetClusterCredentials",
            "Resource": "arn:aws:redshift:tu-región:tu-id-de-cuenta:dbname:tu-nombre-de-base-de-datos/dbuser:tu-usuario-de-base-de-datos"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::tu-bucket-s3/*",
                "arn:aws:s3:::tu-bucket-s3"
            ]
        }
    ]
}

Reemplaza tu-región, tu-id-de-cuenta, tu-nombre-de-base-de-datos, tu-usuario-de-base-de-datos y tu-bucket-s3 con tus propios valores.

Instalación

Instala treinta_redshift fácilmente usando pip:

pip install treinta_redshift

Este comando instala la última versión de treinta_redshift en tu entorno Python, dejándola lista para ser importada y utilizada en tus proyectos.

Aquí tienes la continuación y conclusión del README.md para tu librería treinta_redshift:

Uso de la Librería

treinta_redshift incluye varios métodos diseñados para facilitar la interacción con Amazon Redshift. A continuación, se presentan ejemplos de cómo utilizar algunos de los métodos más importantes:

1. table_to_dataframe

Consulta una tabla en Redshift y convierte los resultados en un DataFrame de pandas. Ideal para análisis de datos.

Ejemplo:

df = table_to_dataframe(table='ventas', schema='public', database='mi_database', NUM_ENTRIES=100, cluster_identifier='mi-cluster-redshift', db_user='usuario_redshift')

Consulta las primeras 100 entradas de la tabla ventas, convirtiendo los resultados en un DataFrame para análisis posterior.

2. query_to_dataframe

Ejecuta consultas SQL personalizadas en Redshift y devuelve los resultados como DataFrames de pandas.

Ejemplo:

sql_query = "SELECT fecha, SUM(ventas) FROM public.ventas WHERE fecha > '2021-01-01' GROUP BY fecha;"
df = query_to_dataframe(sql_query=sql_query, cluster_identifier='mi-cluster-redshift', database='mi_database', db_user='usuario_redshift')

Realiza un análisis agregado de las ventas por fecha.

3. dataframe_to_s3

Exporta DataFrames de pandas a S3 como archivos CSV comprimidos, preparándolos para su carga en Redshift.

Ejemplo:

df = pd.DataFrame({'columna1': [1, 2, 3], 'columna2': ['a', 'b', 'c']})
path_s3 = dataframe_to_s3(df=df, bucket="mi_bucket_s3", endpoint='mi_datalake', object_name='datos_ventas')

Guarda df como un archivo .csv.gz en mi_bucket_s3, listo para ser cargado en Redshift.

4. load_s3_to_redshift

Carga datos desde S3 a Redshift de manera eficiente, utilizando la instrucción COPY de Redshift.

Ejemplo:

load_s3_to_redshift(table='ventas', schema='public', s3_object_path='s3://mi_bucket_s3/mi_datalake/mis_datos_ventas.csv.gz', database='mi_database', cluster_identifier='mi-cluster-redshift', db_user='usuario_redshift')

Carga datos desde mis_datos_ventas.csv.gz en S3 a la tabla ventas en Redshift.

5. dataframe_to_redshift

Combina los pasos de exportación a S3 y carga en Redshift en una sola acción, simplificando el flujo de trabajo.

Ejemplo:

df = pd.DataFrame({'columna1': [1, 2, 3], 'columna2': ['a', 'b', 'c']})
dataframe_to_redshift(df=df, table='ventas', schema='public', database='mi_database', db_user='usuario_redshift', cluster_identifier='mi-cluster-redshift')

Carga df directamente a la tabla ventas en Redshift, facilitando un proceso de análisis de datos eficiente y automatizado.

Carga de Datos a Redshift

Para cargar datos en Redshift, treinta_redshift aprovecha un enfoque basado en Data Lake usando S3. Los archivos se exportan primero a S3 en formato .csv.gz para luego ser cargados en Redshift con la instrucción COPY. Este proceso está diseñado para ser eficiente y seguro, garantizando una integración de datos rápida y sin problemas.

Políticas de IAM para Carga de Datos

Asegúrate de que el rol de IAM tenga permisos para ejecutar la instrucción COPY en Redshift y operaciones relevantes en S3. Consulta la sección "Políticas de IAM Requeridas" para más detalles.

Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Contacto

Para soporte, preguntas o colaboraciones, por favor, abre un issue en el repositorio de GitHub para que podamos seguir la conversación.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

treinta_redshift-1.0.2.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

treinta_redshift-1.0.2-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file treinta_redshift-1.0.2.tar.gz.

File metadata

  • Download URL: treinta_redshift-1.0.2.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for treinta_redshift-1.0.2.tar.gz
Algorithm Hash digest
SHA256 bf17e6f542bdd7f7315cb5d3f4c9d0e534edaab235dfb40dde0a21bb722bb5a0
MD5 453a3a0ee0a44941577ee858dd5bc8a3
BLAKE2b-256 173b55d8861ba4e9cc88123506744d5c2c2b81e51ab2d9bee7925128c3a97886

See more details on using hashes here.

File details

Details for the file treinta_redshift-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for treinta_redshift-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0e427abbe4779d4fe877f80d03a2dc81293d1da7847023ad53b6bc3acf92a04b
MD5 3cd1b9fb56f7685a7454a797d6ddfacb
BLAKE2b-256 944ef0013c0d89aea0177ffa9ac2f3d952e11dc5cadfeb09c20e8e7b9a0fd727

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page