Extracts
Read from various data sources.
Transforms
Shape and optimize for your needs.
Loads
Store and secure in one of many available data sinks.
Examples:
composer.json
{
"name": "flow-php/examples",
"description": "Flow PHP - Examples",
"license": "MIT",
"type": "library",
"require": {
"flow-php/etl": "1.x-dev"
}
}
code.php
<?php
declare(strict_types=1);
use function Flow\ETL\DSL\{count, data_frame, from_array, ref, to_stream};
require __DIR__ . '/vendor/autoload.php';
data_frame()
->read(from_array([
['id' => 1, 'group' => 'A'],
['id' => 2, 'group' => 'B'],
['id' => 3, 'group' => 'A'],
['id' => 4, 'group' => 'B'],
['id' => 5, 'group' => 'A'],
['id' => 6, 'group' => 'B'],
['id' => 7, 'group' => 'A'],
['id' => 8, 'group' => 'B'],
['id' => 9, 'group' => 'A'],
['id' => 10, 'group' => 'B'],
]))
->groupBy(ref('group'))
->aggregate(count(ref('group')))
->write(to_stream(__DIR__ . '/output.txt', truncate: false))
->run();
Output
+-------+-------------+
| group | group_count |
+-------+-------------+
| A | 5 |
| B | 5 |
+-------+-------------+
2 rows