0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: data science, data engineer, инженеры данных, оптимизация, расчёты, mindmap</p>
1
<p>Теги: data science, data engineer, инженеры данных, оптимизация, расчёты, mindmap</p>
2
<p>Рано или поздно вы столкнётесь с моментом, когда pipeline’ы начнут разваливаться, появятся ужасные<strong>bottleneck</strong>’и, пользователи начнут жаловаться на медленную работу, а витрины для CEO не будут рассчитаны к 9.00 утра. И лучше быть готовым к этому моменту.</p>
2
<p>Рано или поздно вы столкнётесь с моментом, когда pipeline’ы начнут разваливаться, появятся ужасные<strong>bottleneck</strong>’и, пользователи начнут жаловаться на медленную работу, а витрины для CEO не будут рассчитаны к 9.00 утра. И лучше быть готовым к этому моменту.</p>
3
<p>За драгоценные ресурсы в высоконагруженных решениях<strong>соревнуются все</strong>: • ETL-процессы; • BI-инструменты; • Data scientists; • бизнес-пользователи.</p>
3
<p>За драгоценные ресурсы в высоконагруженных решениях<strong>соревнуются все</strong>: • ETL-процессы; • BI-инструменты; • Data scientists; • бизнес-пользователи.</p>
4
<p>Приоритетной задачей<strong>Инженеров Данных</strong>становится организация оптимального хранения, вычислений и поставок данных конечным потребителям.</p>
4
<p>Приоритетной задачей<strong>Инженеров Данных</strong>становится организация оптимального хранения, вычислений и поставок данных конечным потребителям.</p>
5
<p>Предлагаю<strong>Mindmap</strong>основных факторов, которые нужно принять во внимание для Fine Tuning вашего Хранилища.</p>
5
<p>Предлагаю<strong>Mindmap</strong>основных факторов, которые нужно принять во внимание для Fine Tuning вашего Хранилища.</p>
6
<h2>Организация мониторинга</h2>
6
<h2>Организация мониторинга</h2>
7
<p>Умеем хранить историю запросов и можем понять, какие запросы и участки pipelines работают хуже всего (медленнее, с наибольшим потреблением ресурсов).</p>
7
<p>Умеем хранить историю запросов и можем понять, какие запросы и участки pipelines работают хуже всего (медленнее, с наибольшим потреблением ресурсов).</p>
8
<h2>Бизнес-смысл</h2>
8
<h2>Бизнес-смысл</h2>
9
<p>Убеждаемся, что запрос точно выполняет ту логику, для которой он реализован.</p>
9
<p>Убеждаемся, что запрос точно выполняет ту логику, для которой он реализован.</p>
10
<h2>План исполнения запроса</h2>
10
<h2>План исполнения запроса</h2>
11
<p>Умеем построить Execution Plan и трактовать его. Обращаем внимание на ключевые слова желательного и нежелательного воздействия.</p>
11
<p>Умеем построить Execution Plan и трактовать его. Обращаем внимание на ключевые слова желательного и нежелательного воздействия.</p>
12
<h2>Партиционирование + Сегментирование</h2>
12
<h2>Партиционирование + Сегментирование</h2>
13
<p>Делим большие таблицы на кусочки по горизонтали и вертикали. Читаем только необходимые части данных.</p>
13
<p>Делим большие таблицы на кусочки по горизонтали и вертикали. Читаем только необходимые части данных.</p>
14
<h2>Фильтры</h2>
14
<h2>Фильтры</h2>
15
<p>Читаем только нужные нам данные. Используем фильтры в запросе (WHERE) и условиях соединения (JOIN) с целью исключения повторяющихся значений и/или ненужных избыточных объёмов данных. Вы уже можете сказать, что не так с этим запросом:</p>
15
<p>Читаем только нужные нам данные. Используем фильтры в запросе (WHERE) и условиях соединения (JOIN) с целью исключения повторяющихся значений и/или ненужных избыточных объёмов данных. Вы уже можете сказать, что не так с этим запросом:</p>
16
SELECT * FROM table WHERE 1 = 1<h2>Статистики</h2>
16
SELECT * FROM table WHERE 1 = 1<h2>Статистики</h2>
17
<p>Следим за наличием и актуальностью статистик - важнейших показателей, на основании которых оптимизатор строит план запроса. Включает: количество строк, уникальных значений, селективность, гистограммы распределения.</p>
17
<p>Следим за наличием и актуальностью статистик - важнейших показателей, на основании которых оптимизатор строит план запроса. Включает: количество строк, уникальных значений, селективность, гистограммы распределения.</p>
18
<h2>Оптимизируем код</h2>
18
<h2>Оптимизируем код</h2>
19
<p>Используем подходящие алгоритмы для конкретных задач. Переписываем структуру запроса: • используем CTE, Derived tables; • JOIN with OR => UNION ALL ; • DISTINCT <-> GROUP BY; • IN / NOT IN <-> EXISTS / NOT EXISTS.</p>
19
<p>Используем подходящие алгоритмы для конкретных задач. Переписываем структуру запроса: • используем CTE, Derived tables; • JOIN with OR => UNION ALL ; • DISTINCT <-> GROUP BY; • IN / NOT IN <-> EXISTS / NOT EXISTS.</p>
20
<h2>Декомпозиция</h2>
20
<h2>Декомпозиция</h2>
21
<p>Разбиваем сложный запрос на несколько мелких и более простых шагов-вычислений.</p>
21
<p>Разбиваем сложный запрос на несколько мелких и более простых шагов-вычислений.</p>
22
<h2>Песочница для опытов</h2>
22
<h2>Песочница для опытов</h2>
23
<p>Используем песочницы и временные таблицы для тестирования производительности и алгоритмов.</p>
23
<p>Используем песочницы и временные таблицы для тестирования производительности и алгоритмов.</p>
24
<h2>Помощь коллег</h2>
24
<h2>Помощь коллег</h2>
25
<p>Последнее по порядку, но не по важности. Советуйтесь с коллегами: • они могли уже решать подобные задачи; • в процессе обсуждения рождаются идеи и решения.</p>
25
<p>Последнее по порядку, но не по важности. Советуйтесь с коллегами: • они могли уже решать подобные задачи; • в процессе обсуждения рождаются идеи и решения.</p>
26
<p>В рамках курса<a>"Data Engineer"</a>мы: • подробно остановимся на каждом из факторов; • закрепим знания в проектной работе; • рассмотрим Case Studies: примеры задач, проблем и способы их решения.</p>
26
<p>В рамках курса<a>"Data Engineer"</a>мы: • подробно остановимся на каждом из факторов; • закрепим знания в проектной работе; • рассмотрим Case Studies: примеры задач, проблем и способы их решения.</p>
27
<p><em>Остались вопросы? Пишите их в комментариях!</em></p>
27
<p><em>Остались вопросы? Пишите их в комментариях!</em></p>
28
28