jakiboy/pducky
Composer 安装命令:
composer require jakiboy/pducky
包简介
Run fast SQL queries on massive datasets (CSV, JSON, and Parquet) powered by DuckDB.
README 文档
README
High-performance PHP adapter for DuckDB that executes SQL queries directly on massive datasets (CSV, JSON, Parquet) without preprocessing or imports. Features SQLite-compatible interface, FFI integration, and intelligent CSV parsing for zero-ETL analytics on files up to gigabytes in size.
Benchmark:
Tested with a large CSV dataset containing 1 million rows (150 MB) using PHP v8.3.
Note: No optimizations were applied. The benchmark includes database creation from compressed CSV and query execution.
| CPU | Memory | Disk | OS | Timing |
|---|---|---|---|---|
| i7 (13K) | 32 Go | NVMe | Windows 10 Pro x64 | 2.19s |
| i7 (8) | 8 Go | NVMe | Windows 10 Pro x64 | 3.054s |
| Xeon (E22) | 16 Go | SSD | Linux Debian 11 | 3.58s |
| i3 (3) | 8 Go | SSD | Windows 10 Pro x64 | 30.23s |
Requirements:
- PHP exec function
- PHP SQLite3 extension
- PHP FFI extension (Used by Loader)
Install:
composer require jakiboy/pducky vendor/bin/pducky install-binaries
Test:
git clone https://github.com/Jakiboy/pducky.git cd pducky && composer dump-autoload composer install-binaries cd examples && bash generate.sh bash test.sh
Examples:
Fetch single value:
$price = (new Pducky\Adapter('data.csv'))->import()->single( 'SELECT `price` FROM `temp` WHERE `ean` = "4567890123456";' ); // 374.08$
Fetch rows:
$rows = (new Pducky\Adapter('data.csv'))->import()->query( 'SELECT * FROM `temp` LIMIT 100;' ); // []
Create database:
Create database data with table product from a compressed CSV file data.csv.gz.
(new Pducky\Adapter('data.csv.gz'))->import('data', 'product');
Loader query (FFI):
$rows = (new Pducky\Loader())->connect('data.db') ->importCsv('data.csv', 'product') ->query('SELECT * FROM product LIMIT 100;'); // []
References:
Authors:
- Jakiboy (Initial work)
⭐ Support:
Skip the coffee! If you like the project, a Star would mean a lot.
jakiboy/pducky 适用场景与选型建议
jakiboy/pducky 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 25 次下载、GitHub Stars 达 4, 最近一次更新时间为 2023 年 11 月 28 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「sql」 「json」 「xml」 「csv」 「sqlite3」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jakiboy/pducky 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jakiboy/pducky 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jakiboy/pducky 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Kinikit - PHP Application development framework MVC component
ext-json wrapper with sane defaults
Query filtering in your frontend
A package to cast json fields, each sub-keys is castable
Database/ORM-agnostic query construction helper
swagger-php - Generate interactive documentation for your RESTful API using phpdoc annotations
统计信息
- 总下载量: 25
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 26
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-11-28

