Curso de PL/Lua
Aprende con el curso de PL/Lua para empresas hasta 100% bonificado, a medida para tu organización.
Totalmente práctico y aplicable
Formación en PL/Lua a medida
100% bonificable a través de FUNDAE
Curso TUTORIZADO por expertos
Modalidad Aula Virtual Personalizada
Curso de PL/Lua en Aula Virtual Personalizada
Nuestra modalidad AVP es una formación en directo, práctica y 100% adaptada a vuestro equipo. No trabajamos con contenidos genéricos: diseñamos la formación en función de vuestro nivel, objetivos, procesos internos y necesidades reales de aplicación.
Solicitar informaciónTemario 100% a medida
Creamos el temario desde cero a partir de vuestras necesidades, nivel del equipo y objetivos concretos, priorizando aquellos contenidos que realmente aporten valor en el día a día.
Proyectos personalizados
Durante la formación trabajaremos con archivos, ejemplos, informes o procesos similares a los que utiliza vuestro equipo, para que el aprendizaje sea directamente aplicable al puesto de trabajo.
Sesiones en directo con consultor experto
Un formador especialista imparte las clases en tiempo real, resolviendo dudas, revisando casos concretos y adaptando el ritmo de la formación a la evolución del grupo.
Calendario adaptado a vuestra disponibilidad
Definimos conjuntamente fechas, horarios y duración de las sesiones para facilitar la asistencia del equipo y minimizar el impacto en la operativa diaria de la empresa.
Curso de PL/Lua hasta 100% Bonificable a través de FUNDAE
Tu bonificación paso a paso
Forma a tu equipo sin costes mediante la bonificación estatal.
Este programa de PL/Lua para empresas es subvencionable hasta el 100%.
- Potencia las habilidades de edición y automatización de tus profesionales.
- Accede a una formación avanzada en PL/Lua práctica y orientada a resultados.
- Prepara a tu equipo para los retos documentales del entorno laboral actual.
- Gestionamos gratis tu bonificación de este curso corporativo de PL/Lua ante FUNDAE.
Calcula tu bonificación
Revisamos tu caso
Preparamos la gestión
Tu equipo realiza el curso
Aplicas la bonificación
La formación que decides
te devuelve dinero
Todos nuestros cursos son bonificables a través de FUNDAE.
Gestionamos toda la documentación por ti.
Calcula tu crédito aproximado
Crédito bonificable estimado
420€*
*Cálculo orientativo
Aterriza PL/Lua en entornos PostgreSQL reales
Refuerza seguridad y permisos Incluye PL/Lua trusted, PL/LuaU, sandbox, módulos, `SECURITY DEFINER`, SQL dinámico, SPI, permisos y revisión de funciones críticas.
Prepara código procedural más mantenible La formación trabaja contratos claros, tipos, nulos, arrays, composites, JSONB, cursores, documentación, testing y estándares corporativos.
Reduce riesgos de triggers opacos El alumno aprende a revisar triggers de validación, normalización, auditoría y DDL con criterios de rendimiento, trazabilidad y rollback.
Facilita colaboración entre DBA y desarrollo El curso ayuda a que backend, datos, DBA, plataforma y seguridad compartan criterios para revisar y operar lógica dentro de PostgreSQL.
Genera entregables útiles El Proyecto Final produce entorno reproducible, funciones, triggers, event triggers, tests, migraciones, auditoría, documentación, runbook y plan de modernización.
Personaliza el temario al 100% para tu equipo
Diseñamos una formación a medida utilizando los documentos y flujos de trabajo reales de tu empresa.
Nueva Plataforma
de E-learningFormación en directo con plataforma de apoyo para reforzar el aprendizaje
Acceso a las grabaciones
Los alumnos podrán revisar las sesiones grabadas para repasar conceptos clave, recuperar explicaciones concretas o reforzar aquellos contenidos que necesiten después de la clase en directo.
Recursos formativos
Materiales, sesiones grabadas y documentación de apoyo quedan centralizados en la plataforma para que el equipo pueda consultarlos durante y después de la formación.
Confirmación de asistencia
La plataforma permite registrar y confirmar la asistencia de los participantes, facilitando el seguimiento de la formación y la gestión documental necesaria para la bonificación FUNDAE.
Ejercicios prácticos
Después de la formación en directo, los alumnos podrán acceder a ejercicios prácticos para aplicar lo trabajado en clase y consolidar el aprendizaje con actividades guiadas.
Acceso a las grabaciones
Los alumnos podrán revisar las sesiones grabadas para repasar conceptos clave, recuperar explicaciones concretas o reforzar aquellos contenidos que necesiten después de la clase en directo.
Recursos formativos
Materiales, sesiones grabadas y documentación de apoyo quedan centralizados en la plataforma para que el equipo pueda consultarlos durante y después de la formación.
Confirmación de asistencia
La plataforma permite registrar y confirmar la asistencia de los participantes, facilitando el seguimiento de la formación y la gestión documental necesaria para la bonificación FUNDAE.
Ejercicios prácticos
Después de la formación en directo, los alumnos podrán acceder a ejercicios prácticos para aplicar lo trabajado en clase y consolidar el aprendizaje con actividades guiadas.
Practica y mejora con nuestra plataforma
Una plataforma practica, con IA integrada y pensada para que mejores desarrollando. Se adapta a tu ritmo, te corrige al instante y te muestra tu progreso real.
Correccion magica
Feedback inteligente
Aprende de cada acierto y fallo con explicaciones claras
Temario del curso
Encuentra todo el temario del curso aquí.
Comprender qué es PL/Lua y cómo permite escribir funciones server-side en Lua dentro de PostgreSQL.
Diferenciar PL/Lua de PL/pgSQL, PL/Tcl, PL/Python, PL/Rust, PL/Java, extensiones C y servicios externos.
Identificar casos donde PL/Lua aporta valor: validación, parsing, transformación, triggers, JSONB y lógica ligera.
Reconocer escenarios donde PL/Lua no encaja: lógica de negocio extensa, tareas masivas o integraciones externas lentas.
Entender por qué PL/Lua pertenece al ecosistema de lenguajes procedurales externos, no al núcleo base de PostgreSQL.
Analizar beneficios de Lua: sintaxis simple, tablas, closures, coroutines, bajo consumo y facilidad de embebido.
Analizar riesgos: conocimiento limitado, extensión externa, dependencias, módulos, seguridad y operación.
Situar PL/Lua dentro de arquitecturas backend, datos, integración, analítica y modernización de sistemas.
Definir criterios para mantener, adoptar, restringir o migrar funciones PL/Lua.
Preparar el caso base del curso: funciones PL/Lua, triggers, SPI, JSONB, pruebas y despliegue.
Revisar disponibilidad de PL/Lua para la distribución PostgreSQL usada.
Instalar dependencias de compilación: PostgreSQL headers, `pg_config`, Lua, LuaJIT, make y toolchain C.
Compilar PL/Lua indicando rutas de Lua, librerías, compilador y versión de PostgreSQL.
Instalar la extensión en un entorno de laboratorio sin datos productivos.
Ejecutar `CREATE EXTENSION pllua` en una base de datos controlada.
Verificar disponibilidad de `pllua` y `plluau` en el catálogo de lenguajes.
Crear roles, esquemas, tablas y datos de prueba para trabajar con seguridad.
Preparar scripts reproducibles de instalación y validación.
Diagnosticar errores habituales de `pg_config`, headers, Lua, librerías compartidas y permisos.
Realizar ejercicio de entorno PostgreSQL + PL/Lua totalmente reproducible.
Comprender la diferencia entre `pllua` trusted y `plluau` untrusted.
Revisar qué restricciones aplica el sandbox de PL/Lua trusted.
Entender por qué PL/LuaU debe reservarse para superusuarios o casos muy controlados.
Analizar acceso a módulos, librerías, entorno global, `os`, `package`, `require` y recursos externos.
Definir política corporativa sobre uso permitido de PL/Lua y PL/LuaU.
Controlar quién puede crear, modificar y ejecutar funciones en cada lenguaje.
Evaluar riesgos de funciones `SECURITY DEFINER` combinadas con PL/Lua.
Crear checklist de seguridad para funciones trusted y untrusted.
Evitar que PL/Lua se convierta en vía indirecta para saltarse permisos de aplicación.
Realizar ejercicio de clasificación de funciones por nivel de riesgo.
Repasar sintaxis Lua aplicada a funciones de base de datos.
Trabajar con variables locales, tablas, funciones, closures, metatables básicas y módulos.
Usar `if`, `elseif`, `for`, `while`, `repeat`, `pairs`, `ipairs` y patrones idiomáticos.
Diferenciar `nil`, `false`, string vacío y valores nulos procedentes de PostgreSQL.
Manipular strings, números, booleanos, tablas y funciones como valores de primera clase.
Usar `pcall`, `xpcall` y manejo de errores con criterio de base de datos.
Aplicar estilo claro, nombres comprensibles y funciones pequeñas.
Evitar abuso de globales, metaprogramación y lógica difícil de auditar.
Crear utilidades Lua reutilizables para validación, normalización y transformación.
Realizar ejercicio de Lua aplicado a limpieza y validación de datos.
Crear funciones con `CREATE FUNCTION` y `LANGUAGE pllua`.
Definir argumentos nombrados, tipos de retorno, esquema, volatilidad, coste y `STRICT`.
Entender cómo PL/Lua transforma el cuerpo SQL en una función Lua invocable.
Acceder a argumentos por nombre y devolver valores compatibles con el tipo SQL declarado.
Gestionar `nil` como valor equivalente a NULL en retornos cuando procede.
Crear funciones pequeñas con una responsabilidad clara y pruebas asociadas.
Usar closures y upvalues locales para inicialización y caché controlado.
Documentar propósito, parámetros, retorno, errores y ejemplos de uso.
Evitar funciones largas que mezclan validación, consultas, transformación y auditoría.
Realizar ejercicio de funciones escalares PL/Lua con entradas nulas y tipos simples.
Comprender cómo PL/Lua convierte tipos básicos de PostgreSQL a tipos Lua.
Trabajar con booleanos, enteros, flotantes, texto, bytea y valores nulos.
Gestionar tipos no básicos como userdata con conversión, métodos o representación textual.
Tratar fechas, timestamps, intervalos y numeric con cuidado de precisión y formato.
Devolver valores compatibles con la firma SQL declarada.
Evitar conversiones implícitas difíciles de depurar.
Validar entradas antes de procesarlas para prevenir errores de runtime.
Documentar reglas de conversión, límites y supuestos.
Comparar procesamiento Lua frente a operadores nativos de PostgreSQL.
Realizar ejercicio de conversión segura entre PostgreSQL y Lua.
Recibir arrays PostgreSQL y tratarlos desde Lua como estructuras indexables.
Procesar listas de textos, números, estados, códigos y etiquetas.
Gestionar arrays vacíos, valores nulos internos y dimensiones inesperadas.
Trabajar con composite types como tablas con claves por nombre de atributo.
Devolver composites mediante tablas Lua con campos compatibles.
Crear contratos de entrada y salida para resultados estructurados.
Evitar estructuras ambiguas cuando el retorno debe ser relacional.
Documentar campos obligatorios, opcionales y calculados.
Crear tests para arrays, composites y combinaciones de nulos.
Realizar ejercicio de función PL/Lua que recibe composite y devuelve resultado estructurado.
Usar capacidades de PL/Lua para procesar JSONB dentro de PostgreSQL.
Convertir documentos JSONB en tablas Lua manejables cuando el entorno lo permite.
Validar claves obligatorias, tipos, arrays, objetos anidados y valores permitidos.
Crear funciones para normalizar payloads procedentes de APIs, formularios o eventos.
Comparar uso de PL/Lua frente a operadores JSONB nativos de PostgreSQL.
Evitar procesar grandes volúmenes JSONB fila a fila sin benchmark.
Crear mensajes claros para JSON inválido o incompleto.
Diseñar salidas relacionales o JSONB normalizado según el caso.
Documentar esquema esperado, errores y criterios de aceptación.
Realizar ejercicio de validación y transformación de JSONB con PL/Lua.
Crear funciones PL/Lua que devuelven múltiples filas o valores.
Usar `coroutine.yield` para emitir resultados progresivamente.
Entender el modo value-per-call de las SRF en PL/Lua.
Diseñar funciones tabulares para expandir arrays, JSONB o estructuras internas.
Gestionar cierre temprano de ejecución cuando la consulta usa LIMIT o se cancela.
Evitar SRFs costosas en rutas críticas sin medición.
Integrar SRFs con consultas, CTEs y joins.
Definir tipos de retorno claros con `RETURNS SETOF` o `RETURNS TABLE`.
Comparar SRFs PL/Lua con SQL set-based y funciones nativas.
Realizar ejercicio de función set-returning basada en datos semiestructurados.
Crear procedimientos PL/Lua cuando el objetivo es ejecutar una acción controlada.
Diferenciar funciones, procedimientos y bloques `DO LANGUAGE pllua`.
Usar procedimientos para procesos internos de mantenimiento, normalización o preparación.
Revisar cuándo un procedimiento puede gestionar transacciones en contextos no atómicos.
Diseñar procedimientos idempotentes y con logs claros.
Evitar procedimientos que modifican muchos datos sin trazabilidad.
Registrar resultados, errores, métricas y filas afectadas.
Separar procedimientos operativos de funciones usadas dentro de consultas.
Crear contratos claros sobre efectos esperados y rollback.
Realizar ejercicio de procedimiento PL/Lua para normalización controlada.
Comprender el uso de SPI para ejecutar SQL desde funciones PL/Lua.
Usar `spi.execute` para consultas y comandos internos.
Pasar argumentos de forma parametrizada a las consultas.
Procesar resultados devueltos como tablas de filas.
Distinguir resultados SELECT de rowcount en comandos que no devuelven filas.
Usar `spi.execute_count` para limitar el número de filas recuperadas.
Gestionar resultados vacíos, errores SQL y tipos inesperados.
Evitar SQL dinámico construido con concatenación insegura.
Comparar SPI interno frente a resolver la lógica mediante SQL externo.
Realizar ejercicio de función PL/Lua que consulta tablas auxiliares con SPI.
Crear planes preparados con `spi.prepare`.
Definir tipos de argumentos del plan y opciones cuando proceda.
Ejecutar statement objects con `stmt:execute` y parámetros seguros.
Usar el entorno local de la función para cachear planes preparados.
Evitar preparar el mismo plan en cada llamada si se invoca con frecuencia.
Usar `stmt:rows` para recorrer resultados de forma clara.
Documentar consultas preparadas, tipos esperados y dependencias.
Medir beneficio real de prepared statements frente a ejecución directa.
Evitar cachés globales difíciles de invalidar.
Realizar ejercicio de optimización de función con `spi.prepare` y caché local.
Usar `spi.newcursor` y `spi.findcursor` cuando se necesita procesar resultados por partes.
Abrir cursores desde statements preparados o queries.
Usar `cur:fetch`, `cur:move`, `cur:close`, `cur:isopen` y gestión de ownership.
Devolver refcursors a consultas o clientes cuando el patrón lo requiere.
Entender cuándo un cursor puede cerrarse por garbage collection si no se gestiona ownership.
Evitar cargar grandes volúmenes completos en memoria si puede iterarse.
Diseñar cursores con límites, dirección y comportamiento documentado.
Gestionar errores de cursor cerrado, portal inexistente y transacción finalizada.
Comparar cursores frente a SRFs y consultas set-based.
Realizar ejercicio de cursor PL/Lua para lectura progresiva de resultados.
Usar `print` para diagnósticos interactivos en laboratorio, sabiendo que emite mensajes INFO.
Usar funciones de logging como `elog`, `info`, `notice`, `warning`, `debug` y `error`.
Diferenciar errores de validación, datos, SPI, seguridad y programación.
Usar `pcall` y `xpcall` con soporte de subtransacciones cuando se necesita recuperación.
Crear mensajes útiles sin exponer datos sensibles.
Evitar silenciar errores dejando datos incoherentes.
Registrar contexto mínimo: función, tabla, operación, parámetro y causa.
Diseñar estrategia común de errores para funciones PL/Lua corporativas.
Crear tests para errores esperados y entradas inválidas.
Realizar ejercicio de endurecimiento de errores en funciones PL/Lua.
Comprender cómo PL/Lua se ejecuta dentro del contexto transaccional de PostgreSQL.
Revisar el soporte de `pcall` y `xpcall` con subtransacciones.
Usar subtransacciones para aislar operaciones que pueden fallar parcialmente.
Diferenciar rollback parcial y rollback completo de la transacción.
Diseñar procesos donde errores por registro se capturan sin corromper datos.
Evitar abusar de subtransacciones en bucles masivos sin medir impacto.
Revisar cuándo `spi.commit` y `spi.rollback` están permitidos en contextos no atómicos.
Documentar qué operaciones forman una unidad lógica indivisible.
Crear pruebas con fallos provocados para validar rollback.
Realizar ejercicio de proceso multi-tabla con recuperación parcial.
Crear funciones trigger con `RETURNS trigger` y `LANGUAGE pllua`.
Comprender los parámetros implícitos de trigger: trigger, old, new y argumentos.
Acceder a `trigger.new`, `trigger.old`, `trigger.row`, operación, nivel, momento y relación.
Modificar filas en triggers `BEFORE INSERT` o `BEFORE UPDATE`.
Devolver la fila correcta según el tipo de operación.
Crear triggers `AFTER` para auditoría y efectos posteriores.
Evitar triggers con lógica pesada en tablas de alta escritura.
Documentar tablas, columnas, efectos y dependencias de cada trigger.
Probar triggers con INSERT, UPDATE, DELETE, rollback y cargas masivas.
Realizar ejercicio de trigger PL/Lua para normalización de datos.
Crear triggers `BEFORE` para validar datos antes de persistirlos.
Normalizar emails, códigos, referencias, identificadores, nombres y estados.
Crear triggers `AFTER` para registrar cambios relevantes.
Guardar auditoría con usuario, operación, timestamp, tabla, clave y diferencias.
Evitar auditar datos personales o secretos sin necesidad.
Enriquecer registros con datos derivados controlados.
Diseñar triggers reutilizables con argumentos claros.
Crear mecanismos de bypass controlado para cargas autorizadas.
Medir impacto de triggers en escrituras frecuentes.
Realizar ejercicio de auditoría y validación avanzada con PL/Lua.
Comprender qué son los event triggers en PostgreSQL.
Crear funciones PL/Lua para reaccionar ante eventos DDL.
Usar `trigger.event` y `trigger.tag` para identificar evento y comando.
Registrar cambios de esquema relevantes en tablas de auditoría.
Crear controles de gobierno para `CREATE`, `ALTER`, `DROP` y cambios críticos.
Diferenciar auditoría DDL de control de permisos reales.
Evitar event triggers que bloquean trabajo DBA legítimo sin proceso claro.
Integrar event triggers con gestión de cambios y revisión técnica.
Crear reportes de cambios DDL por entorno y usuario.
Realizar ejercicio de event trigger PL/Lua para auditoría de cambios de esquema.
Entender qué módulos están disponibles en PL/Lua trusted.
Revisar restricciones sobre `package`, `require`, `os`, entorno global y escritura de globales.
Usar `pllua.trusted` para exponer módulos aprobados en el sandbox.
Evaluar módulos como `lpeg` o `re` cuando el administrador los autoriza.
Analizar riesgos de módulos Lua o C que acceden a IO, red o estado global.
Definir allowlist de módulos permitidos por entorno.
Evitar incorporar módulos complejos sin revisión de seguridad y estabilidad.
Documentar inicialización `on_trusted_init`, `on_untrusted_init` y cambios de configuración.
Probar funciones después de modificar módulos disponibles.
Realizar ejercicio de evaluación de módulo Lua antes de habilitarlo.
Medir impacto de funciones PL/Lua dentro de consultas SQL reales.
Usar `EXPLAIN` y `EXPLAIN ANALYZE` para revisar coste y planes de ejecución.
Comparar SQL nativo, PL/pgSQL, PL/Lua y alternativas externas.
Evitar funciones llamadas por fila sobre tablas grandes sin benchmark.
Analizar uso de memoria en arrays, JSONB, cursores, SRFs y estructuras Lua.
Revisar garbage collection y opciones de configuración relacionadas.
Evitar cargar datasets grandes en tablas Lua si puede resolverse set-based.
Reducir SPI repetitivo mediante prepared statements y consultas set-based.
Crear benchmarks reproducibles con datos representativos.
Realizar ejercicio de optimización de función PL/Lua lenta.
Comprender el ciclo de vida de intérpretes Lua dentro de sesiones PostgreSQL.
Revisar diferencias entre estado local de función, upvalues, globales restringidos y módulos.
Evitar estado mutable que genera resultados impredecibles entre llamadas.
Analizar impacto de `shared_preload_libraries` y prebuilt interpreters si se usan.
Controlar cachés locales, planes preparados y valores inicializados una vez.
Probar funciones en sesiones concurrentes y con distintos roles.
Evitar comportamiento dependiente de orden de ejecución o estado residual.
Documentar cualquier uso de caché, upvalues o estado persistente.
Crear estrategia de invalidación cuando cambian reglas o tablas auxiliares.
Realizar ejercicio de diagnóstico de estado persistente y concurrencia.
Definir quién puede crear, modificar y ejecutar funciones PL/Lua.
Separar permisos de desarrollo, despliegue, ejecución y administración.
Revisar riesgos de funciones `SECURITY DEFINER` con SPI, triggers y datos sensibles.
Fijar `search_path` seguro en funciones privilegiadas.
Evitar que funciones PL/Lua expongan datos que el usuario no debería consultar.
Controlar módulos, untrusted language, IO, red y acceso al entorno.
Crear checklist de revisión de seguridad antes de producción.
Auditar owners, grants, esquemas y funciones críticas.
Documentar datos tratados y roles autorizados.
Realizar ejercicio de hardening de una función PL/Lua con permisos elevados.
Crear tests SQL para funciones PL/Lua con entradas y salidas esperadas.
Probar nulos, strings vacíos, arrays, composites, JSONB, errores y límites.
Probar triggers con INSERT, UPDATE, DELETE, TRUNCATE y rollback.
Validar event triggers con comandos DDL controlados.
Crear datasets reproducibles para pruebas funcionales y de rendimiento.
Comparar resultados con implementación SQL, PL/pgSQL o referencia externa.
Automatizar tests mediante scripts SQL, pgTAP o pipeline propio.
Evitar desplegar funciones PL/Lua sin pruebas de regresión.
Crear pruebas específicas de permisos, `SECURITY DEFINER` y datos sensibles.
Realizar ejercicio de suite de tests para funciones, triggers y event triggers.
Organizar funciones PL/Lua en archivos SQL versionados.
Usar herramientas como Flyway, Liquibase, Sqitch o migraciones propias.
Gestionar cambios de firma, tipos de retorno, permisos, triggers y dependencias.
Crear scripts reversibles cuando el cambio lo permite.
Evitar modificar funciones manualmente en producción sin trazabilidad.
Documentar versión de PostgreSQL, PL/Lua, Lua, LuaJIT, módulos y configuración.
Crear release notes para funciones y triggers críticos.
Preparar despliegues por entornos: desarrollo, test, staging y producción.
Coordinar revisión con DBA, backend, seguridad y arquitectura.
Realizar ejercicio de migración versionada de funciones PL/Lua.
Crear contenedor PostgreSQL con PL/Lua disponible o compilado durante el build.
Instalar Lua, LuaJIT, headers, `pg_config`, toolchain y extensión en imagen controlada.
Levantar base, extensión, esquemas, datos y funciones con Docker Compose.
Ejecutar scripts de migración en entornos limpios.
Ejecutar tests automáticos en pipeline CI/CD.
Validar disponibilidad de `pllua` antes de aplicar funciones.
Gestionar configuración y secretos sin incrustarlos en código.
Publicar reportes de tests, logs de migración y documentación técnica.
Evitar dependencias manuales difíciles de reproducir.
Realizar ejercicio de pipeline local para PL/Lua con tests automáticos.
Registrar errores, tiempos y frecuencia de funciones PL/Lua críticas.
Medir impacto de funciones en consultas lentas y escrituras.
Integrar logs PostgreSQL con herramientas corporativas de observabilidad.
Crear auditoría específica para triggers y event triggers.
Relacionar función, tabla, trigger, owner, proceso y criticidad.
Evitar logs con datos personales, secretos o payloads innecesarios.
Crear runbooks para errores de extensión, permisos, SPI, módulos, triggers y rendimiento.
Revisar periódicamente funciones sin uso o con coste elevado.
Crear alertas ante incremento de errores o degradación de escritura.
Realizar ejercicio de diagnóstico operativo de incidencia PL/Lua.
Crear inventario de funciones, procedimientos, triggers, event triggers y permisos.
Identificar tablas críticas afectadas por lógica PL/Lua.
Analizar dependencias entre funciones, vistas, triggers, jobs y aplicaciones externas.
Revisar uso real mediante logs, catálogos y consultas de actividad.
Clasificar funciones por criticidad, riesgo, complejidad y posibilidad de migración.
Detectar funciones huérfanas, duplicadas, sin owner o sin documentación.
Crear matriz de decisión: mantener, refactorizar, migrar, retirar o aislar.
Preparar informe técnico para DBA, arquitectura y responsables de aplicación.
Priorizar quick wins frente a migraciones complejas.
Realizar ejercicio de auditoría completa de esquema con PL/Lua heredado.
Identificar funciones candidatas a PL/pgSQL por ser lógica SQL simple.
Migrar parsing o validaciones complejas a PL/Python o PL/Rust cuando aporta valor.
Mover lógica de negocio extensa a servicios backend o jobs externos.
Sustituir triggers por constraints, generated columns, reglas SQL o pipelines cuando procede.
Crear pruebas de equivalencia antes de migrar.
Diseñar migración por fases: inventario, cobertura, ejecución paralela, corte y retirada.
Evitar reescrituras sin entender comportamiento real de producción.
Documentar diferencias funcionales y riesgos aceptados.
Preparar rollback por función migrada.
Realizar ejercicio de migración de función PL/Lua a PL/pgSQL o servicio externo.
Definir si PL/Lua se permite para nuevo desarrollo, mantenimiento o solo sistemas heredados.
Crear estándar de naming, estructura, documentación, errores, SPI, triggers y módulos.
Establecer owners técnicos y funcionales para cada función.
Clasificar funciones por criticidad, datos tratados, frecuencia de uso y riesgo.
Definir proceso de revisión con DBA, seguridad, backend y arquitectura.
Crear catálogo corporativo de funciones PL/Lua.
Revisar periódicamente permisos, `SECURITY DEFINER`, PL/LuaU y event triggers.
Establecer criterios de retirada o sustitución por tecnologías más adecuadas.
Evitar crecimiento descontrolado de lógica Lua dentro de PostgreSQL.
Realizar ejercicio de política corporativa para PL/Lua.
Evaluar validaciones simples que podrían resolverse con constraints, domains o PL/pgSQL.
Analizar parsing ligero donde Lua es suficiente y mantenible.
Revisar triggers de auditoría y alternativas nativas.
Evaluar normalización de datos maestros y limpieza de formatos.
Desaconsejar llamadas externas desde funciones de base de datos.
Desaconsejar lógica de negocio extensa dentro de triggers.
Identificar casos donde PL/pgSQL, PL/Python o PL/Rust serían más defendibles.
Crear matriz de riesgo por caso de uso.
Documentar criterios de decisión para nuevos desarrollos.
Realizar ejercicio de clasificación de casos viables, dudosos y descartables.
Recibir una base PostgreSQL de laboratorio con funciones PL/Lua, triggers y tablas de negocio.
Crear entorno reproducible con Docker, PostgreSQL, PL/Lua, esquemas, datos y scripts de migración.
Habilitar `pllua` y documentar instalación, permisos, compatibilidad y validación inicial.
Crear inventario de funciones, procedimientos, triggers, event triggers, owners y dependencias.
Implementar función escalar PL/Lua para normalización de texto o identificadores.
Implementar función con nulos, validaciones y retornos controlados.
Implementar función con composite type y retorno estructurado.
Implementar función set-returning usando coroutines y `coroutine.yield`.
Crear función con `spi.execute` para consultar tabla auxiliar.
Optimizar consulta interna usando `spi.prepare`, `stmt:execute` y caché local.
Implementar cursor para lectura progresiva de resultados.
Crear función sobre JSONB para validar payloads y extraer campos normalizados.
Implementar trigger `BEFORE` para validación y normalización de datos.
Implementar trigger `AFTER` para auditoría controlada de cambios.
Crear event trigger PL/Lua para registrar comandos DDL relevantes.
Añadir manejo robusto de errores con `pcall`, logging y mensajes claros.
Usar subtransacciones cuando el caso requiera recuperación parcial.
Crear tests SQL de funciones, triggers, event triggers, JSONB, nulos y errores esperados.
Medir rendimiento con `EXPLAIN ANALYZE` y detectar puntos de mejora.
Preparar scripts de migración, rollback, documentación y runbook operativo.
Presentar la solución final defendiendo seguridad, rendimiento, trazabilidad, gobierno y estrategia de modernización.
Pensado para quienes deben dominar PL/Lua en su día a día
Desarrolladores backend y full stack
Este curso encaja con desarrolladores que trabajan con PostgreSQL y necesitan ampliar las capacidades de la base mediante Lua. Aprenderán a crear funciones limpias, triggers, consultas internas, validaciones y lógica procedural con criterios de seguridad y rendimiento.
DBAs y administradores PostgreSQL
Los administradores podrán evaluar cuándo habilitar PL/Lua, cómo instalarlo, cómo diferenciar PL/Lua trusted y PL/LuaU, cómo revisar permisos, cómo medir impacto y cómo controlar funciones que ejecutan lógica dentro del servidor.
Data engineers y equipos de integración
Los perfiles de datos podrán usar PL/Lua para normalización, parsing, validación, transformación, procesamiento JSONB, funciones set-returning y reglas cercanas al dato, siempre con pruebas, versionado y trazabilidad.
Arquitectos de software y datos
Los arquitectos podrán decidir si una lógica debe vivir en SQL, PL/pgSQL, PL/Lua, PL/Python, PL/Rust, una extensión externa o un servicio desacoplado, aplicando criterios de arquitectura, seguridad y soporte.
Equipos DevOps, plataforma y sistemas
Los perfiles de plataforma aprenderán a preparar entornos reproducibles, compilar la extensión, gestionar dependencias Lua, contenedores, CI/CD, migraciones, logs, backups y soporte operativo.
Equipos de seguridad y compliance técnico
Los perfiles de seguridad podrán revisar sandbox trusted, módulos permitidos, PL/LuaU, funciones `SECURITY DEFINER`, datos sensibles, permisos, módulos Lua, auditoría y gobierno de código procedural.
Empresas que ya han formado a sus equipos
Experiencias reales de equipos que ya han trabajado con nosotros.
+16
años de liderazgo
+3.500
empresas formadas
Nuestra empresa decidió contratar formación con Imagina aprovechando los créditos de FUNDAE, y fue una gran decisión. La modalidad online nos permitió adaptar los horarios a nuestro equipo. La formación ha sido práctica, clara y útil para el día a día. Es sencillo de gestionar y los resultados son excepcionales.
Hugo Gutiérrez
Analista Financiero
Gracias a Imagina, la eficiencia de nuestras sesiones de capacitación ha mejorado drásticamente. Es sencillo de usar y los resultados son excepcionales.
Luis Martínez
Administrativo
Gracias al aula virtual de Imagina siempre son capaces de adaptar los cursos a nuestras necesidades. El contenido fue muy completo y práctico.
Elena Pérez
Responsable de Recursos Humanos
Mejor de lo esperado, la modalidad online se adapta a nuestros horarios. La ayuda con la bonificación FUNDAE hizo todo más fácil. Práctico y necesario.
Alejandro Sánchez
Director de Operaciones
Nuestra empresa decidió contratar formación con Imagina aprovechando los créditos de FUNDAE, y fue una gran decisión. La modalidad online nos permitió adaptar los horarios a nuestro equipo. La formación ha sido práctica, clara y útil para el día a día. Es sencillo de gestionar y los resultados son excepcionales.
Hugo Gutiérrez
Analista Financiero
Gracias a Imagina, la eficiencia de nuestras sesiones de capacitación ha mejorado drásticamente. Es sencillo de usar y los resultados son excepcionales.
Luis Martínez
Administrativo
Gracias al aula virtual de Imagina siempre son capaces de adaptar los cursos a nuestras necesidades. El contenido fue muy completo y práctico.
Elena Pérez
Responsable de Recursos Humanos
Mejor de lo esperado, la modalidad online se adapta a nuestros horarios. La ayuda con la bonificación FUNDAE hizo todo más fácil. Práctico y necesario.
Alejandro Sánchez
Director de Operaciones
480.000 alumnos formados en Imagina
Resolvemos todas tus dudas sobre nuestra formación en PL/Lua
Explora las respuestas a las preguntas que guian a nuestra comunidad. Aqui encontraras claridad sobre como funciona todo, desde el acceso hasta los detalles de los cursos. Si buscas respuestas, este es el lugar para comenzar.
PL/Lua es un lenguaje procedural externo para PostgreSQL que permite escribir funciones, procedimientos y triggers usando Lua dentro de la base de datos.
No forma parte del conjunto base principal. PostgreSQL incluye PL/pgSQL, PL/Tcl, PL/Perl y PL/Python; PL/Lua se mantiene como proyecto externo.
PL/Lua es la variante trusted con sandbox y restricciones. PL/LuaU es untrusted y ofrece más capacidades, pero debe reservarse a casos muy controlados.
Sí. No hace falta ser experto, pero conviene conocer variables, tablas, funciones, `nil`, closures, coroutines, errores y manipulación de strings.
Sí. Es imprescindible conocer SQL, funciones, triggers, transacciones, permisos, tipos de datos, índices y administración básica.
No. PL/pgSQL sigue siendo la opción natural para mucha lógica SQL. PL/Lua encaja en validaciones, parsing, transformaciones y lógica ligera.
Sí. El curso incluye triggers `BEFORE`, `AFTER`, `INSTEAD OF`, por fila, por sentencia, auditoría, validación y normalización.
Sí. PL/Lua permite trabajar con event triggers para reaccionar a eventos DDL y registrar cambios de esquema.
Sí. PL/Lua ofrece acceso SPI mediante `spi.execute`, `spi.prepare`, statement objects, iteradores, cursores y consultas parametrizadas.
Sí. El curso incluye procesamiento, validación y normalización de JSONB desde funciones PL/Lua.
Son funciones que devuelven múltiples filas o valores, normalmente usando coroutines y `coroutine.yield`.
Solo con revisión. En PL/Lua trusted el administrador debe decidir qué módulos se exponen al sandbox y evaluar riesgos de IO, red, C y estado global.
Sí. Funciones llamadas por fila, SPI repetitivo, triggers pesados o procesamiento JSONB masivo pueden degradar consultas y escrituras.
Depende del contexto. Debe compararse con PL/pgSQL, PL/Python, PL/Rust o servicios externos antes de adoptarlo.
Sí. Se trabaja entorno reproducible, scripts SQL, pruebas automáticas, migraciones, rollback y validación antes de despliegue.
Una solución PostgreSQL con PL/Lua que incluye funciones, triggers, event triggers, SPI, JSONB, tests, migraciones, Docker, documentación y runbook.
Sí. Puede adaptarse usando funciones anonimizadas, esquemas replicados, triggers reales de laboratorio y datos no sensibles.
Sí, esta formación puede ser bonificable hasta el 100% a través de FUNDAE, siempre que la empresa disponga de crédito formativo suficiente y se cumplan los requisitos de comunicación, asistencia y documentación exigidos.
¿Tienes dudas?
Estamos aqui para ayudarte
PL/Lua es un lenguaje procedural externo para PostgreSQL que permite escribir funciones, procedimientos y triggers usando Lua dentro de la base de datos.
¿Tienes dudas?
Estamos aqui para ayudarte
No forma parte del conjunto base principal. PostgreSQL incluye PL/pgSQL, PL/Tcl, PL/Perl y PL/Python; PL/Lua se mantiene como proyecto externo.
¿Tienes dudas?
Estamos aqui para ayudarte
PL/Lua es la variante trusted con sandbox y restricciones. PL/LuaU es untrusted y ofrece más capacidades, pero debe reservarse a casos muy controlados.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. No hace falta ser experto, pero conviene conocer variables, tablas, funciones, `nil`, closures, coroutines, errores y manipulación de strings.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. Es imprescindible conocer SQL, funciones, triggers, transacciones, permisos, tipos de datos, índices y administración básica.
¿Tienes dudas?
Estamos aqui para ayudarte
No. PL/pgSQL sigue siendo la opción natural para mucha lógica SQL. PL/Lua encaja en validaciones, parsing, transformaciones y lógica ligera.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. El curso incluye triggers `BEFORE`, `AFTER`, `INSTEAD OF`, por fila, por sentencia, auditoría, validación y normalización.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. PL/Lua permite trabajar con event triggers para reaccionar a eventos DDL y registrar cambios de esquema.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. PL/Lua ofrece acceso SPI mediante `spi.execute`, `spi.prepare`, statement objects, iteradores, cursores y consultas parametrizadas.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. El curso incluye procesamiento, validación y normalización de JSONB desde funciones PL/Lua.
¿Tienes dudas?
Estamos aqui para ayudarte
Son funciones que devuelven múltiples filas o valores, normalmente usando coroutines y `coroutine.yield`.
¿Tienes dudas?
Estamos aqui para ayudarte
Solo con revisión. En PL/Lua trusted el administrador debe decidir qué módulos se exponen al sandbox y evaluar riesgos de IO, red, C y estado global.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. Funciones llamadas por fila, SPI repetitivo, triggers pesados o procesamiento JSONB masivo pueden degradar consultas y escrituras.
¿Tienes dudas?
Estamos aqui para ayudarte
Depende del contexto. Debe compararse con PL/pgSQL, PL/Python, PL/Rust o servicios externos antes de adoptarlo.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. Se trabaja entorno reproducible, scripts SQL, pruebas automáticas, migraciones, rollback y validación antes de despliegue.
¿Tienes dudas?
Estamos aqui para ayudarte
Una solución PostgreSQL con PL/Lua que incluye funciones, triggers, event triggers, SPI, JSONB, tests, migraciones, Docker, documentación y runbook.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. Puede adaptarse usando funciones anonimizadas, esquemas replicados, triggers reales de laboratorio y datos no sensibles.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí, esta formación puede ser bonificable hasta el 100% a través de FUNDAE, siempre que la empresa disponga de crédito formativo suficiente y se cumplan los requisitos de comunicación, asistencia y documentación exigidos.
¿Tienes dudas?
Estamos aqui para ayudarte
Descubre nuestros tutoriales
Qué es Microsoft Power Automate y para qué sirve
November 05, 2025Descubre Que es Microsoft Power Automate o Microsoft Flow: Guía Completa de la Herramienta de Automatización de Tareas de Microsoft
¿Qué es Kali Linux y para qué se utiliza?
June 17, 2025Descubre cómo instalar Kali Linux fácilmente y empieza a usar esta herramienta esencial para pruebas de penetración y análisis forense digital.
Top 5 Cursos Bonificados para Trabajadores en 2025
June 09, 2025Conoce los cursos bonificados para trabajadores 2025 más demandados y cómo puedes inscribir a tus empleados para aprovechar los créditos formativos de FUNDAE.
5 Cursos Obligatorios para cualquier Empresa en 2025
May 26, 2025Conoce los cursos obligatorios para empresas 2025 y cómo asegurar que tu organización cumpla con las normativas actuales sin riesgos de sanciones.
Cursos Bonificados por Fundación Tripartita en 2025
May 05, 2025Descubre los mejores cursos bonificados para empresas en 2025 por la Fundación Tripartita. Aumenta la productividad de tu equipo sin costes adicionales.
Diseñemos hoy el curso que tu empresa necesita
Cuéntanos tus objetivos de negocio y prepararemos una propuesta formativa bonificable totalmente ad hoc