From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: devel@lists.altlinux.org References: <32d3ca33-a1ed-ba90-2583-1bae3dcdb5f0@altlinux.org> <979f1e23-aa85-1476-59e2-67db933d812a@basealt.ru> <578e0a83-62bc-ca72-2171-3fb3d9c034ca@altlinux.org> <10866469-c138-402e-4362-64aed07ee5af@altlinux.org> <2d65a61b-6272-4918-77f8-0853048a3240@basealt.ru> <7de22131-8dfb-7537-bcb8-aa166fa09e5e@altlinux.org> From: Anton Farygin Organization: BaseALT Message-ID: <5d57e170-9f20-83e2-c965-97dc68d76538@basealt.ru> Date: Thu, 1 Apr 2021 18:31:54 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: <7de22131-8dfb-7537-bcb8-aa166fa09e5e@altlinux.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [devel] =?utf-8?b?YWx0cmVwb2RiIC0g0LDRgNGF0LjRgtC10LrRgtGD0YA=?= =?utf-8?b?0LAg0JHQlA==?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2021 15:31:54 -0000 Archived-At: List-Archive: List-Post: 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 >