@clickhouse_ru

Страница 677 из 723
Kirill
27.09.2018
14:49:36
ох, работает ?

Rg
27.09.2018
14:51:37
Ребят, вижу проблему, не могу разобраться: табличка и запрос на выборку в mysql: https://gist.github.com/RomanGorbatko/b2bc29e7247f6828c1cecf6303b788c3 аналогично в КХ: https://gist.github.com/RomanGorbatko/595f570f3c9e09f0c6dd5b9b1d565ce6 в КХ вижу ошибку Unknown identifier: v.Page в доке есть «Зависимые подзапросы и оконные функции не поддерживаются.» подскажите, пожалуйста, каким образом можно организовать запрос в КХ? или проще разбирать на 2 отдельныз запроса и обрабатывать уже у себя в коде?

Denis
27.09.2018
14:52:53
ох, работает ?
ну сделайте ишью на гитхабе, там парсер в MV возможно из-за подзапроса или из-за спецификатора базы не понимает что where должно применится к вставляемому блоку.

Google
Rg
27.09.2018
15:29:24
Неа http://joxi.ru/82QE3DntjNg8a2 разные результаты
У тебя на белом фоне похоже на тот вывод, что мне нужен Только у тебя ошибка не бросается на внутреннюю зависимость v.Page А у меня вылетает почему-то..

Tima
27.09.2018
15:30:01
На белом фоне - mysql, серый - КХ

Rg
27.09.2018
15:30:12
А, блин))

abc
27.09.2018
15:33:56
к SummingMergeTree не надо делать final, т.к. "select sum, sum .... group by" возвращает финальный результат.
Думаю CH не очень подходит тогда к моей задаче. Мне на нескольких шагах нужно обновлять данные по усовию что новое значение поля меньше чем текущее. Тут без SELECT не обойтись как я понимаю

Denis
27.09.2018
15:34:36
Неа http://joxi.ru/82QE3DntjNg8a2 разные результаты
какая разница-то, select page,groupArray(prev_page) ar, arrayCount(x -> x != '', ar) c from test_views group by page page ar c page1 ['',''] 0 page4 ['page3']. 1 page3 ['','',''] 0

Alexey
27.09.2018
15:36:17
подскажите пож аналог datediff, с учетом версии ClickHouse августовской.

Tima
27.09.2018
15:37:44
подскажите пож аналог datediff, с учетом версии ClickHouse августовской.
Попробуйте это SELECT dateDiff('DAY', toDate('2018-09-12'), toDate('2018-10-22'))

Wolf
27.09.2018
15:38:04
а можно как нибудь форснуть мутацию после удаления чтобы он не смотрел на место на диске, если я точно знаю что новый парт после мутации будет нулевого размера , а сейчас в нем 130 гигов а на диске всего 100 гб свободно?

Google
Alexey
27.09.2018
15:39:05
Попробуйте это SELECT dateDiff('DAY', toDate('2018-09-12'), toDate('2018-10-22'))
в итоге получилось банальным minus(toDate('2018-09-12'),toDate('2018-10-22')) =)

Alexey
27.09.2018
15:43:12
А кто-то интеграцию с кафкой в проде использует? По cloudflare блогу это выглядит больше как эксперимент

Rg
27.09.2018
15:45:47
какая разница-то, select page,groupArray(prev_page) ar, arrayCount(x -> x != '', ar) c from test_views group by page page ar c page1 ['',''] 0 page4 ['page3']. 1 page3 ['','',''] 0
Штука в том, что у тебя с == 1 у page4, а должен быть у page3 Ты не то считаешь Мне нужно понять сколько есть записей у которых PrevPage == Page * скрин с mysql



Vitaliy
27.09.2018
16:17:42
Господа, доброго времени суток! Интересует, какое имя параметра указывать при CREATE TABLE для ENGINE=ReplasingMergeTree() в блоке SETTINGS для параметра ver CREATE TABLE candles ( foo String, bar String, created_id DateTime, var1 Float32, var2 Float32 ) ENGINE=ReplacingMergeTree() PARTITION BY (toStartOfYear(created_at ), foo) ORDER BY (foo ) SETTINGS ver='created_at' DB::Exception: Unknown setting ver for storage ReplacingMergeTree. DB::Exception: Unknown setting version_column for storage ReplacingMergeTree. DB::Exception: Unknown setting column_version for storage ReplacingMergeTree.

daria
27.09.2018
16:23:08
кто сталкивался с ошибкой Cannot compare unsigned long with DB::Null?

впервые вижу

Vitaliy
27.09.2018
16:24:00
Что в insert, select или что там у Вас?

Запрос какой?

prll
27.09.2018
16:25:28
Vsevolod
27.09.2018
16:26:06
https://github.com/Dead2/zlib-ng/pull/193
да, уже разобрался. я не в ту ветку накоммитил, как обычно

daria
27.09.2018
16:27:52
Запрос какой?
select Date, replaceAll(Params, '""', '"') as Params2, visitParamExtractInt(Params2, 'article_id') as article_id, replaceAll(visitParamExtractRaw(Params2, 'published_date'),'"','') as published, replaceAll(visitParamExtractRaw(Params2, 'event_category'),'"','') as event from hits_all where Date between (select date_from from temp_date) and (select date_to from temp_date) and event = 'Teleshow' and article_id > 0

запрос выполнялся пару месяцев еженедельно и было ок

теперь сломалось как будто всё и везде

Алексей
27.09.2018
17:14:38
теперь сломалось как будто всё и везде
come on, сейчас еще не вечер пятницы ?

Alexander
27.09.2018
17:37:51
Ребят, подскажите пожалуйста что является причиной ошибки

DB::Exception: Partition value mismatch between two parts with the same partition ID. Existing part:

И как ее фиксить?

Denis
27.09.2018
19:14:36
Господа, доброго времени суток! Интересует, какое имя параметра указывать при CREATE TABLE для ENGINE=ReplasingMergeTree() в блоке SETTINGS для параметра ver CREATE TABLE candles ( foo String, bar String, created_id DateTime, var1 Float32, var2 Float32 ) ENGINE=ReplacingMergeTree() PARTITION BY (toStartOfYear(created_at ), foo) ORDER BY (foo ) SETTINGS ver='created_at' DB::Exception: Unknown setting ver for storage ReplacingMergeTree. DB::Exception: Unknown setting version_column for storage ReplacingMergeTree. DB::Exception: Unknown setting column_version for storage ReplacingMergeTree.
у вас поля created_at нету CREATE TABLE candles ( foo String, bar String, created_id DateTime, created_at DateTime default now(), var1 Float32, var2 Float32 ) ENGINE=ReplacingMergeTree(created_at) PARTITION BY (toStartOfYear(created_at ), foo) ORDER BY (foo ) но на самом деле вам версия у ReplacingMergeTree необязательна, КХ сам "придумает". ORDER BY (foo ) бессмысленен у вас в партиции колонка foo имеет только одно значение PARTITION BY ... foo)

Google
Alexey
27.09.2018
20:38:24
Скажите, а много (тысячи) таблиц для КХ это нормально? Точнее тысячи MV заведенные на одну таблицу евентов. В евенте содержится кастомная схема данных в json (разная для каждого кастомера) и в MV доя конкретного кастомера идет вставка уже типизированных данных. Ну и далее кастомеры выполняют операции по своим данным

Или КХ для этого не подходит?

Max
27.09.2018
21:36:34
ребятки а заделите кто то odbc под мак собранный. а то никак не получается собрать

prll
27.09.2018
21:38:56
https://github.com/yandex/clickhouse-odbc/blob/master/MACOS.md

Max
27.09.2018
21:39:45
amazing; спасибо большое

пропустил

Vasily
28.09.2018
05:48:37
доброе утро, уважаемые

я правильно понимаю, что при подключении словаря по ODBC необходимо описать структуру с атрибутами и типами? как быть, если некоторые колонки бывают, к примеру, Nullable(DateTime) ?

Vitaliy
28.09.2018
06:45:41
у вас поля created_at нету CREATE TABLE candles ( foo String, bar String, created_id DateTime, created_at DateTime default now(), var1 Float32, var2 Float32 ) ENGINE=ReplacingMergeTree(created_at) PARTITION BY (toStartOfYear(created_at ), foo) ORDER BY (foo ) но на самом деле вам версия у ReplacingMergeTree необязательна, КХ сам "придумает". ORDER BY (foo ) бессмысленен у вас в партиции колонка foo имеет только одно значение PARTITION BY ... foo)
Да, с примером я поспешил и очень много опечаток. Моя вина, но и пример к моему вопросу, как мне кажется, излишен. Как можно видеть из руководства к КХ, при создании таблиц MergeTree ранний способ через MergeTree(*params) ныне deprecated, взамен чему пришли директивы PARTITION BY, ORDER BY, SETTINGS. В последний, SETTINGS, передаются именованные, а не позиционные параметры, отчего возникает вопрос ниже: Как же при создании ReplacingMergeTree указать версию по-новому с PARTITION BY, ORDER BY, SETTINGS, если её указать необходимо

Vasily
28.09.2018
06:52:30
и ещё хотел узнать про функцию odbc() в запросе.. что-то не нахожу что за параметры у неё.. первый - DSN, второй - ?, третий - имя таблицы?

у меня почему-то пытается вытащить всю таблицу

может есть где толковая документация?

Vadim
28.09.2018
06:54:55
Привет всем. Если кому интересно, могу рассказать , как я вылечил ошибку с бесконечными мерджами и ошибкой <Error> default.graphite (StorageReplicatedMergeTree): Code: 228, e.displayText() = DB::Exception: Unexpected uncompressed size of file Date.bin in data part, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.

Гурам
28.09.2018
07:04:34
Добрый день. Подскажите пожалуйста, появилась такая проблема. При вставке данных (около 60к-70к) в таблицу в формате JSONEachRow, через HTTP интерфейс, бывает выкидывает ошибку: Code: 117, e.displayText() = DB::Exception: Unknown field found while parsing JSONEachRow format:..... Хотя ранее такой ошибки небыло, и если вставлять те же данные кусками по 5к, то все нормально.

Версия 18.14.0

Michal
28.09.2018
07:15:04
Гурам
28.09.2018
07:17:34
Да, т.к. при вставке того же куска но с разбиением по 5к - запись проходит без проблем.

Google
Michal
28.09.2018
07:18:43
и ещё хотел узнать про функцию odbc() в запросе.. что-то не нахожу что за параметры у неё.. первый - DSN, второй - ?, третий - имя таблицы?
Там есть документация в тексте exception :D SELECT * FROM odbc() Received exception from server (version 18.12.13): Code: 42. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Table function 'odbc' requires 2 or 3 arguments: ODBC('DSN', table) or ODBC('DSN', schema, table). 0 rows in set. Elapsed: 0.055 sec.

George
28.09.2018
07:19:42
Ранее таких проблем небыло
а вы смотрели логи? какие именно данные там инсертятся

Michal
28.09.2018
07:20:50
спасибо но почему пытается всю таблицу вытащить, когда стоит LIMIT 1?
Потому что лимит выполняется по стороне КХ. :\

Гурам
28.09.2018
07:21:03
а вы смотрели логи? какие именно данные там инсертятся
Разбираю. Сейчас еще ради интереса попрбую другой формат.

Vasily
28.09.2018
07:21:13
хотя не, вытащил одну строку, только долго.. 1 rows in set. Elapsed: 191.788 sec.

а возможно как-то залить данные в КХ запросом через ODBC?

INSERT INTO table2 SELECT * FROM table1 WHERE condition; подойдёт?

к примеру INSERT INTO pack_statistics SELECT * FROM odbc('DSN=DATA1_PS', '', 'PACK_STATISTICS');

Vadim
28.09.2018
07:27:16
Конечно интересно. :)
На сбоящем сервере(ему просто не повезло перезагрузиться первым, когда другие уже смерджили данный блок по старым правилам , а он сбросил результаты и мерджит по новому) находу сбойный блок по ошибке в clickhouse-server.log : <Debug> default.graphite (Data): Undoing transaction. Removing parts: 20180925_20180925_865326_865454_3.

Vitaliy
28.09.2018
07:28:01
ReplacingMergeTree(version) partition by ...
Ok. 0 rows in set. Elapsed: 0.050 sec. Огромнейшее спасибо! ?

Michal
28.09.2018
07:28:34
а возможно как-то залить данные в КХ запросом через ODBC?
Возможно. Ваш пример должен работать.

Vadim
28.09.2018
07:29:32
Выполняю на этом сервере: select source_part_names from system.merges where result_part_name='20180925_20180925_865326_865454_3'; Останавливаю этот сервер и удалаю данные куски. При старте сервер фетчит конечный блок с других реплик и все. Проблема решена.

@AlexAkulov

Google
Vadim
28.09.2018
07:34:22
На стейджинге получилось применить через заинклюженный файл /etc/graphite-clickhouse/rollup_full.xml , на проде осталось применить и тогда да, перезагрузки будут не нужны и конфиг будет применяться "синхронно" и без останова текущих мерджей.

Vasilij
28.09.2018
07:37:06
Добрый день! А кто-нибудь может уточнить, как работает механизм дедупликации? Насколько я понимаю, при вставке запоминается хеш блока, и при следующей вставке блок с таким же хешем не будет вставлен (с учетом лимита по количеству отслеживаемых блоков). Вопрос: Будет ли так же пропущен блок, если между этим вставками дропнуть и создать заново таблицу?

Гурам
28.09.2018
07:44:07
а вы смотрели логи? какие именно данные там инсертятся
Логи посмотрел, такие записи: 0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x9560dd6] 1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x22) [0x305acd2] 2. /usr/bin/clickhouse-server(DB::JSONEachRowRowInputStream::skipUnknownField(StringRef const&)+0xd6) [0x7490b16] 3. /usr/bin/clickhouse-server(DB::JSONEachRowRowInputStream::readJSONObject(std::vector<COWPtr<DB::IColumn>::mutable_ptr<DB::IColumn>, std::allocator<COWPtr<DB::IColumn>::mutable_ptr<DB::IColumn> > >&)+0x293) [0x7491063] 4. /usr/bin/clickhouse-server(DB::JSONEachRowRowInputStream::read(std::vector<COWPtr<DB::IColumn>::mutable_ptr<DB::IColumn>, std::allocator<COWPtr<DB::IColumn>::mutable_ptr<DB::IColumn> > >&)+0x12f) [0x74914ef] 5. /usr/bin/clickhouse-server(DB::BlockInputStreamFromRowInputStream::readImpl()+0xa4) [0x77891e4] 6. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x69da6da] 7. /usr/bin/clickhouse-server(DB::InputStreamFromASTInsertQuery::readImpl()+0x28) [0x721bf68] 8. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x69da6da] 9. /usr/bin/clickhouse-server(DB::copyData(DB::IBlockInputStream&, DB::IBlockOutputStream&, std::atomic<bool>*)+0x81) [0x69f50c1] 10. /usr/bin/clickhouse-server(DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, DB::Context&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)+0x1a3) [0x721b5b3] 11. /usr/bin/clickhouse-server(DB::HTTPHandler::processQuery(Poco::Net::HTTPServerRequest&, HTMLForm&, Poco::Net::HTTPServerResponse&, DB::HTTPHandler::Output&)+0x3159) [0x3076169] 12. /usr/bin/clickhouse-server(DB::HTTPHandler::handleRequest(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&)+0x3be) [0x30787be] 13. /usr/bin/clickhouse-server(Poco::Net::HTTPServerConnection::run()+0x332) [0x96e69c2] 14. /usr/bin/clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x96df26f] 15. /usr/bin/clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x16a) [0x96df64a] 16. /usr/bin/clickhouse-server(Poco::PooledThread::run()+0x77) [0x97fc147] 17. /usr/bin/clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x38) [0x97f7cb8] 18. /usr/bin/clickhouse-server() [0x9f344af] 19. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f5309f1a6ba] 20. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f530953b41d]

Rg
28.09.2018
08:30:46
Всем привет! https://github.com/yandex/ClickHouse/commit/405d7f9232dbcec534f905e1b08f7ee9095fb33a#diff-a99910d6c86bdded76541b6d6ed69dfaR47 Как я понимаю, работать с алиасом second в SELECT не получится? Какие есть варианты для обхода этой проблемы?

Vasily
28.09.2018
08:37:48
а есть какая-то возможность скастить true/false в UInt8?

Ivan
28.09.2018
08:42:32
а есть какая-то возможность скастить true/false в UInt8?
оно же и так UInt8? SELECT toTypeName(1 = 1) FORMAT TSV UInt8

Vasily
28.09.2018
08:43:17
у меня из исходной таблицы данные получаются, а там почему-то false как 'false'

Vasily
28.09.2018
08:46:00
хотя не, в ignite как boolean

при попытке загрузить данные выдает DB::Exception: Cannot parse string 'true' as UInt8

потому что в описании структуры словаря указал эту колонку как UInt8

что-то я где-то накосячил >_<

Ivan
28.09.2018
08:55:34
Vasily
28.09.2018
08:56:32
возможно дело в драйвере? не вижу другой причины почему как строка представляется

Kirill
28.09.2018
09:11:26
возможно дело в драйвере? не вижу другой причины почему как строка представляется
В КХ нет булевых значений, нужно писать либо 1, либо 0, а не true/false.

Vasily
28.09.2018
09:12:20
В КХ нет булевых значений, нужно писать либо 1, либо 0, а не true/false.
это я понял вопрос только почему из ODBC они поступают как строки.. буду дальше хачить драйвер игнайта)

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