Изменяю структуру CH, под трендовые фильмы#192
Merged
Conversation
Potatoes3212
approved these changes
Jul 31, 2025
Collaborator
Potatoes3212
left a comment
There was a problem hiding this comment.
Всё кайф. Про симофоры и треды интересно.
Potatoes3212
approved these changes
Jul 31, 2025
| self.task_queue.put((url, payload)) | ||
|
|
||
| def _send_request_post(self, url: str, payload: dict | None = None) -> dict[str, Any]: | ||
| requests.post(url, json=payload) |
Collaborator
There was a problem hiding this comment.
Недочёт: метод ничего не возвращает, а аннотация обещает dict[str, Any]
Kirill67tyar
approved these changes
Jul 31, 2025
Collaborator
Kirill67tyar
left a comment
There was a problem hiding this comment.
Крутая логика с запросами, буду ещё разбираться!
| def create_task(self, url: str, payload: dict | None = None) -> None: | ||
| self.task_queue.put((url, payload)) | ||
|
|
||
| def _send_request_post(self, url: str, payload: dict | None = None) -> dict[str, Any]: |
Collaborator
There was a problem hiding this comment.
Можно сделать staticmethod, т.к. self внутри метода не используется
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Более подробно с AggregatingMergeTree можно ознакомится в статье: https://habr.com/ru/articles/736518/
Только автор упоминает в статье использование локальных таблиц для матвью, не дистрибутивный (такой подход у меня не работал, данные неправильно распределялись на кластере, по итогу реализовал через дистрибутивные и все кайф летает)
Материализованное представление (materialized view) (матвью) в ClickHouse — это предварительно вычисленная структура данных, которая хранит результаты запроса SELECT. В отличие от обычного представления (VIEW), которое вычисляется при каждом обращении к нему, материализованное представление сохраняет данные физически после выполнения запроса и обновляется, как правило, при добавлении новых данных в исходную таблицу.
Тестирование:
make up-metrics-service- запустится весь сервис метрикpython3.12 backup/clickhouse_init_struct/generate_event.py- тут я хотел понять что такое многопоточность, локеры, семафоры поэтому набросал такой скрипт. Он выполняет 1000 запросов в многопоточном режиме в сервис метрик, после чего перекладывается вся логика на etl.trends_raw_data_dist- содержит уже перобразованые сырые данные из таблицы metrics_dist под тренды которая проставляет оценки событиямtrends_arggr_data_dist- неявно хранит агрегированные данные которая как раз таки группирует все события по определенным фильмам и дате.