@clickhouse_ru

Страница 650 из 723
Max
07.09.2018
20:14:31
has(arrayMap(x -> toUInt16(replaceRegexpAll(x, '1#', '')), arrayFilter(x -> (x = '1#5'), arr_segments)), 5) as segment5
Это не совсем то. Тк тело функции одна операция

Просто цепочка вызовов куда передается массив и операция и опять массив и операция

Я же хожу операцию как сложную функцию

Google
Alexey
07.09.2018
20:18:08
Мне надо чтобы внутри где х+10 было много выпажений
select arrayMap(x -> indexOf([5,4,3,2,1],x) + 10, [1,2,3,4,5,6,7]) а так

Max
07.09.2018
20:20:35
Надо это чтобы как то получить из двух массивов один. Есть [10, 20, 30] и [9,11,12,24,44] хочу их преобразовать чтобы получить пары массив1 + все числа массива 2 больше чем какой то Элемент массив 1 но меньше чем след элемент массив 2. Те результат примера [10,11 ] (10,12) (20,24) (30,44)

Alexey
07.09.2018
20:21:40
Это к примеру в arrayMap(x -> {var y = indexOf(anotherarr, x); var z = x > 10? 5: 9; return x*z-y}, arr)
select arrayMap(x -> x * (if(x > 10, 5,9) - indexOf([5,4,3,2,1],x)), [1,2,3,4,5,6,7])

Max
07.09.2018
20:21:53
select arrayMap(x -> indexOf([5,4,3,2,1],x) + 10, [1,2,3,4,5,6,7]) а так
Оно все равно получается что одна операция. Те мне чтобы переменные внутри использовать и сохранять некий результат

Все ваши примеры это грубо говоря одна длинная операция. А можно ли как то чтобы переменные ещё использовать

Max
07.09.2018
20:29:30
Я не говорю что где то можно. Но если есть high order function я уточнял можно ли

В тарантул на Луа можно что то писать :)

Alexey
07.09.2018
20:29:53
здесь просто SQL

99% есть в доке

Max
07.09.2018
20:31:28
99% есть в доке
Да, но насчёт этого вопроса какая то неопределенность. Те можно сделать цепочку вызовов и все ок, а если разбить на куски с сохранением в переменную то уже получается нельзя.

Поэтому и пришел уточнить можно или нет

Google
papa
07.09.2018
20:34:26
если вам хочется привычный императивный синтаксис, то его нет, если вам нужно выполнить какое-то выражение с временными результатами, то возможно их можно просто заинлайнить в места использования.

Sergey
07.09.2018
20:38:36
Да и "день" норм был.

Max
07.09.2018
20:40:46
Да и "день" норм был.
Это будет мое удивление на следующем шаге :)

А такой вопрос.есть число 15 И массив 5, 6,10,20,30 можно ли получить число 10. Те надо найти наибольший элемент который меньше искомого числа

Alexey
07.09.2018
21:00:45
А такой вопрос.есть число 15 И массив 5, 6,10,20,30 можно ли получить число 10. Те надо найти наибольший элемент который меньше искомого числа
:) select max(arrayJoin(arrayFilter(x -> x < 15, [5, 6,10,20,30]))) as res SELECT max(arrayJoin(arrayFilter(x -> (x < 15), [5, 6, 10, 20, 30]))) AS res ┌─res─┐ │ 10 │ └─────┘

Можно - делаем arrayFilter и берём последний элемент
в таком массиве [10, 6, 1, 20, 30] не прокатит

Можно - делаем arrayFilter и берём последний элемент
с сортировкой прокатит :) select arraySort((arrayFilter(x -> x < 15, [5, 6,10,20,30])))[-1] as res SELECT arraySort(arrayFilter(x -> (x < 15), [5, 6, 10, 20, 30]))[-1] AS res ┌─res─┐ │ 10 │ └─────┘

Mike
08.09.2018
06:59:14
Мне надо чтобы внутри где х+10 было много выпажений
Вместо x+10 можно написать f(x) И цепочку вызовов подставить.

Max
08.09.2018
07:20:29
Mike
08.09.2018
07:39:57
Кастомная функция -- это не кусок кода, а именно цепочка вызовов встроенных ф-й

Dmitry
08.09.2018
08:28:19
Коллеги, доброе утро! Подскажите, как решить такую проблему? <Error> Application: DB::Exception: Cannot create table from metadata file /var/lib/clickhouse/metadata/asoup//SPL3314_REP.sql, error: ZooKeeperImpl::Exception: Can't get data for node /clickhouse/tables/01/SPL3314_REP/metadata: node doesn't exist (No node) Кликхаус не стартует

Dmitry
08.09.2018
09:12:18
Кажется у меня в зукипере все данные потерялись, это очень плохо?

Kirill
08.09.2018
09:13:56
Кажется у меня в зукипере все данные потерялись, это очень плохо?
Нет, данные из-за этого не потеряются, но нужно будет аккуратно их переместить из /var/lib/clickhouse/data, создать таблицы заново, и приатачить партиции

https://clickhouse.yandex/docs/ru/single/#zookeeper

Google
Dmitry
08.09.2018
09:15:27
Спасибо, Кирилл, буду пробовать

Павел Максимов
08.09.2018
13:33:21


Alexander
08.09.2018
14:18:29
Раз никто не отвечает, попробую я :) У вас слуйчано место на диске (df) и inode (df -i) не закончились?

Кирилл
08.09.2018
16:07:12
Здравствуйте. Подскажи, кто-нибудь имеет опыт миграции с одного кластера ZooKeeper на другой и как это можно сделать, чтобы не потерять данные? Рассматриваю вариант с вводом новых участников кластера и вывода старых после синхронизации.

Dmitry
08.09.2018
16:42:32
Нет, данные из-за этого не потеряются, но нужно будет аккуратно их переместить из /var/lib/clickhouse/data, создать таблицы заново, и приатачить партиции
У меня 2 шарда по 2 реплики. Начал с первой ноды кликхауса, переместил данные и метаданные в другой каталог. Создал replicated таблицу, скипировал данные в папку detached этой таблицы. Пытаюсь выполнить ALTER TABLE {table_name} ATTACH PARTITION . Ругается на неверный синтаксис. Если пишу запрос вида ALTER TABLE {table_name} ATTACH PARTITION 201801 то, выполняется, но данные в таблицу не приходят Подскажите, куда посмотреть?

Wolf
08.09.2018
16:43:12
первый синтаксис не верный

данные надо было бы через детач отсоединить

ну и тупо посмотреть переместились ли данные из папки детач

Dmitry
08.09.2018
16:47:08
у меня данные в зукипере потерялись, пришлось заново создавать таблицу, не было возможности сделать detach, кликхаус не запускался

Dmitry
08.09.2018
17:01:07


20180129 пробовал

Wolf
08.09.2018
17:07:04
ну видно что аттач не прошел

Dmitry
08.09.2018
17:07:39
да, а как можно понять причину? в лог ничего не пишется в момент выполнения аттача

о, вот в таком формате получилось приаттачить данные ALTER TABLE {table_name} ATTACH PART '20180129_0_53_5'

Kirill
08.09.2018
17:48:35
У вас партиционирование по дате, значит названия партиции должно было быть '2018-01-29'

Dmitry
08.09.2018
17:49:56
у меня вот так PARTITION BY toMonday(toDateTime(ts))

Kirill
08.09.2018
17:51:55
у меня вот так PARTITION BY toMonday(toDateTime(ts))
Я и говорю, у вас кастомный ключ партиционирования по дате, если сейчас посмотрите в system.parts то увидите как строятся в этом случае имена партиций

Dmitry
08.09.2018
17:54:02
ага, понял, спасибо

Google
Michal
10.09.2018
07:25:30
Может быть кто-то знает как заставить КХ "забыть" о словаре без растарта? Удаление файла с конфигурацией не помогает...

SYSTEM RELOAD DICTIONARIES - тоже.

Michal
10.09.2018
07:31:55
Вот с DROP TABLE все и началось... :) Был нужен временный словарь, быстренько запилил таблицу с данными (внутри КХ) и конфиг словаря. Потом словарь перестал быть нужен, таблицу и конфиг словаря удалил, а КХ теперь каждые пару сек пишет в error_log сообщение мол " Failed reloading '<удаленный словарь>' external dictionary: Code: 47, ". Рестартовать "по пустякам" не хочется т.к. КХ минут 5 стартует.

M
10.09.2018
07:41:48
Доброе утро. Как можно отменить мутацию на удаление? На обычной MergeTree. Допустил ошибку в запросе, она не проходит и не позволяет уже нормальному запросу работать

Alex
10.09.2018
07:44:27
Доброе утро. Как можно отменить мутацию на удаление? На обычной MergeTree. Допустил ошибку в запросе, она не проходит и не позволяет уже нормальному запросу работать
Мне приходилось руками удалять из Zoo и ребутать (возможно и без ребута сработает, но мне так было спокойней )

M
10.09.2018
07:45:06
Спасибо

Alex
10.09.2018
07:45:17
Сделайте DETACH TABLE <table>, найдите в data-директории таблицы ( /var/lib/clickhouse/data/<database>/<table>/ ) файл с мутацией ( mutation_*.txt ), удалите его и приаттачте таблицу обратно ATTACH TABLE <table>

Alex
10.09.2018
07:45:44
Зукипера там нет. Так и планировал. Удалить файл с мутацией и ребутнуть
У нас ещё версия, которая умеет мутации только для replicated)

Alex
10.09.2018
07:46:05
Надо будет сделать запрос KILL MUTATION для таких случаев :)

Александр
10.09.2018
07:53:00
Надо будет сделать запрос KILL MUTATION для таких случаев :)
Задавал этот вопрос на последней конференции, говорили, что надо бы сделать такой механизм :)

Alex
10.09.2018
07:54:33
Ага, это я и говорил

Александр
10.09.2018
08:02:04
Daniyar
10.09.2018
11:39:38
Clickhouse одну merge_tree таблицу распределил на 548827 файлов. Количество столбцов - 11, строк - 10 000, вес таблицы - 1.26 мб. Merge_tree таблица создавалась с параметрами по умолчанию, описанными в официальной документации. Файловая система дирректории Clickhouse - 'ext4'(LINUX) Насколько нормально такое поведение Clickhouse? Возможно ли ограничить или сократить количество создаваемыех файлов на одну таблицу; если да, то чего это нам будет стоить?

Denis
10.09.2018
11:40:26
у вас с выбором индекса партиционирования что-то не то. гранулярность большая получилась

Google
Alexey
10.09.2018
11:54:37


Daniyar
10.09.2018
11:54:51
Может быть вы каждую строку вставляли отдельным инсертом?
Возможно, данные грузятся через ETL инструмет, коннектится он к CH через JDBC драйвер. Количество строк в блоке инсерта, честно говоря, мне неизвестно, нужно будет покопаться, найти. Благодарю за интересное предположение. Возможно ETL и инсертит каждую строку отдельно.

Daniyar
10.09.2018
11:57:01
Это не нормально, скорее всего вы что-то сделали неверно. Если сделать всё верно то все ваши данные должны лежать примерно в 30 файлах.
Пробовали играться с параметрами таблицы(гранулярность, партиции, order by, sample)- не помогло, количество файлов все равно в районе полумиллиона. Та же самая таблица на движке Log занимает 24 файла.

Denis
10.09.2018
11:58:34
даже если инсёрты отдельные (а что, КХ уже умеет вставку одной строки? раньше вроде нельзя было, только батчи), то мерджи потом объединят их. тут же, видимо, данные распределились и остались. заметьте, что там файлов больше, чем строк*колонок. даже хз, откуда такая амплификация. либо что-то недоговаривают о ситуации

напишите структуру таблицы, запрос создания какой?

Evgeny
10.09.2018
12:11:16
Могли бы поделиться решением?
Лучше в личку ибо не имеет отношения к клику

Konstantin
10.09.2018
12:22:22
@blinkovivan а можно вот такое реализовать в ODBC? https://github.com/Microsoft/DataConnectors/blob/master/docs/odbc.md

и еще почемуто шлюз Power BI не видит коннектор

Сообщение о базовой ошибке: ODBC: ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified DM_ErrorDetailNameCode_UnderlyingHResult: -2147467259 Microsoft.Data.Mashup.ValueError.DataSourceKind: Odbc Microsoft.Data.Mashup.ValueError.DataSourcePath: dsn=clickhouse_ansi Microsoft.Data.Mashup.ValueError.Reason: DataSource.Error

Aleksandr
10.09.2018
12:24:57
Подскажите пожалуйста alter table для shard таблиц нужно делать для каждой ноды отдельно а потом сделать alter table on cluster для distibuted таблиц?

Alex
10.09.2018
12:34:00
Если речь про добавить/удалить столбец, то нужно выполнить его для каждой таблицы с данными (или для одной реплики каждого шарда, если используется репликация), а потом выполнить тот же ALTER для каждой Distributed таблицы. Оба шага можно делать либо вручную, либо с помощью ON CLUSTER.

Ivan
10.09.2018
12:35:15
и еще почемуто шлюз Power BI не видит коннектор
насколько я помню кто-то писал, что у него получалось из Power BI подключиться точно всё корректно сконфигурировано и используются самые свежие драйвера и clickhouse-server?

Страница 650 из 723