
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 должно применится к вставляемому блоку.

Tima
27.09.2018
14:55:16

Google

Tima
27.09.2018
14:58:28

Kirill
27.09.2018
15:06:07


Denis
27.09.2018
15:13:36
Ребят, вижу проблему, не могу разобраться:
табличка и запрос на выборку в mysql:
https://gist.github.com/RomanGorbatko/b2bc29e7247f6828c1cecf6303b788c3
аналогично в КХ:
https://gist.github.com/RomanGorbatko/595f570f3c9e09f0c6dd5b9b1d565ce6
в КХ вижу ошибку Unknown identifier: v.Page
в доке есть «Зависимые подзапросы и оконные функции не поддерживаются.»
подскажите, пожалуйста, каким образом можно организовать запрос в КХ?
или проще разбирать на 2 отдельныз запроса и обрабатывать уже у себя в коде?
CREATE TABLE test_views (
id UInt64,
page String ,
prev_page String)
ENGINE=Memory
INSERT INTO test_views VALUES
(1, 'page1', ''),
(2, 'page1', ''),
(3, 'page3', ''),
(4, 'page4', 'page3'),
(5, 'page3', ''),
(7, 'page3', '');
select prev_page,length(groupArray(page)) from test_views
group by prev_page


Tima
27.09.2018
15:25:40
CREATE TABLE test_views (
id UInt64,
page String ,
prev_page String)
ENGINE=Memory
INSERT INTO test_views VALUES
(1, 'page1', ''),
(2, 'page1', ''),
(3, 'page3', ''),
(4, 'page4', 'page3'),
(5, 'page3', ''),
(7, 'page3', '');
select prev_page,length(groupArray(page)) from test_views
group by prev_page
Неа http://joxi.ru/82QE3DntjNg8a2
разные результаты

Rg
27.09.2018
15:29:24

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

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

abc
27.09.2018
15:33:56

Denis
27.09.2018
15:34:36

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

Tima
27.09.2018
15:37:44

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

Google

Alexey
27.09.2018
15:39:05

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

Rg
27.09.2018
15:45:47

Stas
27.09.2018
16:09:45

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

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

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; спасибо большое
пропустил

Kirill
28.09.2018
03:34:36

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, если её указать необходимо


Александр
28.09.2018
06:47:43
Да, с примером я поспешил и очень много опечаток. Моя вина, но и пример к моему вопросу, как мне кажется, излишен.
Как можно видеть из руководства к КХ, при создании таблиц MergeTree ранний способ через MergeTree(*params) ныне deprecated, взамен чему пришли директивы PARTITION BY, ORDER BY, SETTINGS. В последний, SETTINGS, передаются именованные, а не позиционные параметры, отчего возникает вопрос ниже:
Как же при создании ReplacingMergeTree указать версию по-новому с PARTITION BY, ORDER BY, SETTINGS, если её указать необходимо
ReplacingMergeTree(version) partition by ...

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

George
28.09.2018
07:18:10
хотя это маловероятно

Michal
28.09.2018
07:18:43

Гурам
28.09.2018
07:19:17

George
28.09.2018
07:19:42

Vasily
28.09.2018
07:20:24

Michal
28.09.2018
07:20:50

Гурам
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

Michal
28.09.2018
07:28:34

Vasily
28.09.2018
07:28:55

Michal
28.09.2018
07:29:24

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

Michal
28.09.2018
07:32:31

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

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

Ivan
28.09.2018
08:44:38

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

Vasily
28.09.2018
09:12:20