À ce stade, j'ai participé à 9 hackathons, l'un d'eux étant international, gagnant même à 4 d'entre eux. Là encore, lorsque mes juniors Dhruv et Tushar m'ont parlé d'un hackathon spécifique à Golang, j'ai entraîné Harsh avec nous parce que pourquoi pas. Et pas seulement Harsh, j'ai entraîné 40 personnes de notre équipe Point Blank, ce qui a fini par faire du hackathon notre propre compétition interne haha.
Nous tous dans notre équipe GoGoingGone (lmao) avons eu une bonne expérience de travail avec Golang, mais nous voulions faire plus que simplement créer un autre outil. Nous voulions innover. C'est à ce moment-là que l'idée est venue : créons un mini-langage pour définir des pipelines de données dynamiques et configurables.
Je m'appelle Akash Singh, étudiant en troisième année d'ingénierie et contributeur Open Source de Bangalore.
Voici mon LinkedIn, GitHub et Twitter
Je m'appelle SkySingh04 en ligne.
Fractal a commencé comme un outil de traitement de données permettant une migration transparente des systèmes existants (comme les bases de données SQL et les fichiers CSV) vers des plates-formes modernes telles que MongoDB ou AWS S3. Mais nous voulions plus qu’un simple outil ETL. L'idée était de le rendre très flexible et convivial, permettant aux utilisateurs de définir des validation et des règles de transformation avec une syntaxe simple et déclarative : un mini-langage dans l'outil.
Nous avons observé que la plupart des outils dans le domaine des pipelines de données reposent sur des configurations rigides ou des scripts personnalisés. Cette approche nécessite souvent une expertise importante en programmation, ce qui limite l'accessibilité pour les non-développeurs. Un mini-langage déclaratif fournit :
Ce mini-langage ne visait pas à réinventer la roue, mais à fournir une abstraction pour rationaliser les transformations et les validations des données.
Lorsque cela est combiné avec une simple configuration de fichier yaml, nous avons pensé avoir atteint le but de créer un pipeline de données facile à configurer, capable de traiter les données d'une source à une autre à grande échelle.
Nous avons conçu la syntaxe pour qu'elle soit simple mais expressive, en nous concentrant sur deux opérations principales :
FIELD("age") TYPE(INT) RANGE(18, 65) FIELD("email") MATCHES(EMAIL_REGEX) FIELD("status") IN ("active", "inactive")
RENAME("old_field", "new_field") MAP("status", {"0": "inactive", "1": "active"}) ADD_FIELD("processed_at", CURRENT_TIME()) IF FIELD("age") > 50 THEN ADD_FIELD("senior_discount", TRUE)
Cette abstraction a permis aux utilisateurs de traiter divers ensembles de données avec un minimum d'effort, améliorant ainsi la productivité et réduisant la complexité.
En train de déterminer comment créer le lexer et l'analyseur de ce langage, l'équipe de GoFr.dev nous a tous emmenés à l'étage pour une séance de lutte contre le stress, pleine de sharayis et de jam sessions de fin de soirée !
Le hackathon ne consistait pas seulement à créer le mini-langage. Nous avons également dû construire l'infrastructure environnante, en veillant à ce que Fractal soit :
Nous avons divisé le travail en quatre modules :
Malgré notre solide performance au hackathon GO for GOFR, nous avons été confrontés à un défi critique lors de l'évaluation finale. Les juges ont demandé une démonstration en direct en plus de notre démo enregistrée, et malheureusement, nous avons rencontré un bug inattendu dans la logique de notre analyseur pendant l'exécution en direct. Compte tenu de la complexité de la création d'un analyseur personnalisé robuste en seulement 24 heures, il s'agissait d'une fonctionnalité ambitieuse à développer, et même si notre démo enregistrée a présenté ses fonctionnalités, atteindre une précision de 100 % dans des contraintes de temps s'est avéré difficile. Ce contretemps nous a finalement coûté le premier prix. Cependant, nos efforts étaient toujours très appréciés, et la vision claire et la prestation convaincante de notre équipe nous ont valu l'honneur du « Meilleur pitch », soulignant notre potentiel et notre ingéniosité.
Les hackathons consistent souvent à repousser les limites et à explorer des territoires inexplorés. Fractal était notre tentative de redéfinir le fonctionnement des outils de traitement de données, en les rendant accessibles, modulaires et conviviaux pour les développeurs.
Je n'aurais pas pu demander à un groupe de personnes partageant les mêmes idées de travailler avec moi sur ce projet, des coéquipiers absolument meilleurs et travailleurs, sans l'ombre d'un doute. Dans l'attente de ce qui m'amène à mon prochain hackathon, oserais-je dire, un hackathon basé sur RUST ? xD
Découvrez Fractal sur GitHub
Fractal est un outil de traitement de données flexible et configurable construit avec GoFr et Golang. Fractal est conçu pour gérer l'ingestion de données provenant de plusieurs sources, appliquer des transformations et des validations puissantes et fournir des résultats vers un large éventail de destinations. Avec Fractal, vous pouvez automatiser des flux de données complexes sans avoir à gérer des détails de bas niveau Voici la documentation pour mettre en place une nouvelle intégration dans votre projet :
La syntaxe personnalisée permet aux utilisateurs de :
Les règles peuvent être écrites pour n'importe quelle source ou destination de données, telles que JSON, YAML, CSV, Bases de données SQL, Courtiers de messages, ou Cloud Prestations.
Les règles de validation garantissent que les données répondent à des exigences spécifiques en matière de qualité et d'intégrité.
Pitch Deck : Lien vers le lecteur
Ou essayez-le vous-même et dites-nous ce que vous en pensez !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!