Size: a a a

ClickHouse не тормозит

2021 January 08

D

Dj in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
в смысле в колонку не ходить и не делать проверку для каждой строки? потому что уже проверено прунингом?
аха, если по всем партициям подходит
источник

D

Dj in ClickHouse не тормозит
разница внезапно есть
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
ну конечно есть , сейчас даже where 1 не оптимизируется
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Альберт Александров
Всем привет и счастливого Нового года!)

Возможно кто-то сможет подсказать по поводу функции pandas.read_sql.

Я создал таблицу и заполнил ее:

create table regions
(
   date DateTime Default now(),
   region String
)
   engine = MergeTree()
       PARTITION BY toYYYYMM(date)
       ORDER BY tuple()
       SETTINGS index_granularity = 8192;

insert into regions (region) values ('Asia'), ('Europe')

Я бы хотел получить ее содержимое функцией pandas.read_sql. Для этого я пишу следующий код:

import pandas as pd 
from sqlalchemy import create_engine


uri = 'clickhouse://default:@localhost/default'
engine = create_engine(uri)
query = 'select * from regions'
pd.read_sql(query, engine)

В ответ получаю такое:

Empty DataFrame
Columns: [2021-01-08 09:24:33, Asia]
Index: []

Шляпа.

При этом, если будет указано
clickhouse
+native
://default:@localhost/default
, то ответ будет ожидаемым:

                 date  region
0 2021-01-08 09:24:33    Asia
1 2021-01-08 09:24:33  Europe

Прошу подсказать, как побороть шляпу
так clickhouse+native это драйвер https://github.com/mymarilyn/clickhouse-driver
а просто clickhouse это другой, http драйвер, ну кривой он видимо, зачем он вам?
источник

K

Kostya in ClickHouse не тормозит
Альберт Александров
Всем привет и счастливого Нового года!)

Возможно кто-то сможет подсказать по поводу функции pandas.read_sql.

Я создал таблицу и заполнил ее:

create table regions
(
   date DateTime Default now(),
   region String
)
   engine = MergeTree()
       PARTITION BY toYYYYMM(date)
       ORDER BY tuple()
       SETTINGS index_granularity = 8192;

insert into regions (region) values ('Asia'), ('Europe')

Я бы хотел получить ее содержимое функцией pandas.read_sql. Для этого я пишу следующий код:

import pandas as pd 
from sqlalchemy import create_engine


uri = 'clickhouse://default:@localhost/default'
engine = create_engine(uri)
query = 'select * from regions'
pd.read_sql(query, engine)

В ответ получаю такое:

Empty DataFrame
Columns: [2021-01-08 09:24:33, Asia]
Index: []

Шляпа.

При этом, если будет указано
clickhouse
+native
://default:@localhost/default
, то ответ будет ожидаемым:

                 date  region
0 2021-01-08 09:24:33    Asia
1 2021-01-08 09:24:33  Europe

Прошу подсказать, как побороть шляпу
Issue с такой же проблемой на github: https://github.com/xzkostyan/clickhouse-sqlalchemy/issues/10. Но вообще вам правильно сказали. Используйте clickhouse+native
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
господа, а в базе system есть где-то ошибки запросов? если влетели на мемори лимит, то это должно быть видно где-то? вроде в query_log нету
источник

SC

Smoked Cheese in ClickHouse не тормозит
в квери логе всё
источник

SC

Smoked Cheese in ClickHouse не тормозит
мб можно в text_log посмотреть (это лог самого КХ), но эта таблица по-умолчанию выключена
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
Smoked Cheese
в квери логе всё
спасибо. Что-то сразу тормознул
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
select top 100 extract(exception, 'Exception: (.*?):') as _exception, *
from system.query_log where exception_code = 241
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
сработало
источник

АА

Альберт Александров... in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
так clickhouse+native это драйвер https://github.com/mymarilyn/clickhouse-driver
а просто clickhouse это другой, http драйвер, ну кривой он видимо, зачем он вам?
видимо нативный протокол на сервере не открыт. спасибо
источник

АА

Альберт Александров... in ClickHouse не тормозит
древний issue. спасибо
источник
2021 January 09

n🐈

nikoinlove 🐈 in ClickHouse не тормозит
а подскажите почему
select sum(users) summa, case when (retention > 180) then '>180d' ELSE '<180d' END AS ret from default.mau group by summa,ret;

говорит мне unknown function sum ?
источник

n🐈

nikoinlove 🐈 in ClickHouse не тормозит
хочу получить две суммы - у кого retention больше 180 и у кого меньше
источник

DT

Dmitry Titov in ClickHouse не тормозит
nikoinlove 🐈
а подскажите почему
select sum(users) summa, case when (retention > 180) then '>180d' ELSE '<180d' END AS ret from default.mau group by summa,ret;

говорит мне unknown function sum ?
Ну а как делать GROUP BY по агрегатной функции.
А почему кстати не воспользоваться sumIf(users,retention > 180) и тд
источник

n🐈

nikoinlove 🐈 in ClickHouse не тормозит
а саммультииф есть?)
источник

n🐈

nikoinlove 🐈 in ClickHouse не тормозит
ааа мне просто из group by надо было сумму убрать)
источник

И

Илья | 😶 ☮️... in ClickHouse не тормозит
nikoinlove 🐈
ааа мне просто из group by надо было сумму убрать)
Почему не два вложенных запроса ?
источник

n🐈

nikoinlove 🐈 in ClickHouse не тормозит
да все я уже смог, я хотел от груп бай чего-то не того:)
источник