Size: a a a

ClickHouse не тормозит

2020 August 21

l

lnuynxa in ClickHouse не тормозит
Dew Oughter
привет, подскажите пожалуйста как достать из массива элементы, индексы которых лежат в другом массиве? массивы разной длины
например есть массив значений [a,b,c,d,e,f,g] и массив индексов [2,5] как мне из первого массива сделать массив [b,e]?
оба массива у меня числовые
можно через SELECT arrayFilter((x,y)-> y IN ([2,5]), ['a','b','c','d','e','f','g'], arrayEnumerate(['a','b','c','d','e','f','g']))
источник

DO

Dew Oughter in ClickHouse не тормозит
lnuynxa
можно через SELECT arrayFilter((x,y)-> y IN ([2,5]), ['a','b','c','d','e','f','g'], arrayEnumerate(['a','b','c','d','e','f','g']))
проблема в том что индексы я считаю отдельно с помощью arrayFilter( i, j -> j <> 0, arrayEnumerate(arr), arr)
источник

l

lnuynxa in ClickHouse не тормозит
Dew Oughter
проблема в том что индексы я считаю отдельно с помощью arrayFilter( i, j -> j <> 0, arrayEnumerate(arr), arr)
Так это не проблема, объедини просто этапы, тебе эти индексы только для этого нужны?
источник

DO

Dew Oughter in ClickHouse не тормозит
lnuynxa
Так это не проблема, объедини просто этапы, тебе эти индексы только для этого нужны?
мне нужны эти индексы, чтобы выцепить соответствующие элементы из другого массива. при этом индексы эти я не могу вытянуть никак иначе
как объединить не совсем понимаю
источник

l

lnuynxa in ClickHouse не тормозит
Dew Oughter
мне нужны эти индексы, чтобы выцепить соответствующие элементы из другого массива. при этом индексы эти я не могу вытянуть никак иначе
как объединить не совсем понимаю
SELECT arrayFilter( i, j -> j <> 0, ['a','b','c','d','e','f','g'], arr)
источник

D

Dj in ClickHouse не тормозит
toUInt64()
источник

DO

Dew Oughter in ClickHouse не тормозит
lnuynxa
SELECT arrayFilter( i, j -> j <> 0, ['a','b','c','d','e','f','g'], arr)
спасибо большое)
источник

D

Dj in ClickHouse не тормозит
Dj
toUInt64()
или так если в 32 бита лезет
  select
Table2.x,
ale_locations.EventTimestamp
sta_eth_mac
from default.ale_locations
asof join (select
           distinct
           toUInt32(EventTimestamp + 2592000) as x,
           sta_eth_mac
           from default.ale_locations
         ) as Table2 on ale_locations.sta_eth_mac = Table2.sta_eth_mac
                    and Table2.x >= ale_locations.EventTimestamp
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Denis Dorozhkin
Всем привет!
Столкнулся со странной проблемой при join distributed таблицы

select 1 as is_local, shard_num from distributed_table all inner join system.clusters using (is_local) where cluster = 'cluster' limit 1 by shard_num

Error running query: Code: 171, e.displayText() = DB::Exception: Cannot convert column `1` because it is non constant in source stream but must be constant in result (version 19.16.14.65 (official build))


Может кто подскажет как переписать чтобы оно завелось?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Denis Dorozhkin
Всем привет!
Столкнулся со странной проблемой при join distributed таблицы

select 1 as is_local, shard_num from distributed_table all inner join system.clusters using (is_local) where cluster = 'cluster' limit 1 by shard_num

Error running query: Code: 171, e.displayText() = DB::Exception: Cannot convert column `1` because it is non constant in source stream but must be constant in result (version 19.16.14.65 (official build))


Может кто подскажет как переписать чтобы оно завелось?
вообще что хотелось-то? кажется все можно сильно проще сделать
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
виртуальное поле _shard_num есть
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
select _shard_num from distributed_table
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dew Oughter
привет, подскажите пожалуйста как достать из массива элементы, индексы которых лежат в другом массиве? массивы разной длины
например есть массив значений [a,b,c,d,e,f,g] и массив индексов [2,5] как мне из первого массива сделать массив [b,e]?
оба массива у меня числовые
select arrayMap(i-> x[i], y) from (select ['a','b','c','d','e','f','g'] x, [2,5] y)
['b','e']
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
еще раз повторю "такого запроса не должно быть, индексы массивов не нужны и вредны, все можно сделать без них"
источник

AP

Abi Palagashvili in ClickHouse не тормозит
скажите, а на уже созданную таблицу нельзя навесить TTL правило?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Abi Palagashvili
скажите, а на уже созданную таблицу нельзя навесить TTL правило?
alter table modify ttl
источник

DP

Dmitry Pitik in ClickHouse не тормозит
Abi Palagashvili
скажите, а на уже созданную таблицу нельзя навесить TTL правило?
источник

AP

Abi Palagashvili in ClickHouse не тормозит
источник

AK

Andrii Kakoichenko in ClickHouse не тормозит
Пробую лить с питона в CH при помощи https://github.com/mymarilyn/clickhouse-driver
Запросы вида insert into...values, и потом отдельным параметром питоновский объект на 1М строк. Скрипт запущен под виндой.

Получаю перфоманс в 20 раз ниже, чем импортируя csv при помощи clickhouse-client из под линукса. Ни одно ядро при этом не загружено существенно на клиенте.

Стоит ли искать проблемы в коде/работе сети, или это и есть ожидаемый результат.
источник

S

Slach in ClickHouse не тормозит
Andrii Kakoichenko
Пробую лить с питона в CH при помощи https://github.com/mymarilyn/clickhouse-driver
Запросы вида insert into...values, и потом отдельным параметром питоновский объект на 1М строк. Скрипт запущен под виндой.

Получаю перфоманс в 20 раз ниже, чем импортируя csv при помощи clickhouse-client из под линукса. Ни одно ядро при этом не загружено существенно на клиенте.

Стоит ли искать проблемы в коде/работе сети, или это и есть ожидаемый результат.
это ожидаемый результат, "питоновский объект" приходится сериализовать и передавать по сети
clickhouse-client из питона + CSV это всегда будет быстрее чем питон
источник