En entornos de integraci?n continua CI la calidad de datos es clave para evitar errores en producci?n y filtraciones de datos incorrectos. En este art?culo explico c?mo usar DuckDB con la extensi?n http_client para verificar que manejos de GitHub almacenados en una tabla realmente existen, ideal para añadir validaciones en pipelines de CI.
En Q2BSTUDIO, empresa de desarrollo de software y aplicaciones a medida, ayudamos a implantar controles autom?ticos de calidad de datos en pipelines CI y a integrar estas comprobaciones con soluciones de automatizaci?n de procesos y despliegues en la nube.
Resumen r?pido de los pasos necesarios para usar DuckDB y http_client
1 Instalar y cargar la extensi?n INSTALL http_client FROM community; LOAD http_client;
2 Crear una tabla de ejemplo con manejos de GitHub CREATE OR REPLACE TABLE person_gh_member (sam_accountname varchar PRIMARY KEY, gh_member varchar NOT NULL); INSERT INTO person_gh_member (sam_accountname, gh_member) VALUES (adriens, adriens), (jdoe, johndoe), (asmith, annasmithRRRRR);
3 Consultar el estado HTTP de cada manejador usando http_get y convertir el c?digo de estado CREATE OR REPLACE VIEW v_person_gh_status AS SELECT sam_accountname, gh_member, 'https://github.com/' || gh_member AS gh_url, CAST(http_get(gh_url).status AS INTEGER) AS http_gh_status FROM person_gh_member;
4 Detectar manejos no existentes o con respuesta distinta de 200 SELECT * FROM v_person_gh_status WHERE http_gh_status <> 200;
Si quieres que la comprobaci?n sea parte del propio esquema y falle en inserciones cuando la URL no existe puedes crear una tabla con restricciones CHECK que verifiquen la estructura de la URL y que el c?digo devuelto sea 200. Ejemplo de creaci?n e inserci?n con comprobaci?n
CREATE OR REPLACE TABLE lint_gh_handle (gh_handle varchar PRIMARY KEY, gh_url varchar NOT NULL UNIQUE CHECK (gh_url LIKE 'https://github.com/%'), gh_status integer CHECK (gh_status = 200)); INSERT INTO lint_gh_handle (gh_handle, gh_url, gh_status) SELECT gh_member, 'https://github.com/' || gh_member AS gh_url, CAST(http_get(gh_url).status AS INTEGER) AS gh_status FROM person_gh_member;
Estas validaciones permiten integrar linter de datos en GitHub Actions usando acciones como GitHub Duckdb Action para ejecutar las sentencias SQL durante la fase de CI y bloquear merges si los datos no cumplen las reglas de calidad.
En Q2BSTUDIO ofrecemos implementaciones a medida que combinan software a medida, servicios cloud aws y azure, y soluciones de inteligencia de negocio y power bi para convertir estas comprobaciones en alertas y paneles operativos. Tambi?n desarrollamos proyectos de inteligencia artificial y agentes IA a medida para automatizar detecci?n de anomal?as y enriquecer la calidad de datos, siempre teniendo en cuenta la ciberseguridad para proteger tu informaci?n y procesos.
Si necesitas ayuda para implantar estas pruebas en tus pipelines CI o para desarrollar aplicaciones a medida que incorporen validaci?n de datos, IA para empresas y despliegue seguro en la nube contacta con nosotros para una soluci?n personalizada.