<?php
declare(strict_types=1);
error_reporting(E_ALL);
ini_set('display_errors', 'On');
include __DIR__ . '/../vendor/autoload.php';
include __DIR__ . '/helpers/ConsoleLogger.php';
include __DIR__ . '/helpers/ConsoleTable.php';
use Level23\Druid\DruidClient;
use Level23\Druid\Context\QueryContext;
use Level23\Druid\Types\OrderByDirection;
try {
$client = new DruidClient(['router_url' => 'http://127.0.0.1:8888']);
// Enable this to see some more data
//$client->setLogger(new ConsoleLogger());
// Build a select query
$builder = $client->query('wikipedia')
->interval('2015-09-12 00:00:00', '2015-09-13 00:00:00')
->select(['__time', 'channel', 'user'])
->metrics(['deleted', 'added'])
->orderByDirection(OrderByDirection::DESC)
->limit(10);
// Example of setting query context. It can also be supplied as an array in the selectQuery() method call.
$context = new QueryContext();
$context->setPriority(100);
// Execute the query.
$response = $builder->selectQuery($context);
// Display the result as a console table.
new ConsoleTable($response->data());
echo "Identifier for page 2: " . var_export($response->pagingIdentifier(), true) . "\n\n";
/**
* Now, request "page 2".
*/
$builder->pagingIdentifier($response->pagingIdentifier());
// Execute the query.
$response = $builder->selectQuery($context);
// Display the result as a console table.
new ConsoleTable($response->data());
echo "Identifier for page 3: " . var_export($response->pagingIdentifier(), true) . "\n\n";
} catch (Exception $exception) {
echo "Something went wrong during retrieving druid data\n";
echo $exception->getMessage() . "\n";
echo $exception->getTraceAsString();
}
|