Cursor: guía práctica para data engineers
¿Qué es Cursor?
Cursor es un IDE potenciado por inteligencia artificial (fork de VSCode) que permite generar, completar, refactorizar y explicar código con gran precisión. Se integra con repositorios Git y permite trabajar en proyectos reales con soporte directo para lenguajes como Python, SQL, YAML, Bash y más.
Formas de interactuar con Cursor
1. Autocompletado inteligente "Tab"
- Generación progresiva: presioná Tab repetidamente para que Cursor continúe generando líneas de código adicionales.
- Multilinea: a diferencia de otros completadores, Cursor puede sugerir bloques completos de código, no solo líneas individuales.
- Contextual: el autocompletado se adapta al proyecto, archivos abiertos y al historial de código que escribiste.
Tip: combiná esto con comentarios descriptivos para que Cursor entienda mejor qué intentás lograr antes de autocompletar.

2. Chat integrado
- Panel lateral: accedé al chat de IA desde la barra lateral para mantener conversaciones contextuales sobre tu código.
- Comandos rápidos: usá "/ask" para iniciar una conversación desde cualquier punto.
Tip: el chat recuerda el contexto de la conversación, lo que permite iteraciones y refinamiento.
3. Edición inline
- Seleccionar y preguntar: marcá un bloque de código y hacé clic derecho para opciones de IA.
- Completion: Cursor puede completar líneas de código mientras escribís.
Tip: presioná Tab para aceptar sugerencias o continuar generando más código.

4. Comandos de Cursor
Abrí la paleta de comandos (Ctrl+Shift+P / Cmd+Shift+P) y buscá:
- "Cursor: Explain Code"
- "Cursor: Refactor Code"
- "Cursor: Generate Tests"
- "Cursor: Document Code"
5. Comentarios inteligentes
Escribí comentarios detallados y Cursor generará el código correspondiente.
"// Función que procesa archivos CSV de ventas y calcula métricas mensuales"
Tip: cuanto más detallado sea el comentario, mejor será el código generado.
6. Modo Agente
Cursor cuenta con un modo agente que completa tareas de punta a punta: busca en el codebase, aplica los cambios necesarios en múltiples archivos y te mantiene en el loop en cada paso. Se activa con Cmd+I (o Ctrl+I) indicando el cambio que necesitás.

7. Prompt templates
- Guardá tus prompts más efectivos como templates para reutilizarlos.
- Accedé a la biblioteca de templates predefinidos para tareas comunes de data engineering.
Tip final: alterná entre estas diferentes formas de interacción según la complejidad de tu tarea y el tipo de ayuda que necesites.
Casos de uso clave para data engineers
1. Generación de código
- Python para pipelines en Airflow: genera DAGs, operators personalizados o funciones auxiliares.
- Macros y modelos en dbt: desde descripciones en lenguaje natural genera Jinja + SQL.
- Scripts SQL complejos: transforma descripciones en consultas optimizadas con window functions, CTEs, joins, etc.
Tip: comenzá escribiendo un comentario con el prompt, por ejemplo "Crea una función que procese los archivos de S3 y los cargue a Redshift en particiones por fecha".
2. Diseño de arquitectura
Pedí ayuda para diseñar pipelines de datos y arquitecturas en AWS con descripciones como "Diseñá una arquitectura en AWS para procesar datos en streaming con Kinesis, Lambda y Redshift". También podés crear diagramas Mermaid directamente desde Cursor.
Tip: utilizá la función de conversación ("/ask" o seleccionar bloque + "Ask AI") para iterar hasta lograr una arquitectura viable.
3. Documentación automática
Documentá automáticamente funciones Python, DAGs de Airflow, modelos de dbt y tablas SQL.
Tip: seleccioná el bloque de código y usá el comando "Document this" o simplemente pedí "Agregá docstring estilo Google".
4. Tests unitarios y de integración
Generá automáticamente tests con pytest o unittest, tests para DAGs (que estén bien configurados y no fallen al instanciarse), y tests para macros y modelos en dbt (unique, not_null, etc.).
Tip: seleccioná una función y pedí "Create a pytest unit test for this function, mocking AWS dependencies".
5. Validaciones de SQL y performance
Usá prompts como "¿Esta query puede ser optimizada?", "¿Faltan filtros que hagan uso del índice?" o "¿Hay riesgo de cross join?". Ideal para revisar modelos de dbt antes de desplegar.
6. Explicaciones técnicas
Explicá cualquier bloque de código, incluso muy complejo, con un prompt como "Explicá esta UDF de Spark línea por línea".
Tip: útil para hacer onboarding de nuevos miembros o para dejar explicaciones claras en PRs.
Buenas prácticas para maximizar Cursor
Prompts efectivos
Sé específico y contextual.
- Bien: "Convertí este script que hace merge de datos de Snowflake en un modelo de dbt incremental."
- Mal: "Haceme un modelo de dbt."
Iterá con el asistente. El primer intento rara vez es el mejor: refiná.
Modularizá el código
Cursor trabaja mejor con funciones pequeñas y bien aisladas. Dividí tareas complejas en pasos simples y generá cada uno por separado.
Conversaciones en contexto
Usá la pestaña de AI chat con acceso al proyecto para conversaciones más ricas. Cursor puede "recordar" archivos y contexto si le das referencias tipo "Basado en el archivo models/staging/events.sql, generá el modelo de hechos."
Integraciones útiles
GitHub o GitLab
Comentá PRs automáticamente con AI. Pedile que revise diffs y haga sugerencias.
Python + SQL + dbt
Cursor entiende perfectamente la estructura de un proyecto dbt, sus modelos, tests, schema.yml y sources.yml.
AWS
Prompting para generar scripts de Boto3, Lambdas que interactúan con S3, Redshift, Glue, etc., y políticas IAM.
Ejemplos concretos
| Caso | Prompt de ejemplo |
|---|---|
| DAG Airflow | "Generá un DAG que corre todos los días, lee de S3 y carga en Snowflake" |
| dbt Model | "Hacé un modelo incremental de dbt que toma la tabla de staging y calcula métricas diarias" |
| Glue Job | "Script de Glue para procesar archivos Parquet particionados por fecha" |
| Redshift | "Query que calcula el churn mensual a partir de una tabla de suscripciones" |
| Docstring | "Documentá esta función con estilo Google" |
| Explicación | "Explicá este DAG línea por línea" |
| Test | "Crea un test unitario para esta función que lee desde DynamoDB" |
Sugerencias para el día a día
- Antes de comenzar una tarea, pedile a Cursor un boilerplate del flujo que vas a hacer.
- Durante el desarrollo, usalo para explicar o refactorizar tus funciones.
- Al terminar, generá documentación y tests automáticos.
- Antes de mergear, hacé una revisión con IA del diff o pedile feedback sobre tu PR.
Prompt vs Context Engineering
Prompt Engineering
El arte de crear instrucciones precisas para obtener los mejores resultados de IA:
- Diseñar prompts específicos que generan exactamente lo que necesitás.
- Utilizar técnicas para eliminar ambigüedades y obtener respuestas más precisas.
Los mejores prompts suelen ser conversacionales y específicos en lugar de formales y vagos.
Context Engineering
Va más allá del prompt individual: se trata del entorno informativo.
- Proporcionarle a la IA el panorama completo de tu proyecto.
- Incluir estratégicamente los archivos relevantes en la conversación.
Un buen contexto puede mejorar significativamente la precisión de las respuestas de la IA.
Cuándo usar cada enfoque
| Prompt Engineering | Context Engineering |
|---|---|
| Para tareas específicas y aisladas | Para proyectos complejos y multifacéticos |
| Cuando necesitás resultados rápidos | Cuando requerís soluciones completas y precisas |
| Para iteraciones y refinamientos | Para establecer bases sólidas de trabajo |
Estrategia combinada para mejores resultados
La verdadera magia ocurre al combinar ambos enfoques:
- Preparar el contexto cargando archivos clave antes de hacer consultas.
- Estructurar prompts que aprovechen el contexto disponible.
- Iterar mejorando tanto el contexto como los prompts según los resultados.
Herramientas prácticas en Cursor
- Para prompt engineering: biblioteca de prompts, sugerencias contextuales, comandos slash.
- Para context engineering: selección inteligente de archivos, exploración de repositorios con IA y análisis de dependencias automático.
