{"repo":"fab2s/YaEtl","free":true,"listed":false,"github":"https://github.com/fab2s/YaEtl","clone":"git clone https://github.com/fab2s/YaEtl.git","description":"Yet Another ETL in PHP","language":"PHP","stars":64,"topics":["etl","flow","workflow","loader","extractor","joiner","transformer","php","qualifier","php-etl"],"license":"MIT","category":"data-pipelines","readme_excerpt":"YaEtl YaEtl (\"Yay'TL\", or YetAnotherEtl) is a PHP implementation of an Extract-Transform-Load (aka ETL) workflow based on NodalFlow. ETL workflow comes handy in numerous situations where a lot of records meet with various sources, format and repositories. YaEtl extends this pattern allowing you to chain any number of E-T-L operations with some extra capabilities such as Joining and Qualifying. YaEtl can even just Extract and load with no transformation involved, or even just load or transform. If we where to acronym the workflow behind YaEtl , it could result in NEJQTL for Nodal-Extract-Join-Qualify-Transform-Load workflow. NodalFlow is the underlying and even more generic implementation of an executable directed graph upon which is build YaEtl . The directed graphs are composed of Nodes which are somehow executable, accept one parameter and may be set to return a value that will be used as argument to the next Node; or not, in which case the previous and untouched argument will be passed to the next Node up to the Flow exec argument if any. Nodes can also be traversable (data generators etc ...) in which case they will be iterated over each of their values in the flow until they run out. When a node is \"traversed\", each of the values yielded will trigger the execution of the successor Nodes with or without the yielded value as argument, depending on the traversable node properties. Each of these directed graph can be invoked by any other instance in the process as well as by","default_branch":null,"files":null,"tree":[],"storefront":"/r/fab2s","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/fab2s/YaEtl/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}