Друид не похож на обычную базу данных, в которой вы определяете структуру, и эта структура применяется ко всем данным.
Данные хранятся в сегментах. Каждый сегмент содержит данные, которые были помещены в этот сегмент, вместе со «структурой» этого сегмента.
Итак, изменив его в вашем источнике данных spe c, вы убедитесь, что вновь созданные сегменты не будут включать этот новый столбец. Однако существующие сегменты по-прежнему будут содержать столбец.
Чтобы удалить этот столбец, необходимо повторно проиндексировать старые сегменты. Во время этой задачи переиндексации вы можете прочитать данные из существующих сегментов и применить к ним новый источник данных spe c. Затем вы можете записать его в тот же сегмент, откуда вы его прочитали.
Смотрите эту ссылку, чтобы прочитать данные из существующих источников данных: https://druid.apache.org/docs/latest/ingestion/native-batch.html#druid -input-source
В последней версии druid (0.17.0) это изменено , Ранее это было сделано IngestSegmentFirehose.
Пожалуйста, убедитесь, что вы обрабатываете весь сегмент. Если вы перезаписываете только часть сегмента, все остальные данные будут потеряны (по крайней мере, в новой версии ваших данных).
Также обратите внимание: после применения перезаписи druid поместит ваши новые данные в более новой версии. Тем не менее, ваша «старая» версия все еще существует. Если вы не знаете об этом, ваше хранилище данных может очень быстро расти.
Если вы довольны своим результатом, вам следует выполнить задание KILL. Это удалит все данные (из более старых версий), которые больше не являются «активной» версией.
Если вы PHP пользователь, вы можете взглянуть на этот пакет: https://github.com/level23/druid-client
Мы реализовали эти задачи по переиндексации вместе с легким запрос в классе. Может быть, это поможет.