This is a basic PHP DuckDB adapter, that executes SQL queries on large data files (CSV).
Using SQLite database & automated CSV parser.
-Its actualy a "POC" alpha version, Wokring in progress on a built-in PHP API for DuckDB-
Tested using large CSV of 1M rows 1 Go.
Note: No optimizations applied! The benchmark includes databse creation from CSV & query execution.
CPU | Memory | Disk | OS | Timing |
---|---|---|---|---|
i7 (13K) | 32 Go | SSD NVMe | Windows 10 Pro x64 | 2.19s |
Xeon (E22) | 16 Go | SSD | Linux Debian 11 | 3.58s |
i3 (3) | 8 Go | SSD | Windows 10 Pro x64 | 30.23s |
- PHP exec function
- PHP SQLite3 extension
composer require jakiboy/pducky
$price = (new Pducky\Adapter('data.csv'))->import()->single(
'SELECT `price` FROM `temp` WHERE `ean` = "0000123456789";'
);
echo $price; // 540.23$
$rows = (new Pducky\Adapter('data.csv'))->import()->query(
'SELECT * FROM `temp` LIMIT 100;'
);
echo $rows; // []
(new Pducky\Adapter('data.csv.gz'))->import('db', 'product');
- Add support for XML and other structured format
- Add support for PHP FFI extension (Optional)
- Add structured format converter
- Add header parser
- Jakiboy (Initial work)
Please give it a Star if you like the project.