@clickhouse_ru

Страница 655 из 723
Alexey
12.09.2018
13:40:22
и есть несколько вьюх

когда я выполняю запрос show tables from database

я увижу только таблицы ? или таблицы + вьюхи ?

Alexey
12.09.2018
13:42:20
вьюхи тоже увидите

Google
Alexey
12.09.2018
13:43:07
вьюхи тоже увидите
Спасибо большое =)

Илья
12.09.2018
13:45:46
а разница между вьюхой и Merge только в том, что во втором случае запрос ваять не надо?

Alexey
12.09.2018
13:47:15
грубо говоря, мат.вьюха - это тоже обычная таблица, только с триггером

Илья
12.09.2018
13:47:40
я про обычные, материализованные понятно

Alexey
12.09.2018
13:47:56
обычная вьюха это просто селект

Илья
12.09.2018
13:48:49
вот я и пытаюсь понять, в чём профит Merge

Илья
12.09.2018
13:49:46
может вместо Merge селект с юнион замутить?

Alexey
12.09.2018
13:50:39
Меня просто попросили, составить список таблиц в базах. Я составил список, показал. А мне сказали чтобы я пересчитал еще раз. Сказали что нет некоторых вьюх. И тогда я подумал, что когда я составлял список таблиц выполнением команды "show tables from database" я получал только список таблиц, а вьюхи не получал.

Сейчас проверил, действительно, команда show tables from database отображает в том числе вьюхи

Alexey
12.09.2018
13:54:53
может вместо Merge селект с юнион замутить?
вот у меня есть две таблицы ReportsToday - она перезаливается раз в 10 минут, в ней сегодняшние данные, и есть ReportsDaily, в нее данные заливаются ночью за прошлые сутки. Чтобы не мутить юнион, я сделал таблу Reports с движком Merge, и просто селектирую из нее.

Alexey
12.09.2018
13:55:36
нет, таблицы небольшие

Google
Alexey
12.09.2018
13:56:13
У Merge чтение автоматически распараллеливается, про унионы не в курсе

если нет, тогда Merge быстрее

Илья
12.09.2018
13:57:02
уже что-то, спасибо. жаль в доке пояснений нет

Alexey
12.09.2018
13:57:10
это я из доки взял

Alexey
12.09.2018
14:04:16
Скажите пожалуйста, а вьюхи имеют свойство реплицироватся ?

то есть скажем если я создал одну вьюху, а потом отредактировал ее, то поменяется ли она на всех нодах ?

Создаёт представление. Представления бывают двух видов - обычные и материализованные (MATERIALIZED). При создании материализованного представления, нужно обязательно указать ENGINE - движок таблицы для хранения данных. Материализованное представление работает следующим образом: при вставлении данных в таблицу, указанную в SELECT, часть вставленных данных конвертируется запросом, а результат вставляется в представление. Обычные представления не хранят никаких данных, а всего лишь производят чтение из другой таблицы. То есть, обычное представление - не более чем сохранённый запрос. При чтении из представления, этот сохранённый запрос, используется в качестве подзапроса в секции FROM.

То есть чтобы создать реплицируюую вьюху нужно создать матеарилизованую вьюху ?

Вот я создал вьюху на всех четырех нодах. Потом сделал Альтер вьюхи на одной ноде. Можно ли сделать вьюху реплицируемой чтобы вручную на всех нодах не редактировать ?

Alexey
12.09.2018
14:46:38
можно

мат.вьюха это по сути обычная таблица

репликация будет работать также, как и для обычных таблиц

Alexey
12.09.2018
14:47:59
У нас создано много вьюх, но обычных, без указания engine. Их можно перевезти в реплицируемые Merge Tree ? или нужно будет пересоздать ?

Alexey
12.09.2018
14:50:19
@Shegloff @Krashuevina Спасибо большое за оперативные ответы !

Tatiana
12.09.2018
14:51:21
парни, если у меня новая реплика ругается Can not clone replica, because the 172.16.100.158 updated to new ClickHouse version При этом на обоих репликах select version() выдает 18.12.13 - куда мне покопать?
У меня случилось что-то похожее. Было создано несколько новых таблиц on cluster, на ноде с версией 18.1.0. Нода с версией 18.12.13 создала таблицу, но не смогла данные скачать, писала Can not clone replica, because the 'Хост-инициатор' updated to new ClickHouse version (что неправда, там как раз старее версия стояла). Причем некоторые таблицы успешно создались. А некоторые из тех, которые ругались, были пустые. Мне помог апгрейд ноды, на которой создание таблиц запущено было. После ее рестарта все само починилось

Tatiana
12.09.2018
14:54:57
Вот я создал вьюху на всех четырех нодах. Потом сделал Альтер вьюхи на одной ноде. Можно ли сделать вьюху реплицируемой чтобы вручную на всех нодах не редактировать ?
Реплицируются данные, а не определение вьюх/таблиц/чего угодно. DDL или вручную на всех нодах запускать надо, или ON CLUSTER

Alexey
12.09.2018
14:58:58
А, то есть если таблица поменяет структуру

Придется вручную менять

Google
Alexey
12.09.2018
14:59:13
На всех нодах

Так ?

Например я добавил ещё один столбец

Alexey
12.09.2018
15:03:13
Запрос ALTER на изменение столбцов реплицируется.

Tatiana
12.09.2018
15:03:25
ALTER для Replicated* таблиц реплицируется ?

но его надо запустить на каждом шарде отдельно

Yuran
12.09.2018
15:08:45
Да, это странный момент, потому что в итоге ALTER TABLE … ON CLUSTER не работает, как ожидается

Или это уже починили?

Alexey
12.09.2018
15:11:22
Спасибо всем за ответы

Denis
12.09.2018
15:23:29
Да, это странный момент, потому что в итоге ALTER TABLE … ON CLUSTER не работает, как ожидается
он работает как ожидается, просто разработчики ожидали то как работает, а вы ожидаете что-то свое. Причем там много факторов включая настройку internal_replication.

но вообще из-за асинхронности On Cluster работает асинхронно, поэтому на проде использовать -- как повезет

Alex
12.09.2018
15:27:36
Yuran
12.09.2018
15:29:37
но вообще из-за асинхронности On Cluster работает асинхронно, поэтому на проде использовать -- как повезет
Вроде если все ноды живы, то все-таки запрос проходит синхронно. Пока что ни разу не сталкивался с обратным ?

molo4ko
12.09.2018
15:29:37
привет. никто не в курсе, что с этим делать? 2018.09.12 15:28:20.475279 [ 45 ] DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Code: 49, e.displayText() = DB::Exception: Part 20180907_20180912_53493_100624_10153 intersects next part 20180912_20180912_100614_100629_3 (state Committed). It is a bug., e.what() = DB::Exception, Stack trace:

версия 18.5.1, может, в новых пофикшено?

и насколько это критично для дальнейшего функционирования

prll
12.09.2018
15:36:57
если часто повторяется - может грузить сеть-cpu

molo4ko
12.09.2018
15:40:14
последний час идет и на этой машине график replicated_part_failed_fetches_total в районе 20-25 держится

Pavel
12.09.2018
15:42:21
прочитал чейнджлоги, нихрена из них не понял актуальный статус типа данных UUID им уже можно пользоваться, или лучше таки не рисковать и пользовать что то из FixedString(16) или два поля ( UInt64 + UInt64 )? Что вообще лучше? (планируется использование для group by и в качестве аргумента для uniq[Exact])

molo4ko
12.09.2018
15:50:25
пытался читать код, ничего не понял. есть шанс, что они пропадут со временем сами или нужно что-то делать?

Google
prll
12.09.2018
16:00:01
последний час идет и на этой машине график replicated_part_failed_fetches_total в районе 20-25 держится
всмысле много и повторяются такие ошибки? тогда возможно что оно скачивает куски и сразу их удаляет в цикле

molo4ko
12.09.2018
16:07:36
да, в логах также есть сообщения про удаление, поэтому и вопрос - стоит ждать, что оно сойдется к какой-то неподвижной точке?

prll
12.09.2018
16:08:35
если пишет its a bug и все премя одинаковое название part - не сойдется, надо найти в каком оно partition и сделать detach, attach

найти partition - :) select partition from system.parts where name='20180521_46_63_4' limit 10;

проверить потом сколько на диске - select SUM(bytes_on_disk) from system.parts where partition='\'2018-05-21\'' ;

Делаем на лидере - :) ALTER TABLE db.tbl DETACH PARTITION '2018-05-21'; :) ALTER TABLE db.tbl ATTACH PARTITION '2018-05-21'; Больше лишних скачиваний нет. Убеждаемся что в лишнем парте нет нужных данных :) ALTER TABLE db.tbl ATTACH PART '20180521_1_62_5'; :) OPTIMIZE TABLE db.tbl PARTITION '2018-05-21' DEDUPLICATE;

molo4ko
12.09.2018
16:13:57
ого, супер

а зачем проверять место на диске?

имею в виду, какой смысл в этом числе? должно быть 0?

а, и как узнать лидера?)

prll
12.09.2018
16:16:29
имею в виду, какой смысл в этом числе? должно быть 0?
если там очень много - то процесс может занять очень долго, должно быть больше 0

а, и как узнать лидера?)
SELECT * FROM system.replicas для нужной таблицы is_leader=1

molo4ko
12.09.2018
16:19:16
а в каком куске я заинтересован? есть несколько кусков, которые intersects previous & intersects next, где left <= PART <= right, left/right - разные, а PART - всегда один и тот же кусок - я правильно понимаю, что это он проблемный?

prll
12.09.2018
16:19:18
а, чтоб вообще такое не повторялось - обновить надо сервер , в 18.10.3 причина уже исправлена была

molo4ko
12.09.2018
16:19:53
о, класс еще раз спасибо)

molo4ko
12.09.2018
16:22:39
19 гигабайт, ничего себе

сделал attach/detach, прошло практически мгновенно

в detached осталось несколько десятков директорий/кусков с префиксом inactive, стоит пытаться их приаттачивать?

prll
12.09.2018
16:36:52
а время изменеиня какое? может что-то старое

Google
molo4ko
12.09.2018
16:51:08
cегодняшние, в районе 10 утра. но выхлоп такой: Code: 226, e.displayText() = DB::Exception: No columns in part 20180912_20180912_101361_101361_0, e.what() = DB::Exception ошибки из логов пропали, все устаканилось

(выхлоп попытки приаттачить)

Sergey
12.09.2018
18:13:50
Привет, может кто-то сталкивался с ошибкой при создании реплицируимой таблицы ZooKeeperImpl::Exaption: Marshalling error, path: /clickhouse/tables/01/clusterA/table_name/log ? Подозреваю что проблема с zookeepr но как пофиксить не знаю. Может можно как-то кластер пересоздать ? Пробовал удалять в zookeeper path, zkCli.sh валится с ошибкой.

Vitaly
12.09.2018
20:24:00
Привет. а как на мак cli client поставить?

Denis
12.09.2018
20:25:39
клиент это на самом деле тот же бинарь что и сервер, поэтому либо собирать, либо докер.

Alexander
12.09.2018
20:33:08
Всем привет! Наблюдается проблема с обновлением внешних словарей (из постгреса), проверял в версиях 18.12.5 - 18.12.13 Словари создаются/обновляются при старте кликхауса (это можно увидеть в колонке creation_time в таблице `system.dictionaries`). При следующих попытках обновления (через 5 минут, согласно настройкам) падает исключение (колонка last_exception той же таблицы): Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found, e.what() = Host not found В логах:``` 2018.09.12 05:28:11.448817 [ 52 ] <Error> ExternalDictionaries: Cannot update external dictionary 'bundle_ids', leaving old version: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found, e.what() = Host not found ` Доступ к БД постгреса есть - проверял из консоли клиентами psql и isql (последний с явным указанием настроек ODBC как для кликхауса). Выполнение запроса SYSTEM RELOAD DICTIONARIES; нормально обновляет словари (!), но спустя 5 минут проблема возвращается... Что я делаю не так?
Привет, а можешь побольше логов приложить? Желательно с trace-уровнем. Ну и заодно конфиг словаря, /etc/odbc.ini и /etc/odbcinst.ini.

Кажется логи не нужны, нашли баг (воспроизводится при наличии invalidate_query у odbc-словарей), скоро будет новый релиз с фиксом.

Alexey
12.09.2018
21:53:20
Если в ней будет несколько кусков, то будет параллелить
Если один кусок - тоже всё распараллеливается.

https://github.com/yandex/clickhouse-presentations/blob/master/meetup17/1_low_cardinality_strings.pdf
Это экспериментальная функциональность. Доступна для тестирования.

в detached осталось несколько десятков директорий/кусков с префиксом inactive, стоит пытаться их приаттачивать?
С inactive директориями ничего делать не нужно. Разве что их можно удалить.

Evgen
13.09.2018
05:45:19
Кажется логи не нужны, нашли баг (воспроизводится при наличии invalidate_query у odbc-словарей), скоро будет новый релиз с фиксом.
конфиг словаря: <dictionaries> <dictionary> <name>bundle_ids</name> <source> <odbc> <connection_string>DSN=postgres_dashboard</connection_string> <table>bundle_ids</table> </odbc> </source> <lifetime> <min>300</min> <max>360</max> </lifetime> <layout> <hashed/> </layout> <structure> <id> <name>id</name> </id> <attribute> <name>content</name> <type>String</type> <null_value></null_value> </attribute> </structure> </dictionary> </dictionaries> содержимое /etc/odbc.ini: [DEFAULT] Driver = postgres_dashboard [postgres_dashboard] Description = PostgreSQL connection to dashboard Driver = PostgreSQL Unicode Database = dashboard Servername = ip-address UserName = user Password = superStrongPass Port = 5432 Protocol = 9.6 ReadOnly = Yes RowVersioning = No ShowSystemTables = No ConnSettings = [postgres_booking_tool] Description = PostgreSQL connection to booking tool Driver = PostgreSQL Unicode Database = booking_tool Servername = ip-address UserName = user Password = superStrongPass Port = 5432 Protocol = 9.6 ReadOnly = Yes RowVersioning = No ShowSystemTables = No ConnSettings = содержимое /etc/odbcinst.ini: [PostgreSQL ANSI] Description=PostgreSQL ODBC driver (ANSI version) Driver=psqlodbca.so Setup=libodbcpsqlS.so Debug=0 CommLog=1 UsageCount=1 [PostgreSQL Unicode] Description=PostgreSQL ODBC driver (Unicode version) Driver=psqlodbcw.so Setup=libodbcpsqlS.so Debug=0 CommLog=1 UsageCount=1 locate psqlodbca.so /usr/lib/x86_64-linux-gnu/odbc/psqlodbca.so Как видите, в моем случае invalidate_query не используется...

Кажется логи не нужны, нашли баг (воспроизводится при наличии invalidate_query у odbc-словарей), скоро будет новый релиз с фиксом.
По логам. Когда в логе ошибок есть 2018.09.13 05:54:32.796610 [ 150 ] <Error> ExternalDictionaries: Cannot update external dictionary 'bundle_ids', leaving old version: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found, e.what() = Host not found В логе с уровнем трейс вижу следующее: 2018.09.13 05:54:32.795648 [ 150 ] <Trace> ODBCDictionarySource: SELECT id, content FROM bundle_ids; 2018.09.13 05:54:32.795671 [ 150 ] <Trace> ReadWriteBufferFromHTTP: Sending request to http://localhost:9018/ping 2018.09.13 05:54:32.796610 [ 150 ] <Error> ExternalDictionaries: Cannot update external dictionary 'bundle_ids', leaving old version: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found, e.what() = Host not found остальные записи в логе, насколько я могу судить, к обновлению не относятся...

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