@clickhouse_ru

Страница 460 из 723
Stas
16.03.2018
08:23:15
Господа, а кто Oracle через odbc к кликхаусу подключал? Каков алгоритм?

Konstantin
16.03.2018
08:23:21
хмм

а драйвер сами собирали?

Kirill
16.03.2018
08:23:58
Подскажите, есть нормальный способ в python получать данные запроса не одним огромным списком, а вычитывать потоково? Есть хоть одна библиотека, умеющая это?
Вот эта https://github.com/mymarilyn/clickhouse-driver с нативным протоколом работает, в нем (протоколе) есть возможность не все сразу вытаскивать

Google
Kirill
16.03.2018
08:24:43
Http запрос и декодировать стрим?
В ClickHouse не только HTTP интерфейс есть

Артем
16.03.2018
08:28:38
хмм
вот по этому туториалу http://blog.magazov.com/clickhouse-intellij-idea/

Айбулат
16.03.2018
08:29:13
драйвер из коробки тоже не сразу заработал, помогло переключить java на 8ую версию и собрать пакет вручную

Артем
16.03.2018
08:32:55
не помогло(

Alexander
16.03.2018
08:33:13
Вот эта https://github.com/mymarilyn/clickhouse-driver с нативным протоколом работает, в нем (протоколе) есть возможность не все сразу вытаскивать
Вот с ним как раз и мучаюсь, он долго синхронно загружает все данные и потом выплевывает единым списком

Kirill
16.03.2018
08:53:47
Вот с ним как раз и мучаюсь, он долго синхронно загружает все данные и потом выплевывает единым списком
Тут где-то автор был, можно попробовать с ним связаться, в нативном протоколе данные передаются блоками, т.е. не нужно вытягивать весь результат перед тем как начать отдавать

Автор @tkostyan

Ivan
16.03.2018
09:05:59


Kostya
16.03.2018
09:08:42
Вот с ним как раз и мучаюсь, он долго синхронно загружает все данные и потом выплевывает единым списком
Добрый день. Вам нужна асинхронность или потоковая обработка данных?

Google
Артем
16.03.2018
09:13:36
чет и у меня не взлетело(
какая версия java ?

Ivan
16.03.2018
09:15:57
Взял готовый отсюда: https://mvnrepository.com/artifact/ru.yandex.clickhouse/clickhouse-jdbc/0.1.39



какая версия java ?
Moiseevs-MacBook-Pro:clickhouse-jdbc mo1seev$ java -version java version "9.0.4" Java(TM) SE Runtime Environment (build 9.0.4+11) Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

"уронить" до 8й?

Kostya
16.03.2018
09:20:17
Потоковое вычитывание данных
Такой возможности пока нет. Возможно в будущем оно появится

Лучше завести issue, чтобы не забылось

Alexander
16.03.2018
09:22:47
Лучше завести issue, чтобы не забылось
Да я собственно для себя уже начал добавлять поддержку, но она пока не очень стабильно работает

Артем
16.03.2018
09:24:55
в 9 класса Loggerfactory нету, поставь 8

Nessero
16.03.2018
10:18:30
Подскажите не работает autopurge в зукепере. В конфиге autopurge.snapRetainCount=10 autopurge.purgeInterval=1 snapCount=3000000 когда zkCleanup.sh запускаю ничего не происходит. Если из доки зукипера взять java -cp zookeeper.jar:log4j.jar:conf org.apache.zookeeper.server.PurgeTxnLog /opt/zoo/data/ /opt/zoo/logs/ -n 10 то выдает Error: Could not find or load main class org.apache.zookeeper.server.PurgeTxnLog

не видал я этот класс в либах не одной версии зукипера чего то

Артемий
16.03.2018
11:19:05
Привет! Есть ли возможность поулчать данные в формате JSON: Ключ => Значение, с вычисляемым ключом? Пример (псевдо код, так конечно не работает): >SELECT 1 as NOW() FORMAT JSONEachRow Желаемый результат: >{"2018-03-16 14:13:52":1} Можно было бы написать так и потом привести в нужный формат в своей программе, это решение не подходит: >SELECT 1, NOW() FORMAT JSONEachRow

papa
16.03.2018
11:25:05
вам конечно виднее, но по-моему получать данные в виде структуры которая заранее известна удобнее, чем перебирать ответ в поисках чего-то нужного.

Артемий
16.03.2018
11:28:35
вам конечно виднее, но по-моему получать данные в виде структуры которая заранее известна удобнее, чем перебирать ответ в поисках чего-то нужного.
Структура будет известна и определяется группировкой. Например "UserId" => "Какие то данные группировки по пользователю"

papa
16.03.2018
11:38:00
формат ответа о котором вы говорите возможен не для всех запросов. нужно чтобы в ответе было два столбца, чтобы столбец с ключом был строкой, чтобы значения в нем не повторялись.

Edya
16.03.2018
11:38:51
Завел пару тикетов на гитхабе по ODBC. Посмотрите, пожалуйста, как будет время. https://github.com/yandex/clickhouse-odbc/issues/67

Ivan
16.03.2018
11:40:59
Завел пару тикетов на гитхабе по ODBC. Посмотрите, пожалуйста, как будет время. https://github.com/yandex/clickhouse-odbc/issues/67
там есть тикеты без ответа около 20 дней, скорее здесь ответят или на фриноде

Google
Oleg
16.03.2018
11:44:06
Мы пока ещё не сталкивались с такой проблемой (хотя тоже недавно обновились до 54362). Поэтому нужна диагностика. Проверьте, не исчезает ли ошибка, если выставить SET optimize_move_to_prewhere = 0 Также попробуйте выбрать какой-нибудь минимальный кусок данных, на котором проявляется проблема. Как это сделать? Смотрите, какие есть куски данных с помощью SELECT * FROM system.parts WHERE active AND table = 'nr_views_t8'. name - это имя куска данных. В оригинальный запрос SELECT из nr_views_t8 можно добавить условие на кусок данных, вот так: ... AND _part = 'name' Если есть такой небольшой кусок данных, то вы можете достать его из файловой системы и переслать нам (clickhouse-feedback@yandex-team.ru). Понадобится также схема таблицы.
SET optimize_move_to_prewhere = 0 помогло, спасибо! Но в момент написания просьбы о помощи не помогало. Правда тогда я пробовал почти сразу после апгрейда, может это повлияло. И да - если написать запрос с prewhere, ошибка есть. прогнал с условием по _part - ошибка на всех больших кусках (больше 4ГБ), на остальных ( менее 1ГБ) её нет.

Edya
16.03.2018
11:45:26
там есть тикеты без ответа около 20 дней, скорее здесь ответят или на фриноде
там скорее не вопросы, а баг-репорты. В чате забудется и потеряется :)

prll
16.03.2018
11:47:11
Edya
16.03.2018
11:49:02
Спасибо, буду ждать.

Nikita
16.03.2018
12:08:21
а как-то возомжно изменить тип столбца, у которого указано default? я хочу добавить столбец, с помощью default "заполнить" его какими-то значениями, а потом поменять тип, что бы все дефолтные значения записались на диск и у колонки не было дефолтного значения. что бы optimize final не делать..

Alexander
16.03.2018
12:23:09
без optimize final default данные не запишутся на диск, если столбец новый

мы делали так: добавляли столбец с default, делали optimize final, потом убирали default. Другого способа не нашли

Elena
16.03.2018
13:23:05
Всем привет! Помогите, пожалуйста, привести дату '2017-04-13' к виду DD.MM.YYYY

Нужно использовать substring? Или можно как-то еще?

Ilya
16.03.2018
13:26:09
Нужно использовать substring? Или можно как-то еще?
:) select replaceAll(toString(toDate(now())), '-', '.') as new_date_format SELECT replaceAll(toString(toDate(now())), '-', '.') AS new_date_format ┌─new_date_format─┐ │ 2018.03.16 │ └─────────────────┘ 1 rows in set. Elapsed: 0.002 sec. :) А так нельзя?

Elena
16.03.2018
13:26:50
хотят сначала день, потом месяц и в конце год

Ilya
16.03.2018
13:26:51
А, я упоролся

Vladimir
16.03.2018
13:28:39
Всем привет! Помогите, пожалуйста, привести дату '2017-04-13' к виду DD.MM.YYYY
Как то так select replaceRegexpOne('2018-03-15', '(\\d{4})-(\\d{2})-(\\d{2})', '\\3.\\2.\\1') AS d Поправил

Daniel
16.03.2018
13:30:07
тестируйте как просядет производительность. такие вещи можно даже на стороне фронтенда разруливать куда быстрее, не грузя сервера

Stanislav
16.03.2018
13:30:23
Э... Есть же всякие toDayOfMonth() и т.п.

Kirill
16.03.2018
13:32:33
Вроде что-то делали с датами произвольного вормата, я, если честно не помно. Вообще пора сделать привычную to_char для Date/DateTime

Stanislav
16.03.2018
13:32:53
может, сразу sprintf?

Kirill
16.03.2018
13:34:19
Нет, тут же даты. Вот пример https://www.postgresql.org/docs/9.5/static/functions-formatting.html

Elena
16.03.2018
13:38:27
я тоже привыкла к to_char. Всем большое спасибо!

Tima
16.03.2018
13:57:53
Что делаю не так http://joxi.ru/ZrJGWNLi1Y4o3m?

Google
Konstantin
16.03.2018
14:00:16
Что делаю не так http://joxi.ru/ZrJGWNLi1Y4o3m?
мб добавить в таблицу столбец date Date DEFAULT toDate(created) и по нему мержить?

Slach
16.03.2018
14:00:48
created_date MATERIALIZED toDate(created) и в ENGINE его добавь

Kirill
16.03.2018
14:01:49
Что делаю не так http://joxi.ru/ZrJGWNLi1Y4o3m?
1) Вставляете скриншоты 2) Для всего используете String )

Tima
16.03.2018
14:01:52
Я вообще такое хотел: есть таблица с движком MySQL, которая смотрит на большую таблицу в мускуле (23кк строк). И создать таблицу по образу

1) Вставляете скриншоты 2) Для всего используете String )
Про стринг понятно, а что не так со скриншотами?

Konstantin
16.03.2018
14:02:52
ну не ссылками на сторонние ресурсы а ctrl-c ctrl-v)

Kirill
16.03.2018
14:03:12
Про стринг понятно, а что не так со скриншотами?
Ну, код обычно текстом вставлять лучше, можно скопипастить и посмотреть что не так

Michal
16.03.2018
14:04:43
А есть ли какой-то движок / способ который при слиянии позволял бы УДАЛЯТЬ ненужные строки? Задача на самом деле - позволить изменять некоторые столбцы, входящие в PK. ReplacingMegreTree не схлопнет 2 строки если у них отличается PK. Вот если бы можно было рядом со старой строкой вставить новую c тем же PK и скажем флагом "удали это" и вставить ещё раз новую строку с новым PK.

Michal
16.03.2018
14:07:56
И кстати что это за зверь: VersionedCollapsingMergeTree ,

?

RUNET
16.03.2018
14:08:43
VersionedCollapsingMergeTree - расширение (и в некотором смысле упрощение) функциональности CollapsingMergeTree. Разработано для Яндекс.Метрики. Чтобы было действительно понятно, зачем оно понадобилась - какой сценарий использования, придётся написать более подробный текст... Может быть @kochetovnicolai в этом поможет.

Tima
16.03.2018
14:09:21
CREATE TABLE referer_histories_copy ( _id String, guestId String, nginxRequestId String, originalUrl String, referer String, ip String, userAgent String, created Date, userId String, landing String, groupRef String, groupName String, created_date MATERIALIZED toDate(created)) ENGINE=MergeTree(toDate(created_date), (create_date, userId), 8192)

Не помогло с MATERIALIZED, такое ощущение что какой-то символ что ли не нравится

RUNET
16.03.2018
14:10:33
очень хочется чтобы replacingmergetree без танцев с бубном отдавал сразу последние версии записей. и сортировку desc по primary key мечты

Michal
16.03.2018
14:12:26
Часто нужно обновлять?
Скорее редко. В принципе эта планируемая реализация UPDATE / DELETE должна удовлетворить эти потребности (речь не о GDPR, а о скажем так - исправлению ошибок после неверной конфигурации тракинга) если использовать достаточно мелкие партиции.

Google
Michal
16.03.2018
14:16:33
Если партиции мелкие то можно перелить без этих ключей в новую партицию, а старую дропнуть
Ну в принципе тоже можно бы. Только момент переливания получится эээ... неловкий. В смысле будет какой-то (пусть небольшой) момент времени когда партиция отсутствует.

Атомарности не хватает этому варианту.

Konstantin
16.03.2018
14:18:59
Атомарности не хватает этому варианту.
можно заливать в другую таблицу с такой же структурой и делать ренейм партиций) в пару секунд уложитесь)

Tima
16.03.2018
14:26:37
created_date, а не строку в параметры движка пихайте, без вызова функции
Спасибо, помогло. Был почему-то уверен что в MergeTree можно вызвать toDate

Kirill
16.03.2018
14:27:17
Можно, если синтаксис создания новый

CREATE TABLE T () Engine = MergeTree PARTITION BY ...

Tima
16.03.2018
14:44:41
Slach
16.03.2018
14:45:22
Ошибка копипасты
ну в общем суть ошибки которая написана поле даты должно быть просто именем а не функцией

Petr
16.03.2018
15:14:33
CH возвращает после импорта какой-либо код ?

Vitaliy
16.03.2018
15:17:10
У меня ушалось публичное зеркало, кроме deb пакетов (я их принципиально не удаляю) по логам в 19.15 utc ушло все @milovidov_an может не нада так, а?

Gubaydullin
16.03.2018
15:21:09
всем привет! у меня есть таблица 10 миллионов записей, движок CollapsingMergeTree я пытаюсь с помощью inserta обновить первую запись в этой таблице optimize не схлопывает 1ую и последнюю записи при этом если добавить новую запись и обновить ее через схлопывание то все работает подскажите пожалуйста в чем может быть проблема?

antuan
16.03.2018
15:25:45
подозреваю, что вопрос глупый, но: я действительно не могу добавить колонку в таблицу, полученную из dictionary?:( :) alter table offers add column flow String; ALTER TABLE offers ADD COLUMN flow String Received exception from server (version 1.1.54343): Code: 48. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Method alter is not supported by storage Dictionary.

Gubaydullin
16.03.2018
15:25:59
┌─partition─┐ │ 201301 │ │ 201302 │ │ 201303 │ │ 201304 │ │ 201305 │ │ 201306 │ │ 201307 │ │ 201308 │ │ 201309 │ │ 201310 │ │ 201311 │ │ 201312 │ │ 201401 │ ┌─partition─┐ │ 201301 │ │ 201302 │ │ 201303 │ │ 201304 │ │ 201305 │ │ 201306 │ │ 201307 │ │ 201308 │ │ 201309 │ │ 201310 │ │ 201311 │ │ 201312 │ │ 201401 │

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