* [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
[parent not found: <10866469-c138-402e-4362-64aed07ee5af@altlinux.org>]
* 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
[parent not found: <4ca340f9-6938-763a-8d84-b1819aff5acf@altlinux.org>]
* 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