Size: a a a

ClickHouse не тормозит

2020 September 13

АР

Андрей Романов... in ClickHouse не тормозит
Андрей Романов
Понял, буду смотреть, спасибо
В версии 20.6.6.7 поймал такой момент, что способом описанным в документации, можно загрузить только один файл


При вставке следующих падает ошибка thrift, что не получается прочесть данные.

Решил тем, что через parquet-tools объединил всё в один файл

подскажите, нужно ли об этом куда-либо сообщить?

могу прикрепить файлы и схему таблицы, куда вставлял
источник

АР

Андрей Романов... in ClickHouse не тормозит
Андрей Романов
В версии 20.6.6.7 поймал такой момент, что способом описанным в документации, можно загрузить только один файл


При вставке следующих падает ошибка thrift, что не получается прочесть данные.

Решил тем, что через parquet-tools объединил всё в один файл

подскажите, нужно ли об этом куда-либо сообщить?

могу прикрепить файлы и схему таблицы, куда вставлял
добавлю как будет время в issues
источник

D

Dj in ClickHouse не тормозит
Максим
SELECT arrayCompact(x -> (x.1), [('a', 1), ('a', 2), ('c', 3), ('a', 1)]) AS v

┌─v─────────────┐
│ ['a','c','a'] │
└───────────────┘

Всем привет.
Может кто подскажет, есть ли вариант сравнивать в arrayCompact по x.1, но выводить весь tuple ?
Ничего не понял. Дайте пример ввода и вывода
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
krn p
всем привет.
дергаю из словаря строку, которая была массивом строк, пока не сменила гендер 😄
[1, 2, 3] --строка есичо
нужно внутри этой строки найти совпадения с массивом нормального гендера.
что -то вроде
hasAny(JSONExtractArrayRaw('[1,2,3]'), [1])
проблема в том, что этой функции в моей версии кликхауса (19.7.3) нету.
вопрос: как это можно провернуть?
has( cast('[1,2,3]', 'Array[Int32]') ,
источник

kp

krn p in ClickHouse не тормозит
Dj
условно если тип был int32, то можно так
select arrayMap(x->toInt32(x),splitByChar(',',replaceOne(replaceOne('[1,2,3]','[',''),']','')));


но это ненадёжно конечно
Спасибо, взлетело вроде )
источник

D

Dj in ClickHouse не тормозит
krn p
Спасибо, взлетело вроде )
U Denny luchshe
источник

kp

krn p in ClickHouse не тормозит
Dj
U Denny luchshe
Тоже попробую, уже ушёл с работы ))
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
arrayCompact как-то недоделанный, множественные аргументы принимает, а толку 0
SELECT
   arrayCompact(x -> (x.1), [('a', 1), ('a', 2), ('c', 3), ('a', 1)] AS arr) AS v,
   arrayMap(x -> (arr[indexOf(arr.1, x)]), v) AS v1

┌─v─────────────┬─v1────────────────────────┐
│ ['a','c','a'] │ [('a',1),('c',3),('a',1)] │
└───────────────┴───────────────────────────┘


а нет, это неправильно, я затупил, надо дописывать сам arrayCompact, чтобы он работал как ArrayFilter и ArraySort

SELECT arrayCompact( (x,y) -> y, arr1, arr2) AS v
источник

М

Максим in ClickHouse не тормозит
Dj
Ничего не понял. Дайте пример ввода и вывода
есть такой массив Array(Tuple(String, DateTime)), отсортированный по DateTime.
Хочу убрать из массива последовательно повторяющиеся элементы типа String, при этом результат получить в виде Tuple
источник

D

Dj in ClickHouse не тормозит
Максим
есть такой массив Array(Tuple(String, DateTime)), отсортированный по DateTime.
Хочу убрать из массива последовательно повторяющиеся элементы типа String, при этом результат получить в виде Tuple
Ooooo eto ya muchalsa, no uje vrode funkciyu sdelali
источник

D

Dj in ClickHouse не тормозит
Potom posmotryu
источник

М

Максим in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
arrayCompact как-то недоделанный, множественные аргументы принимает, а толку 0
SELECT
   arrayCompact(x -> (x.1), [('a', 1), ('a', 2), ('c', 3), ('a', 1)] AS arr) AS v,
   arrayMap(x -> (arr[indexOf(arr.1, x)]), v) AS v1

┌─v─────────────┬─v1────────────────────────┐
│ ['a','c','a'] │ [('a',1),('c',3),('a',1)] │
└───────────────┴───────────────────────────┘


а нет, это неправильно, я затупил, надо дописывать сам arrayCompact, чтобы он работал как ArrayFilter и ArraySort

SELECT arrayCompact( (x,y) -> y, arr1, arr2) AS v
с arrayMap/indexOf не совсем то выходит, что требуется.  всегда берется 1-ый найденный ключ в массиве, в случае, наличия одного и того же ключа, но с разным измерением в tuple, то всегда сохранятся значения tuple из первого ключа.

SELECT
   arrayCompact(x -> (x.1), [('a', 1), ('a', 2), ('c', 3), ('a', 2)] AS arr) AS v,
   arrayMap(x -> (arr[indexOf(arr.1, x)]), v) AS v1,
   [('a', 1), ('c', 3), ('a', 2)] AS expected_v
┌─v─────────────┬─v1────────────────────────┬─expected_v────────────────┐
│ ['a','c','a'] │ [('a',1),('c',3),('a',1)] │ [('a',1),('c',3),('a',2)] │
└───────────────┴───────────────────────────┴───────────────────────────┘
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Максим
с arrayMap/indexOf не совсем то выходит, что требуется.  всегда берется 1-ый найденный ключ в массиве, в случае, наличия одного и того же ключа, но с разным измерением в tuple, то всегда сохранятся значения tuple из первого ключа.

SELECT
   arrayCompact(x -> (x.1), [('a', 1), ('a', 2), ('c', 3), ('a', 2)] AS arr) AS v,
   arrayMap(x -> (arr[indexOf(arr.1, x)]), v) AS v1,
   [('a', 1), ('c', 3), ('a', 2)] AS expected_v
┌─v─────────────┬─v1────────────────────────┬─expected_v────────────────┐
│ ['a','c','a'] │ [('a',1),('c',3),('a',1)] │ [('a',1),('c',3),('a',2)] │
└───────────────┴───────────────────────────┴───────────────────────────┘
эмм, так в сообщении в конце написано

а нет это неправльно, я затупил, надо дописывать сам arrayCompact, чтобы он работал как ArrayFilter и ArraySort
источник

М

Максим in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
эмм, так в сообщении в конце написано

а нет это неправльно, я затупил, надо дописывать сам arrayCompact, чтобы он работал как ArrayFilter и ArraySort
теперь понял, извините)
источник

D

Dj in ClickHouse не тормозит
Максим
теперь понял, извините)
https://t.me/clickhouse_ru/158736

Tam vot do arrayreducebykeys i prochiye obsujdeniya. Golosuyte za tiketi pls )
источник

l

lnuynxa in ClickHouse не тормозит
Dj
https://t.me/clickhouse_ru/158736

Tam vot do arrayreducebykeys i prochiye obsujdeniya. Golosuyte za tiketi pls )
arrayReduceByKeys это же Resample почти
источник

l

lnuynxa in ClickHouse не тормозит
Я вообще думал над вариантом resample, который не бьет по бинам а просто по значению ключей складывает
источник

D

Dj in ClickHouse не тормозит
Tak byl je primer s resample. Tam vrode minus v tom chto razme znat nado
источник

l

lnuynxa in ClickHouse не тормозит
Да, ну я и говорю сделать вариант функции resample только тупо по ключам, без указания начального, конечного и шага.
Хотя минус в том что resample просто делит на группы, соотношение ключ-группа нужно самому будет поддерживать
источник
2020 September 14

D

Dj in ClickHouse не тормозит
Максим
с arrayMap/indexOf не совсем то выходит, что требуется.  всегда берется 1-ый найденный ключ в массиве, в случае, наличия одного и того же ключа, но с разным измерением в tuple, то всегда сохранятся значения tuple из первого ключа.

SELECT
   arrayCompact(x -> (x.1), [('a', 1), ('a', 2), ('c', 3), ('a', 2)] AS arr) AS v,
   arrayMap(x -> (arr[indexOf(arr.1, x)]), v) AS v1,
   [('a', 1), ('c', 3), ('a', 2)] AS expected_v
┌─v─────────────┬─v1────────────────────────┬─expected_v────────────────┐
│ ['a','c','a'] │ [('a',1),('c',3),('a',1)] │ [('a',1),('c',3),('a',2)] │
└───────────────┴───────────────────────────┴───────────────────────────┘
SELECT
   [('a', 1), ('a', 2), ('c', 3), ('a', 2)] AS arr,
   arrayDistinct(arr.1) AS uniqs,
   arrayMap(x -> (x, arrayCompact(arrayFilter(y -> ((y.1) = x), arr))), uniqs) AS binned,
   binned.2 AS finalres
FORMAT Vertical

Row 1:
──────
arr:      [('a',1),('a',2),('c',3),('a',2)]
uniqs:    ['a','c']
binned:   [('a',[('a',1),('a',2)]),('c',[('c',3)])]
finalres: [[('a',1),('a',2)],[('c',3)]]

1 rows in set. Elapsed: 0.002 sec.


в общем пока что вам только двойной перебор
источник