HTML Diff
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 =&gt; UNION ALL ; • DISTINCT &lt;-&gt; GROUP BY; • IN / NOT IN &lt;-&gt; EXISTS / NOT EXISTS.</p>
19 <p>Используем подходящие алгоритмы для конкретных задач. Переписываем структуру запроса: • используем CTE, Derived tables; • JOIN with OR =&gt; UNION ALL ; • DISTINCT &lt;-&gt; GROUP BY; • IN / NOT IN &lt;-&gt; 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