* [devel] altrepodb - архитектура БД
@ 2021-03-29 12:57 Danil Shein
2021-03-31 7:40 ` Anton Farygin
2022-08-15 0:58 ` Vitaly Lipatov
0 siblings, 2 replies; 9+ messages in thread
From: Danil Shein @ 2021-03-29 12:57 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1321 bytes --]
Добрый день, коллеги!
В настоящее время идёт активная переработка altrepodb - решения
реализующее загрузку в единую БД на ClickHouse информации о структуре и
содержании всех репозиториев и тасков для последующего анализа, хранения
истории и т.п.
Сейчас репозитории и таски грузятся в БД, анализ и получение данных
работает через сервер altrepo_server (JSON API).
На текущий момент переделана базовая схема БД для загрузки репозиториев.
Структура репозитория сохраняется в БД в виде дерева, пакеты
привязываются к соответствующим веткам.
Новая структура таблиц для хранения информации о тасках в процессе
разработки.
SQL файл во вложении.
Обсуждение, замечания и предложения приветствуются.
Спасибо!
--
Данил Шеин / Danil Shein
E-mail: dshein@basealt.ru
[-- Attachment #2: 0001_repodb_base.sql --]
[-- Type: application/sql, Size: 8751 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] altrepodb - архитектура БД
2021-03-29 12:57 [devel] altrepodb - архитектура БД Danil Shein
@ 2021-03-31 7:40 ` Anton Farygin
2021-03-31 10:58 ` Danil Shein
2022-08-15 0:58 ` Vitaly Lipatov
1 sibling, 1 reply; 9+ messages in thread
From: Anton Farygin @ 2021-03-31 7:40 UTC (permalink / raw)
To: devel
Данил, есть предложение добавить в 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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] altrepodb - архитектура БД
2021-03-31 7:40 ` Anton Farygin
@ 2021-03-31 10:58 ` Danil Shein
2021-03-31 11:06 ` Anton Farygin
0 siblings, 1 reply; 9+ messages in thread
From: Danil Shein @ 2021-03-31 10:58 UTC (permalink / raw)
To: devel
Поле 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
--
Данил Шеин / Danil Shein
E-mail: dshein@basealt.ru
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] altrepodb - архитектура БД
2021-03-31 10:58 ` Danil Shein
@ 2021-03-31 11:06 ` Anton Farygin
0 siblings, 1 reply; 9+ messages in thread
From: Anton Farygin @ 2021-03-31 11:06 UTC (permalink / raw)
To: devel
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
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] altrepodb - архитектура БД
@ 2021-04-01 12:17 ` Anton Farygin
2021-04-01 13:15 ` Danil Shein
0 siblings, 1 reply; 9+ messages in thread
From: Anton Farygin @ 2021-04-01 12:17 UTC (permalink / raw)
To: devel
Спасибо.
а какая 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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] altrepodb - архитектура БД
2021-04-01 12:17 ` Anton Farygin
@ 2021-04-01 13:15 ` Danil Shein
2021-04-01 15:31 ` Anton Farygin
0 siblings, 1 reply; 9+ messages in thread
From: Danil Shein @ 2021-04-01 13:15 UTC (permalink / raw)
To: devel
После изменения первичного ключа и полей группировки получим
существенное уменьшение объёма (почти в 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
--
Данил Шеин / Danil Shein
E-mail: dshein@basealt.ru
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] altrepodb - архитектура БД
2021-04-01 13:15 ` Danil Shein
@ 2021-04-01 15:31 ` Anton Farygin
0 siblings, 1 reply; 9+ messages in thread
From: Anton Farygin @ 2021-04-01 15:31 UTC (permalink / raw)
To: devel
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
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] altrepodb - архитектура БД
@ 2021-04-08 5:13 ` Anton Farygin
0 siblings, 0 replies; 9+ messages in thread
From: Anton Farygin @ 2021-04-08 5:13 UTC (permalink / raw)
To: devel
Данил, в структуре ещё не хватает содержимого plan/*
В частности - какие пакеты в task будут добавлены/удалены для каждой
архитектуры + src.rpm
Эта информация пригодится, если нам в дальнейшем захочется по запросу
генерить репозиторий и его apt'овые хеши для каждого задания.
On 07.04.2021 13:55, Danil Shein wrote:
>
> Обновлённая архитектура БД для 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 файл во вложении.
>>>>>>>>>
>>>>>>>>> Обсуждение, замечания и предложения приветствуются.
>>>>>>>>>
>>>>>>>>> Спасибо!
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] altrepodb - архитектура БД
2021-03-29 12:57 [devel] altrepodb - архитектура БД Danil Shein
2021-03-31 7:40 ` Anton Farygin
@ 2022-08-15 0:58 ` Vitaly Lipatov
1 sibling, 0 replies; 9+ messages in thread
From: Vitaly Lipatov @ 2022-08-15 0:58 UTC (permalink / raw)
To: ALT Linux Team development discussions; +Cc: Danil Shein
Danil Shein писал(а) 29.3.21 15:57:
> Добрый день, коллеги!
>
> В настоящее время идёт активная переработка altrepodb - решения
> реализующее загрузку в единую БД на ClickHouse информации о структуре
> и содержании всех репозиториев и тасков для последующего анализа,
> хранения истории и т.п.
>
> Сейчас репозитории и таски грузятся в БД, анализ и получение данных
> работает через сервер altrepo_server (JSON API).
Осталось неясным, доступна ли база публично, и чем закончилась история
по её разработке.
--
С уважением,
Виталий Липатов,
ALT Linux Team
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-08-15 0:58 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-29 12:57 [devel] altrepodb - архитектура БД Danil Shein
2021-03-31 7:40 ` Anton Farygin
2021-03-31 10:58 ` Danil Shein
2021-03-31 11:06 ` Anton Farygin
2021-04-01 12:17 ` Anton Farygin
2021-04-01 13:15 ` Danil Shein
2021-04-01 15:31 ` Anton Farygin
2021-04-08 5:13 ` Anton Farygin
2022-08-15 0:58 ` Vitaly Lipatov
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git