<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=KOI8-R">
</head>
<body>
<p><font face="DejaVu Sans">Обновлённая архитектура БД для altrepodb
во вложении.<br>
<br>
Добавлены таблицы для хранения данных по таскам.</font><br>
</p>
<div class="moz-cite-prefix">01.04.2021 18:31, Anton Farygin пишет:<br>
</div>
<blockquote type="cite"
cite="mid:5d57e170-9f20-83e2-c965-97dc68d76538@basealt.ru">ok.
<br>
<br>
On 01.04.2021 16:15, Danil Shein wrote:
<br>
<blockquote type="cite">После изменения первичного ключа и полей
группировки получим существенное уменьшение объёма (почти в 4
раза) таблицы при незначительном увеличении времени исполнения
запросов:
<br>
<br>
CREATE TABLE Depends
<br>
(
<br>
pkg_hash UInt64,
<br>
dp_name String,
<br>
dp_version String,
<br>
dp_flag UInt32,
<br>
dp_type Enum8('require' = 1, 'conflict' = 2, 'obsolete' =
3, 'provide' = 4)
<br>
) ENGINE = MergeTree ORDER BY (dp_name, dp_version, dp_type)
PRIMARY KEY dp_name;
<br>
<br>
Дальнейшие оптимизации имеет смысл производить уже в момент
доработки серверной части.
<br>
<br>
01.04.2021 15:17, Anton Farygin пишет:
<br>
<blockquote type="cite">Спасибо.
<br>
<br>
а какая Cardinality у поля dpname в таблице Depends ?
<br>
Может быть стоит сделать её LowCardinality ?
<br>
<br>
Вопрос не простой, поиск по этому полю активно будет
использоваться в сложных запросах, анализирующих зависимости
исходных и бинарных пакетов. Позволит ли это изменение нам
уменьшить объём данных и увеличить скорость работы с ними.
<br>
<br>
<br>
CREATE TABLE Depends
<br>
(
<br>
pkg_hash UInt64,
<br>
dp_name String,
<br>
dp_version String,
<br>
dp_flag UInt32,
<br>
dp_type Enum8('require' = 1, 'conflict' = 2, 'obsolete'
= 3, 'provide' = 4)
<br>
) ENGINE = MergeTree ORDER BY (pkg_hash, dp_type, dp_name,
dp_version, dp_flag) PRIMARY KEY pkg_hash;
<br>
<br>
<br>
On 01.04.2021 12:41, Danil Shein wrote:
<br>
<blockquote type="cite">
<br>
Обновлённая структура БД во вложении
<br>
<br>
31.03.2021 14:06, Anton Farygin пишет:
<br>
<blockquote type="cite">On 31.03.2021 13:58, Danil Shein
wrote:
<br>
<blockquote type="cite">Поле pkgset_class добавлю вво
вложенную структуру pkgset_kv c ключом 'class'.
<br>
<br>
Выбрать его можно будет как и другие значения в запросе
вида:
<br>
<br>
<blockquote type="cite">select
*,pkgset_kv.v[indexOf(pkgset_kv.k,'type')] as
pkgset_class from PackageSetName
<br>
</blockquote>
<br>
В таблице PackageSetName колонка pkgset_name
переименована в pkgset_nodename
<br>
</blockquote>
<br>
<br>
Сбрось сюда, пожалуйста, новую структуру целиком.
<br>
<br>
<br>
<blockquote type="cite">
<br>
<br>
31.03.2021 10:40, Anton Farygin пишет:
<br>
<blockquote type="cite">Данил, есть предложение добавить
в PackageSetName ещё enum поле pkgset_class, в который
записывать такие варианты:
'repository','iso','rootfs','squashfs','installer'
<br>
<br>
Может быть вместо enum использовать lowcardinality
string.
<br>
<br>
Для того, что бы идентифицировать наборы пакетов ещё и
типам.
<br>
т.к. этот class будет использоваться довольно часто,
то лучше его в nested структуру не класть.
<br>
<br>
Ну и было бы неплохо обновить версию с последними
исправлениями.
<br>
<br>
On 29.03.2021 15:57, Danil Shein wrote:
<br>
<blockquote type="cite">Добрый день, коллеги!
<br>
<br>
В настоящее время идёт активная переработка
altrepodb - решения реализующее загрузку в единую БД
на ClickHouse информации о структуре и содержании
всех репозиториев и тасков для последующего анализа,
хранения истории и т.п.
<br>
<br>
Сейчас репозитории и таски грузятся в БД, анализ и
получение данных работает через сервер
altrepo_server (JSON API).
<br>
<br>
На текущий момент переделана базовая схема БД для
загрузки репозиториев.
<br>
Структура репозитория сохраняется в БД в виде
дерева, пакеты привязываются к соответствующим
веткам.
<br>
<br>
Новая структура таблиц для хранения информации о
тасках в процессе разработки.
<br>
<br>
SQL файл во вложении.
<br>
<br>
Обсуждение, замечания и предложения приветствуются.
<br>
<br>
Спасибо!
<br>
<br>
<br>
_______________________________________________
<br>
Devel mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a>
<br>
</blockquote>
<br>
<br>
_______________________________________________
<br>
Devel mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a>
<br>
</blockquote>
<br>
</blockquote>
<br>
_______________________________________________
<br>
Devel mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a>
<br>
</blockquote>
-- <br>
Данил Шеин / Danil Shein
<br>
<br>
<a class="moz-txt-link-abbreviated" href="mailto:E-mail:dshein@basealt.ru">E-mail:dshein@basealt.ru</a>
<br>
<br>
_______________________________________________
<br>
Devel mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a>
<br>
</blockquote>
<br>
<br>
_______________________________________________
<br>
Devel mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a>
<br>
</blockquote>
<br>
</blockquote>
<br>
_______________________________________________
<br>
Devel mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a><br>
</blockquote>
<pre class="moz-signature" cols="72">--
Данил Шеин / Danil Shein
E-mail: <a class="moz-txt-link-abbreviated" href="mailto:dshein@basealt.ru">dshein@basealt.ru</a></pre>
</body>
</html>