{"repo":"bpolaszek/bentools-etl","free":true,"listed":false,"github":"https://github.com/bpolaszek/bentools-etl","clone":"git clone https://github.com/bpolaszek/bentools-etl.git","description":"PHP ETL (Extract / Transform / Load) library with SOLID principles + almost no dependency.","language":"PHP","stars":128,"topics":["php","etl","loop","extract","transform","load","pattern","extractor","transformer","loader"],"license":"MIT","category":"data-pipelines","readme_excerpt":"Okay, so you heard about the Extract / Transform / Load pattern, and you're looking for a PHP library to do the stuff. Alright, let's go! bentools/etl is a versatile PHP library for implementing the Extract, Transform, Load (ETL) pattern, designed to streamline data processing tasks. Table of Contents ----------------- - Concepts - Installation - Getting started - The EtlState object - Skipping items - Stopping the workflow - Using events - Flush frequency and early flushes - Advanced Usage - Creating your own Extractor / Transformers / Loaders - Difference between yield and return in transformers - Batch transforms - Next tick - Chaining extractors / transformers / loaders - Reading from STDIN / Writing to STDOUT - Instantiators - Using ReactPHP - Recipes - Contributing - License Concepts -------- Let's cover the basic concepts: - Extract : you have a source of data (a database, a CSV file, whatever) - an extractor is able to read that data and provide an iterator of items - Transform : apply transformation to each item. A transformer may generate 0, 1 or several items to load (for example, 1 item may generate multiple SQL queries) - Load : load transformed item to the destination. For example, extracted items have been transformed to SQL queries, and your loader will run those queries against your database. Installation ------------ [!WARNING] Current version (4.0) is a complete redesign and introduces significant BC (backward compatibility) breaks. Avoid upgrading from ^2.","default_branch":null,"files":null,"tree":[],"storefront":"/r/bpolaszek","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/bpolaszek/bentools-etl/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."}