определённой патриции?
вы про PARTITION или про parts? если про первое у вас PARTITION BY задан? SELECT * FROM table WHERE field = VALUE выберет данные из одно конкретной партиции если про второе ну можно DETACH PART из одной таблицы и потом ATTACH PART в другую ... но не рекомендую
да, PARTITION задан, вот тут SELECT * FROM table WHERE field = VALUE подскажите, что здесь поле и значение? у меня есть список партиции SELECT * FROM system.parts WHERE table = 'nameTable'
давайте еще раз расставим понятия правильно чтобы можно было ответ сформулировать ПАРТИЦИЯ - это префикс в названии каталогов /var/lib/clickhouse/data/db/table/<partition-prefix> логическое разбиение данных по партициям делается через PARTITION BY список партиций отображается в system.partitions data part, он же кусок данных, он внутри логическое партиции. это каталог, с куском данных который образуется в партиции после каждого INSERT потом эти куски между собой объединяются через сортировку слиянием в фоне данные каждого парта лежат в /var/lib/clickhouse/data/db/table/<partition>_{min_block}_{max_block}_{level}/ список data part отображается в system.parts вам надо вытащить данные которые в конкретном system.parts лежат? или в system.partitions?
У меня есть таблица с движком MergeTree Есть PARTITION BY по 2ум полям В какой-то момент времени мне нужно будет удалить некоторые куски данных или парты т.к. DELETE как такового нет ). Допустим идет вставка данных, образуется новый парт, который будет в фоне позже смержен в более крупный по PARTITION BY и отсортирован по первичному ключу. К примеру не будет больше данных с конкретными значениями полей которые указаны в PARTITION BY правильно ли я понимаю что через какое-то время образуется смерженный большой кусок данных или парт разбитый по логике по PARTITION BY. Чтобы удалить парты мне нужно посмотреть что в них лежит, можно ли как-то посмотреть данные парта, получается так, если все правильно понял, поправьте пожалуйста
нет. образуется БОЛЬШОЙ кусок данных data part куски из разных partition между собой не мержатся если вам просто нужно через какое то время удалить по условиями то проще сделать ALTER TABLE ... DELETE ... WHERE ... SETTINGS mutation_sync=2 но часто такое делать НЕЛЬЗЯ, диск убьете... Select \ insert тормозить начнут
куски из разных partition не мержатся, по логике они и не должны мержаться, я имею ввиду в самом начале они вставляются как малые и после мержатся в большой кусок который по PARTITION BY , но разве не я определяю в разделе PARTITION BY как раз как им мержаться? т.е. если у меня в PARTITION BY к примеру 2 значения 1 и 2, получу в итоге 2 парты в одной все данные с 1 во второй с 2ойкой ?
PARTITION BY как я уже говорил это логическое разбиение кусков, фактически это просто префикс в названии подкаталога в котором непосредственно .idx, .bin, .mrk2 файлы хранятся куски из соседних партиций НЕ МЕРЖАТСЯ мержатся куски в рамках одной партиции они становятся крупнее но не через чур крупными чтобы вычитывать их было проще
если вам надо НЕ ЧАСТО удалять куски по условиям. то непонятно зачем вам удалять куски именно из конкретного парта... который умирает через какое то время сливаясь в более крупный?
удалять надо будет очень очень редко, но просто чтобы была такая возможность хорошо, мне нужно как раз удалять все парты по итогу он будет самым крупным, как мне посмотреть данные в самом парте?
https://clickhouse.tech/docs/en/sql-reference/statements/alter/delete/ вы это читали?
Обсуждают сегодня