184 похожих чатов

43 ответов

23 просмотра
Orkhan-Zeynalli Автор вопроса

это внутри дистрибьютед таблицы

Orkhan-Zeynalli Автор вопроса

никто не знает ?

А давно эта папка такого размера ? Может у вас левый шард в конфиге кластера раньше был?

Orkhan-Zeynalli Автор вопроса
Konstantin Ilchenko
А давно эта папка такого размера ? Может у вас лев...

я не собирал эту систему с нуля - может быть до меня кто то подключил левый шард. Просто мне нужно знать что это за папка - удалить или оставить

выглядит как output папка для distributed таблицы c данными которые не попали в сервер

вы в кубере пытаетесь запустить ваш кластер?

Orkhan-Zeynalli Автор вопроса
Orkhan Zeynalli
да кластер работает кубере

папка конкретно где находится? полный путь покажите

Orkhan-Zeynalli Автор вопроса
Slach [altinity]
выглядит как output папка для distributed таблицы ...

внутри его .bin файлы есть .последняя дата изменения этой папки 27 сентября

Orkhan-Zeynalli Автор вопроса
Orkhan Zeynalli
внутри его .bin файлы есть .последняя дата измен...

ну у вас 69 гигов не скинутых .bin файлов в distributed таблице, в underlying таблицу в хост с названием chi-clickhouse-digitalks-0-0 это имя kubernetes service

Orkhan-Zeynalli Автор вопроса
Orkhan Zeynalli
data/{database name}/{table name}/

расшарьте SHOW CREATE TABLE {database name}/{table name}

Orkhan-Zeynalli Автор вопроса
Orkhan Zeynalli
screenshot долго выполняется

можете на сервер зайти и посмотреть /var/lib/clickhouse/medatata/dmp/event_logs.sql ?

Orkhan Zeynalli
там DDL таблицы

SELECT create_table_query, hostName() h FROM cluster('all-sharded', system.tables) WHERE database='dmp' AND name=`event_logs_local

Orkhan-Zeynalli Автор вопроса
Slach [altinity]
SELECT create_table_query, hostName() h FROM clust...

Локальные таблицы у меня MergeTree

Orkhan-Zeynalli Автор вопроса
Slach [altinity]
SELECT create_table_query, hostName() h FROM clust...

CREATE TABLE dmp.event_logs_local (user_id UUID, pixel_id UUID, new_user UInt8, ip IPv4, time DateTime, headers String, browser String, browser_major String, os String, os_major String, device String, city String, city_id UInt64, country String, country_id UInt64, country_iso String, time_zone String, longitude Float64, latitude Float64, data String, page_url Nullable(String), view UInt8 DEFAULT 0) ENGINE = MergeTree PARTITION BY (pixel_id, toYYYYMMDD(time)) PRIMARY KEY cityHash64(user_id) ORDER BY cityHash64(user_id) SAMPLE BY cityHash64(user_id) SETTINGS index_granularity = 8192

Orkhan Zeynalli
CREATE TABLE dmp.event_logs_local (user_id UUID, p...

>раньше было . я увеличил лимит до 3 тысяч PARTITION BY (pixel_id, toYYYYMMDD(time)) - кажется вам сюда стоит обратить внимание

Orkhan-Zeynalli Автор вопроса
Konstantin Ilchenko
>раньше было . я увеличил лимит до 3 тысяч PARTIT...

не имею большого опыта с КХ . подскажите пожалуйста какие проблемы могут быть с таким партиционированием ? и по какому ключу лучше было бы это зделать ?

Orkhan Zeynalli
не имею большого опыта с КХ . подскажите пожалуйст...

каждая партиция - отдельная папка, в ней по 2 файла на каждую колонку, с таким мелким партиционириванием у вас будет миллиард маленьких файлов - сервер будет очень медленно стартовать - сжатие данных около нулевое получите - чтение будет тормозить, у вас по сути надо всегда random read делать чтобы что-то прочитать в какой-то момент у вас всё станет колом и вы не запустите сервер если не разбираетесь - самый популярный вариант PARTITION BY toYYYYMM(time) а какие запросы планируете делать?

Orkhan-Zeynalli Автор вопроса
Konstantin Ilchenko
каждая партиция - отдельная папка, в ней по 2 файл...

происходит то что описываете вы . некоторые шарды стартуютса очень медленно . SELECT запросы тоже медленно выполняются если делать ALTER TABLE и менять PARTITION BY . тогда КХ будет заново партиционировать уже умеющие парты ? или это будет относиться к новым данным ?

Orkhan-Zeynalli Автор вопроса
Konstantin Ilchenko
каждая партиция - отдельная папка, в ней по 2 файл...

есть одно что - количество pixel_id не очень много . максимум 200

Orkhan Zeynalli
происходит то что описываете вы . некоторые шарды ...

нельзя поменять PARTITION BY, создаёте правильную таблицу, переливаете данные и меняете их местами

Orkhan Zeynalli
есть одно что - количество pixel_id не очень мног...

ну это не так плохо, а сколько дат уже есть?

Orkhan-Zeynalli Автор вопроса
Konstantin Ilchenko
ну это не так плохо, а сколько дат уже есть?

от сентября до сегодняшного числа . 2021.09.01 - 2022.01.04

Orkhan-Zeynalli Автор вопроса
Orkhan Zeynalli
от сентября до сегодняшного числа . 2021.09.01 - 2...

уже много получается, ~25000 партиций, лучше до 1000 иметь(в зависимости от вашего железа может быть и меньше)

кривая схема данных (кривой PARTITION BY) и изменение константы вместо того чтобы понять что она значит... сейчас у вас будет никакая производительность в итоге судя по всему при вставке в distributed таблицу у вас ноды между собой не могут связаться для того чтобы в MergeTree таблицу данные передать... у вас с одной ноды на другую с default пользователем позволяет коннектиться? зайдите в контейнер kubectl exec -n clickhouse ... -- clickhouse-client

Orkhan-Zeynalli Автор вопроса

SELECT у меня чаще бывают именно с условием pixel_id и с датой

зайдите внутрь pod смотрите логи /var/log/clickhouse-server/clickhouse-server.log

Orkhan Zeynalli
SELECT у меня чаще бывают именно с условием pixel_...

так почему бы в ORDER BY не поставить pixel_id на первое место? зачем вам там cityHash64(user_id)? и зачем вам SAMPLE?

а там разве не старые данные лежат в дистрибьютед папке?, больше похоже на то что раньше в сентябре криво было настроено а сейчас это уже пофикшено и просто остались старые данные

Orkhan-Zeynalli Автор вопроса
Konstantin Ilchenko
так почему бы в ORDER BY не поставить pixel_id на ...

Это всё зделал предыдущий разраб . по user_id тоже делается выборка . как вы говорите это логично - буду попробовать заново создать таблицу перенести данные на него

Orkhan-Zeynalli Автор вопроса
Konstantin Ilchenko
а там разве не старые данные лежат в дистрибьютед ...

да дата изменения папки именно последний раз был в сентябре

Orkhan Zeynalli
screenshot

сверьте структуру distributed и mergetree таблицы судя по всему она у вас не совпадает

Orkhan Zeynalli
исправил это

ну ждите теперь, пока у вас ваши 69 гигов не вставленной даты разъедутся

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта