[devel] altrepodb - архитектура БД
Danil Shein
dshein на altlinux.org
Ср Апр 7 13:55:15 MSK 2021
Обновлённая архитектура БД для altrepodb во вложении.
Добавлены таблицы для хранения данных по таскам.
01.04.2021 18:31, Anton Farygin пишет:
> ok.
>
> On 01.04.2021 16:15, Danil Shein wrote:
>> После изменения первичного ключа и полей группировки получим
>> существенное уменьшение объёма (почти в 4 раза) таблицы при
>> незначительном увеличении времени исполнения запросов:
>>
>> 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 (dp_name, dp_version, dp_type) PRIMARY
>> KEY dp_name;
>>
>> Дальнейшие оптимизации имеет смысл производить уже в момент доработки
>> серверной части.
>>
>> 01.04.2021 15:17, Anton Farygin пишет:
>>> Спасибо.
>>>
>>> а какая 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 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
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20210407/8ad94006/attachment-0001.html>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : 0001_repodb_base.sql
Тип : application/sql
Размер : 13048 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20210407/8ad94006/attachment-0001.bin>
Подробная информация о списке рассылки Devel