ibis-project / talks

3 stars 2 forks source link

PyCon 2024 - Charlas: Porque SQL está en todas partes. #10

Closed ncclementi closed 3 months ago

ncclementi commented 8 months ago

Spanish version of #9 although I changed the text a bit.

PyCon 2023 - Charlas: Porque SQL está en todas partes.

Descripción

Nos encanta usar Python en nuestro trabajo, pero lamentablemente la base de datos de tu empresa donde ejecutas tus ETL (extracción, transformación y carga) te lo previene. Muy probablemente tu base de datos hable SQL, ¿Por qué? Porque SQL está en todos lados, ha estado presente durante un largo tiempo, está estandarizado y es conciso.

¿Pero realmente está estandarizado? ¿Y siempre es conciso? ¡No! ¿Aún necesitamos usarlo? ¡Probablemente sí! ¿Qué puede hacer una persona que trabaja con datos? ¿SQL con string-templating (plantilla de cadena de caracteres)? print(f"Ese camino conduce a {locura}}".)

Mejor, ¡ven y aprende sobre Ibis!

Ibis es una biblioteca completamente en Python que ofrece una una interfaz similar a aquellas con estructuras de datos tabulares (data frames), que te permite construir queries concisas y componibles que se pueden ejecutar en una amplia variedad de backends (SQLite, DuckDB, Postgres, Spark, Clickhouse, Snowflake, BigQuery, ¡y más!).

¿Alguna vez has tenido que traducir un prototipo de Pandas a PySpark para ejecutarlo en "datos reales"?

¿O descargar un enorme archivo parquet porque los datos en la fuente son el resultado de 500 líneas de SQL denso y tienes miedo de tocarlo?

¿Quieres probar esta cosa llamada "DuckDB" pero no quieres aprender SQL?

¿Tienes una relación de amor/odio con SQL porque te permite hacer tu trabajo, pero piensas que debe haber una mejor manera?

¿Te has quedado atascado manteniendo un creciente y amorfo conjunto de SQL con plantillas que solo se suponía que se usaría para esa demostración?

Bueno, si eres un ingeniero de datos, científico de datos, entusiasta de los datos o cualquier cosa relacionada con los datos, ¡ven y únete a nosotros para descubrir lo que Ibis puede hacer por ti!

Additional Notes

Contenido

Explorar el espacio del problema (8 minutos)

La mayoría de los analistas de datos de Python utilizan pandas, y eso funciona muy bien hasta que no lo hace. La mayoría del conjunto de herramientas PyData asume dos cosas:

  1. Tus datos son locales.
  2. Tus datos caben en la memoria.

En la práctica lo que termina sucediendo es que, para utilizar pandas (u otros) para analizar datos almacenados en Postgres (u otros), primero debes cargar una parte bastante grande de esos datos en la memoria y luego proceder. Esto simplemente fallará cuando los datos sean demasiado grandes. Incluso cuando tiene éxito, no es un uso muy eficiente de Postgres, que está más cerca de los datos y optimizado para operaciones en datos tabulares.

Este patrón aparece una y otra vez, y es indicativo del Problema de Traducción de PyData. Hay una división, más destacada en situaciones empresariales, donde hay herramientas de desarrollo y herramientas de producción.

¿Qué debe hacer una persona de datos bien intencionada? Mucha gente dirá: "simplemente usa SQL".

Hablemos de SQL (4 minutos)

Ha estado presente durante mucho tiempo. Probablemente hayas escrito un poco de él. Y está EN TODAS PARTES. Y está entre tú y los datos. Compara cómo se supone que debe funcionar con cómo funciona en la práctica

La pendiente resbaladiza hacia un lío inmantenible. (4 minutos)

Queremos usar Python, necesitamos usar SQL, hay diferencias de dialecto y hay muchas partes a las que complacer.

¿Qué tal si usamos plantillas de cadena de caracteres? Luego demostremos lo mal que puede salir esto muy rápidamente. Es una parodia, pero es muy creíble.

Entonces, demostrados los problemas de las plantillas de cadena de caracteres, pero los deseos mencionados anteriormente, ¿qué podemos hacer?

¡Ibis! (10-12 minutos)

Ibis puede hacer todo esto.

Utiliza una API de marco de datos en estilo Python, bien tipada, para análisis diferidos o interactivos, pero interactúa con los sistemas donde se encuentran los datos, ya sea en DuckDB, Snowflake, BigQuery, Postgres, Trino, etc.

Demostración en vivo de cómo construir una query de manera interactiva en un subconjunto de datos, luego ejecutarla en el conjunto de datos completo en un motor más grande, y finalmente ejecutar la misma query en varios motores para demostrar portabilidad.

Recordatorio de preguntas y respuestas

Experiencia de los exponentes

Naty Clementi, es hispano hablante originalmente de Argentina. Ella ha estado contribuyendo activamente y trabajando a tiempo completo en el proyecto Ibis desde Octubre 2023. Ella tiene experiencia dando tutoriales y charlas, en varios PyData, meetups, Women Who Code DC events, etc. Sus charlas mas recientes han sido "Paralelizá tu código en python con Dask" (Mujeres Argentinas en HPC- 2023) y "Open Source meets Enterprise: The right way" (PyData Seattle) https://www.youtube.com/watch?v=hSyLEuNrU5Y

Phillip Cloud, habla español como segundo idioma (esta sería su primera charla en español). Él es uno de los mantenedores del proyecto Ibis desde sus inicios, y trabaja en él tiempo completo. Phillip tiene vasta experiencia dando tutoriales y charlas en público en la industria del software desde alrededor de 2015, y siempre ha sido sobre Python y análisis. Algunas de sus charlas más recientes son "Ibis: Because SQL is everywhere and so is Python" (Trino Fest 2023) https://www.youtube.com/watch?v=JMUtPl-cMRc . "Ibis: Because SQL is everywhere but you don't want to use it" (EuroScipy 2023) https://www.youtube.com/watch?v=-p6SRufakjI

ncclementi commented 3 months ago

Closing as this was delivered. Great job everyone 🎉