pixelfederation/druid-php

v2.0 2017-06-16 12:38 UTC

This package is auto-updated.

Last update: 2024-08-27 03:23:17 UTC


README

此库提供了一个 Druid PHP 驱动程序。

许可证

安装

此库的安装使用 composer。有关 composer 文档,请参阅 getcomposer.org

将以下内容放入您的 composer.json 文件中

{
    "require": {
        "pixelfederation/druid-php": "dev-master"
    }
}

当前状态

目前此驱动程序支持 GroupBy, TopNTimeseries 聚合类型,以及 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

待办事项

  1. 查询类型
    • 元数据查询
      • 时间边界
      • 段元数据
      • 数据源元数据
  2. 组件
    • 数据源
      • 查询
    • 聚合
      • 基数聚合器