PHP Client для ClickHouse

650 views
Skip to first unread message

Aleksey Kuznetsov

unread,
Jun 30, 2016, 3:04:05 PM6/30/16
to ClickHouse
Алексею и всем кто принимал участие, огромное Спасибо, за этот прекрасный продукт!

Для собственных нужд нашей компании, начали разработку PHP клиента ClickHouse.
На данный момент, клиент в процессе разработки, но уже кое-что умеет.
В планах сделать мощный клиент, покрывающий максимальное кол-во потребностей, включая query builder и тд


Естественно Open-source, лицензия MIT.


Будем рады, любому участию в проекте.
Присылайте Pull requests, задавайте вопросы, пожелания, ну или просто используйте для собственных нужд.


Packagist: https://packagist.org/packages/8bitov/clickhouse-php-client
GitHub: https://github.com/8bitov/clickhouse-php-client
Документация(пока пустая): https://clickhouse.readme.io/

man...@gmail.com

unread,
Jul 4, 2016, 4:16:57 PM7/4/16
to ClickHouse
Спасибо за работу!
Немного посмотрел - выглядит довольно продвинуто.
Уверен, что это будет полезно многим.

Maxim Grabarnick

unread,
Jul 20, 2016, 4:33:05 AM7/20/16
to ClickHouse
Добрый день, пытаюсь разобраться с вашим клиентом, есть ли какой-либо рабочий пример, как какие классы подключаются, чтобы работало? Спасибо!

Aleksey Kuznetsov

unread,
Jul 20, 2016, 5:36:20 AM7/20/16
to ClickHouse
Добрый день, Максим!

Примеры использования есть в файле с тестами
https://github.com/8bitov/clickhouse-php-client/blob/master/tests/ClientTest.php

Вот, если будет проще:

<?php


$this
->client = new \ClickHouse\Client('http://127.0.0.1', 8123);

//создаем таблицу
$this
->client->execute('CREATE TABLE t (num UInt8) ENGINE = Memory');

//вставляем данные
$this
->client->insert('t', ['num'], [
[1],
[5],
[100]
]);

//или так
$this
->client->execute('INSERT INTO t VALUES (1),(5),(100)');

//получаем записи из бд
$statement
= $this->client->select('SELECT * FROM t');

//кол-во строк в результате
$statement->rowsCount()

//получаем массив записей

$all = $statement->fetchAll();

//обходим массив
foreach($all as $row)
{
  echo
$row->num; //1,5,100
}




PS: работа над клиентом временно приостановлена, но вскоре будет возобновлена.
Будет дописан весь нужный функционал, покрыт тестами, протестирован на проде и описано в документации.



среда, 20 июля 2016 г., 11:33:05 UTC+3 пользователь Maxim Grabarnick написал:
Message has been deleted

Aleksey Kuznetsov

unread,
Jul 20, 2016, 5:53:41 AM7/20/16
to ClickHouse
//запрос в  бд
$statement
= $this->client->select('SELECT * FROM t WHERE num > :max', ['max' => 3]);

//кол-во строк в результате
$statement
->rowsCount(); //2


//получаем массив записей
$all
= $statement->fetchAll();

//обходим массив
foreach($all as $row)
{

  echo $row
->num; //5,100
}



среда, 20 июля 2016 г., 12:36:20 UTC+3 пользователь Aleksey Kuznetsov написал:
Reply all
Reply to author
Forward
0 new messages