Untitled
unknown
plain_text
a year ago
5.2 kB
8
Indexable
Николай Миронов 11:42 Как мы гарантируем, что в tmp_sources данные актуальны? Что если в source1 и source2 есть разница между записями в рамках одного и того же набора измерения с тем же набором атрибутов? Мы ведь после UNION получим список записей, в которых есть неактуальные данные, а потом вмёржим их в таблицы с измерениями в dwh.d_ Например: Что если в source2 у строки craftsman_name, craftsman_address, craftsman_birthday, craftsman_email одно значение address, а в source3 у той же записей другое значение address? В итоге у нас в tmp_sources две записи про одного мастера, различающиеся только по значению поля craftsman_address Когда мы возьмем из tmp_sources SELECT DISTINCT craftsman_name, craftsman_address, craftsman_birthday, craftsman_email мы тоже получим две строки Далее мы идем обновлять dwh.d_craftsman по условию ON d.craftsman_name = t.craftsman_name AND d.craftsman_email = t.craftsman_email У нас есть матч с двумя этими строками и тогда мы запускаем UPDATE SET craftsman_address = t.craftsman_address, craftsman_birthday = t.craftsman_birthday, load_dttm = current_timestamp Поэтому два вопроса: 1. В таком случае какой в итоге адрес мы поставим этому мастеру в dwh.d_craftsman, если у него их два? 2. Как мы можем гарантировать, что такого случая не будет?) Николай Миронов 15:38 Отдельный вопрос: почему у нас в источниках есть wide таблица, которая по сути является агрегатом трёх других источников? Зачем использовать источники и их же агрегат? Николай Миронов 15:56 @vasilyevoleg привет! Я задал вопросы выше, посмотри, пожалуйста, как будет время (забыл тегнуть в первый раз) И еще вопросы: 1. Зачем мы третьем задании джойним tmp_sources с таблицами измерений, если все равно данные берем только из tmp_sources? 2. Зачем мы еще раз заполняем таблицу фактов в пятом задании, если уже заполняли её в третьем задании? 3. Почему мы не можем заполнить все наши четыре таблицы факт+измерения сразу из tmp_sources и всё? Я кажется плохо понимаю концептуально, что происходит от 1 до 5-го задания, объясни, пожалуйста :( Николай Миронов 16:03 В целом фидбек по этому блоку задач. В задачах очень плохо прописана последовательность рассуждений о том, что и зачем мы делаем. Кажется, что суть всей цепочки заданий описана в первом абзаце 2-й задачи: "Напишите универсальный скрипт для обновления данных в таблицах. Нужно учесть, что каждый день в источнике появляются новые или обновлённые данные, а старые — удаляются. " Потом часть этой логики дополняется на 4-й задаче: Ежедневное обновление данных должно состоять из следующих этапов: Извлечение данных из источников и размещение их во временной таблице. Обновление в хранилище строк, что были обновлены на источнике за последние сутки, то есть строк, ключи которых встречаются во временной таблице. Запись новых данных в хранилище. И то же самое дублируется в пятом. При этом в блоке "теория" тупо написан DDL для миграции данных, но ничего не сказано о том, что мы делаем, зачем делаем и как это должно работать. Это очень неудобно воспринимать. Я все задачи сделал, но ничего концептуально не понял совсем и уже час пытаюсь понять, что же хотел сказать автор
Editor is loading...
Leave a Comment