50.00K
Category: databasedatabase

Разбор проекта первого спринта

1.

Разбор проекта первого
спринта
Султанмурад Абдуев
[email protected]

2.

Орг. моменты
• Обращаемся к наставнику на «ты»
• По желанию включаем камеры
• Задаем вопросы в любой момент, прерывать скучного лектора
приветствуется
• Задавать много вопросов, даже очень глупых, тоже
приветствуется, хотя глупых вопросов не существует
• Наставник должен включить камеру и запись
• Наставник должен предложить студентам книгу жалоб и
предложений

3.

Замечания от команды ревью
Вместо print() можно использовать логгер
https://www.astronomer.io/guides/logging/

4.

Замечания от команды ревью
Вместо pandas to_sql можно использовать метод copy
1. https://stackoverflow.com/questions/23103962/how-to-writedataframe-to-postgres-table

5.

Замечания от команды ревью
Pandas как правило не используют в проде для
обработки данных. Лучше всю обработку делать в SQL, а
транспортный слой делать как можно проще и тоньше

6.

Замечания от команды ревью
Записывать данные локально перед записью в stage
слой не всегда обязательно

7.

Замечания от команды ревью
• Замечание: Использование stage (user_log) слоя для
построения витрины
• Решение: Витрина не должна ссылаться на stage слой. Как
правило этот слой удаляют перед записью новых данных.
Витрина должна ссылаться исключительно на таблицу
фактов и справочники

8.

Замечания от команды ревью
• Замечание: Не соблюдается недельный разрез витрины
f_customer. Просто каждый день пишутся данные и в
итоге получается не одна запись за неделю, а семь.
• Решение: Даг отрабатывает ежедневно, если просто
дописывать данные, у нас не будет недельного разреза,
каждый раз будут дописываться актуальные данные, но
старые при этом останутся в таблице. Чтобы это исправить
перед вставкой данных надо добавить код, который будет
удалять данные за текущий период

9.

Замечания от Дмитрия Золотаренко
Использовать вместо delete/insert/update – merge
https://www.postgresql.org/docs/current/sql-merge.html

10.

Замечания от Дмитрия Золотаренко
• Использовать вместо множественных delete – truncate по
партициям
English     Русский Rules