[devel] altrepodb - архитектура БД
Anton Farygin
rider на basealt.ru
Чт Апр 1 15:17:18 MSK 2021
Спасибо.
а какая Cardinality у поля dpname в таблице Depends ?
Может быть стоит сделать её LowCardinality ?
Вопрос не простой, поиск по этому полю активно будет использоваться в
сложных запросах, анализирующих зависимости исходных и бинарных пакетов.
Позволит ли это изменение нам уменьшить объём данных и увеличить
скорость работы с ними.
CREATE TABLE Depends
(
pkg_hash UInt64,
dp_name String,
dp_version String,
dp_flag UInt32,
dp_type Enum8('require' = 1, 'conflict' = 2, 'obsolete' = 3,
'provide' = 4)
) ENGINE = MergeTree ORDER BY (pkg_hash, dp_type, dp_name, dp_version,
dp_flag) PRIMARY KEY pkg_hash;
On 01.04.2021 12:41, Danil Shein wrote:
>
> Обновлённая структура БД во вложении
>
> 31.03.2021 14:06, Anton Farygin пишет:
>> On 31.03.2021 13:58, Danil Shein wrote:
>>> Поле pkgset_class добавлю вво вложенную структуру pkgset_kv c ключом
>>> 'class'.
>>>
>>> Выбрать его можно будет как и другие значения в запросе вида:
>>>
>>>> select *,pkgset_kv.v[indexOf(pkgset_kv.k,'type')] as pkgset_class
>>>> from PackageSetName
>>>
>>> В таблице PackageSetName колонка pkgset_name переименована в
>>> pkgset_nodename
>>
>>
>> Сбрось сюда, пожалуйста, новую структуру целиком.
>>
>>
>>>
>>>
>>> 31.03.2021 10:40, Anton Farygin пишет:
>>>> Данил, есть предложение добавить в PackageSetName ещё enum поле
>>>> pkgset_class, в который записывать такие варианты:
>>>> 'repository','iso','rootfs','squashfs','installer'
>>>>
>>>> Может быть вместо enum использовать lowcardinality string.
>>>>
>>>> Для того, что бы идентифицировать наборы пакетов ещё и типам.
>>>> т.к. этот class будет использоваться довольно часто, то лучше его в
>>>> nested структуру не класть.
>>>>
>>>> Ну и было бы неплохо обновить версию с последними исправлениями.
>>>>
>>>> On 29.03.2021 15:57, Danil Shein wrote:
>>>>> Добрый день, коллеги!
>>>>>
>>>>> В настоящее время идёт активная переработка altrepodb - решения
>>>>> реализующее загрузку в единую БД на ClickHouse информации о
>>>>> структуре и содержании всех репозиториев и тасков для последующего
>>>>> анализа, хранения истории и т.п.
>>>>>
>>>>> Сейчас репозитории и таски грузятся в БД, анализ и получение
>>>>> данных работает через сервер altrepo_server (JSON API).
>>>>>
>>>>> На текущий момент переделана базовая схема БД для загрузки
>>>>> репозиториев.
>>>>> Структура репозитория сохраняется в БД в виде дерева, пакеты
>>>>> привязываются к соответствующим веткам.
>>>>>
>>>>> Новая структура таблиц для хранения информации о тасках в процессе
>>>>> разработки.
>>>>>
>>>>> SQL файл во вложении.
>>>>>
>>>>> Обсуждение, замечания и предложения приветствуются.
>>>>>
>>>>> Спасибо!
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Devel mailing list
>>>>> Devel на lists.altlinux.org
>>>>> https://lists.altlinux.org/mailman/listinfo/devel
>>>>
>>>>
>>>> _______________________________________________
>>>> Devel mailing list
>>>> Devel на lists.altlinux.org
>>>> https://lists.altlinux.org/mailman/listinfo/devel
>>>
>>
>> _______________________________________________
>> Devel mailing list
>> Devel на lists.altlinux.org
>> https://lists.altlinux.org/mailman/listinfo/devel
> --
> Данил Шеин / Danil Shein
>
> E-mail:dshein на basealt.ru
>
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
Подробная информация о списке рассылки Devel