flow-php / flow
PHP ETL - 提取、转换、加载 - 数据处理框架
0.9.2
2024-08-13 20:50 UTC
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- composer-runtime-api: ^2.1
- ext-bcmath: *
- ext-dom: *
- ext-hash: *
- ext-json: *
- ext-mbstring: *
- ext-xml: *
- ext-xmlreader: *
- ext-xmlwriter: *
- ext-zlib: *
- coduo/php-humanizer: ^5.0
- doctrine/dbal: ^3.6 || ^4.0
- elasticsearch/elasticsearch: ^7.6|^8.0
- google/apiclient: ^2.13
- halaxa/json-machine: ^1.0
- jawira/case-converter: ^3.4
- meilisearch/meilisearch-php: ^1.1
- monolog/monolog: ^2.0||^3.0
- packaged/thrift: ^0.15.0
- php-http/discovery: ^1.0
- psr/http-client: ^1.0
- psr/http-message: ^1.0 || ^2.0
- psr/log: ^2.0 || ^3.0
- psr/simple-cache: ^1.0 || ^2.0 || ^3.0
- symfony/console: ^6.3 || ^7.0
- webmozart/glob: ^3.0 || ^4.0
Requires (Dev)
- aeon-php/calendar: ^1.0
- fakerphp/faker: ^1.23
- fig/log-test: ^1.1
- nikic/php-parser: ^4.18
- nyholm/psr7: ^1.8
- php-http/curl-client: ^2.2
- php-http/mock-client: ^1.5
- ramsey/uuid: ^4.5
- symfony/cache: ^6.2 || ^7.0
- symfony/dotenv: ^6.2 || ^7.0
- symfony/finder: ^6.3 || ^7.0
- symfony/uid: ^6.3 || ^7.0
Replaces
- flow-php/array-dot: 0.9.2
- flow-php/azure-sdk: 0.9.2
- flow-php/doctrine-dbal-bulk: 0.9.2
- flow-php/doctrine-dbal-bulk-tools: 0.9.2
- flow-php/dremel: 0.9.2
- flow-php/etl: 0.9.2
- flow-php/etl-adapter-avro: 0.9.2
- flow-php/etl-adapter-chartjs: 0.9.2
- flow-php/etl-adapter-csv: 0.9.2
- flow-php/etl-adapter-dbal-tools: 0.9.2
- flow-php/etl-adapter-doctrine: 0.9.2
- flow-php/etl-adapter-elasticsearch: 0.9.2
- flow-php/etl-adapter-filesystem: 0.9.2
- flow-php/etl-adapter-google-sheet: 0.9.2
- flow-php/etl-adapter-http: 0.9.2
- flow-php/etl-adapter-json: 0.9.2
- flow-php/etl-adapter-logger: 0.9.2
- flow-php/etl-adapter-logger-tools: 0.9.2
- flow-php/etl-adapter-meilisearch: 0.9.2
- flow-php/etl-adapter-parquet: 0.9.2
- flow-php/etl-adapter-text: 0.9.2
- flow-php/etl-adapter-xml: 0.9.2
- flow-php/filesystem: 0.9.2
- flow-php/filesytem-azure-bridge: 0.9.2
- flow-php/monolog-http-bridge: 0.9.2
- flow-php/parquet: 0.9.2
- flow-php/parquet-viewer: 0.9.2
- flow-php/rdsl: 0.9.2
- flow-php/snappy: 0.9.2
- 1.x-dev
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.0
- 0.7.4
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.1
- 0.6.0
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.0
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.1
- 0.1.0
- dev-dependabot/composer/tools/phpstan/phpstan/phpstan-1.12.4
- dev-dependabot/composer/tools/blackfire/blackfire/php-sdk-2.5.4
- dev-1213-get-rid-of-reference-interface
This package is auto-updated.
Last update: 2024-09-20 04:50:54 UTC
README
Flow 是一个基于 PHP 的、强类型数据处理的框架,具有低内存占用。
- 📈 项目路线图
- 📜 文档
- 🛠️ 贡献
- 🚧 升级
Discord 服务器
Flow PHP
Flow 是最先进的 PHP ETL (提取、转换、加载) 框架。
<?php declare(strict_types=1); use function Flow\ETL\Adapter\Parquet\{from_parquet, to_parquet}; use function Flow\ETL\DSL\{data_frame, lit, ref, sum, to_output, overwrite}; use Flow\ETL\Filesystem\SaveMode; require __DIR__ . '/vendor/autoload.php'; data_frame() ->read(from_parquet(__DIR__ . '/orders_flow.parquet')) ->select('created_at', 'total_price', 'discount') ->withEntry('created_at', ref('created_at')->cast('date')->dateFormat('Y/m')) ->withEntry('revenue', ref('total_price')->minus(ref('discount'))) ->select('created_at', 'revenue') ->groupBy('created_at') ->aggregate(sum(ref('revenue'))) ->sortBy(ref('created_at')->desc()) ->withEntry('daily_revenue', ref('revenue_sum')->round(lit(2))->numberFormat(lit(2))) ->drop('revenue_sum') ->write(to_output(truncate: false)) ->withEntry('created_at', ref('created_at')->toDate('Y/m')) ->saveMode(overwrite()) ->write(to_parquet(__DIR__ . '/daily_revenue.parquet')) ->run();
$ php daily_revenue.php +------------+---------------+ | created_at | daily_revenue | +------------+---------------+ | 2023/10 | 206,669.74 | | 2023/09 | 227,647.47 | | 2023/08 | 237,027.31 | | 2023/07 | 240,111.05 | | 2023/06 | 225,536.35 | | 2023/05 | 234,624.74 | | 2023/04 | 231,472.05 | | 2023/03 | 231,697.36 | | 2023/02 | 211,048.97 | | 2023/01 | 225,539.81 | +------------+---------------+ 10 rows
社区贡献
Flow PHP 不仅仅是一个工具,它是一个热爱数据处理和 PHP 的开发者不断成长的社区。我们坚信协作的力量,并欢迎各种形式的贡献。无论是修复一个错误,提出一个新功能,还是改进我们的文档,您的贡献对 Flow PHP 的发展至关重要。
如何贡献
- 提交错误报告和功能请求:遇到问题或有改进的想法?在我们的 GitHub 仓库中提交一个问题。请提供清晰的描述,如果可能,提供重现错误的步骤或功能请求的详细信息。
- 代码贡献:想直接影响 Flow PHP 的发展?查看我们的问题跟踪器,了解您可以贡献的领域。从简单的修复到重大功能添加,任何帮助都受欢迎。
- 改进文档:良好的文档对任何项目的成功至关重要。如果您发现文档中的空白、错误或不清楚的地方,我们鼓励您提交更新。
- 社区支持:通过在我们的社区频道、Stack Overflow 或其他 Flow PHP 用户聚集的论坛上回答问题来帮助其他用户。
- 传播信息:分享您使用 Flow PHP 的经验,撰写博客文章、教程,或在聚会和会议上发言。让其他人知道 Flow PHP 如何帮助您的项目!
- 留下 GitHub Star:如果您发现 Flow PHP 有用,请在 GitHub 上给它一个 star。您的 star 是一种简单而强大的支持方式,有助于其他人发现我们的项目。
贡献指南
为确保协作过程顺利,我们制定了贡献指南。请在开始工作之前花点时间阅读我们的贡献指南。这将帮助您了解我们的流程,使贡献变得轻松。
有问题吗?
如果您对贡献有任何疑问,请随时联系我们。我们非常乐意提供指导和帮助。
加入我们,共同塑造PHP数据处理的未来——每一项贡献,无论大小,都意义重大!
GitHub Star
赞助商
Flow PHP由以下公司赞助:
- Blackfire - 最佳PHP性能分析和管理工具!