pixelfederation / druid-php
v2.0
2017-06-16 12:38 UTC
Requires
- guzzlehttp/guzzle: ^6.2
- jms/serializer: ^1.1
Requires (Dev)
- fabpot/php-cs-fixer: ^1.11
- phpmd/phpmd: ^2.4
- phpunit/php-invoker: ^1.1
- phpunit/phpunit: ^5.3
- sllh/php-cs-fixer-styleci-bridge: ^2.0
- squizlabs/php_codesniffer: ^2.6
README
此库提供了一个 Druid PHP 驱动程序。
许可证
安装
此库的安装使用 composer。有关 composer 文档,请参阅 getcomposer.org。
将以下内容放入您的 composer.json 文件中
{
"require": {
"pixelfederation/druid-php": "dev-master"
}
}
当前状态
目前此驱动程序支持 GroupBy, TopN 和 Timeseries 聚合类型,以及 Search 查询类型。欢迎每个人创建 pull requests 来实现一些缺失的功能。
此外,一些单元测试绑定在内部 Druid 实例上运行,计划将其更改为带有一些测试数据的 docker 容器。
使用方法
平均聚合
<?php use Druid\Druid; use Druid\Driver\Guzzle\Driver; use Druid\Query\AbstractQuery; use Druid\Query\Component\Granularity\PeriodGranularity; $druid = new Druid( new Driver(), [ 'scheme' => 'http', 'host' => 'localhost', 'port' => '9999', 'path' => '/druid/v2', 'proxy' => 'tcp://127.0.0.1:8080', // default null 'timeout' => 3.7, // in seconds - default null ] ); $queryBuilder = $druid->createQueryBuilder(AbstractQuery::TYPE_GROUP_BY); // or AbstractQuery::TYPE_TIMESERIES $queryBuilder->setDataSource('kpi_registrations_v1'); $queryBuilder->addInterval(new \DateTime('2000-01-01'), new \DateTime()); $granularity = new PeriodGranularity('P1D', 'UTC'); $queryBuilder->setGranularity($granularity); $queryBuilder->addAggregator($queryBuilder->aggregator()->count('count_rows')); $queryBuilder->addAggregator($queryBuilder->aggregator()->doubleSum('sum_rows', 'event_count_metric')); $queryBuilder->addAggregator($queryBuilder->aggregator()->hyperUnique('registrations', 'registrations')); // Only include for GroupBy queries $queryBuilder->addDimension('project', 'project'); $queryBuilder->addPostAggregator( $queryBuilder->postAggregator()->arithmeticPostAggregator( 'average', '/', [ $queryBuilder->postAggregator()->fieldAccessPostAggregator('sum_rows', 'sum_rows'), $queryBuilder->postAggregator()->fieldAccessPostAggregator('count_rows', 'count_rows') ] ) ); $response = $druid->send($queryBuilder->getQuery());
贡献
如果您想贡献,我们强烈建议在
./bin/setup-dev
项目目录下运行。此脚本将设置一个提交钩子,该钩子使用 PHPCS 检查 PSR/2 编码标准,并运行 PHP 检查器和 PHP Mess Detector PHPMD
待办事项
- 查询类型
- 元数据查询
- 时间边界
- 段元数据
- 数据源元数据
- 元数据查询
- 组件
- 数据源
- 查询
- 聚合
- 基数聚合器
- 数据源