Upload
codefest
View
395
Download
2
Embed Size (px)
DESCRIPTION
http://2013.codefest.ru/doklad/44
Citation preview
Чернышев Артём, 2ГИС
Пути миграции перелётных данных
Миграция это - ETL
Миграция это - ETL
Extract
Миграция это - ETL
Extract Transform
Миграция это - ETL
Extract Transform Load
Откуда я знаю про миграцию Data warehousing
Откуда я знаю про миграцию Business Intelligence
Откуда я знаю про миграцию Big Data Management
Покажу на примере
Самый первый пример
Самый первый пример
• Есть логи скачиваний пакетов с сервера
Самый первый пример
• Есть логи скачиваний пакетов с сервера
• … но они в бинарном виде
Самый первый пример
• Есть логи скачиваний пакетов с сервера
• Нужен отчёт заданного вида в excel
• … но они в бинарном виде
Самый первый пример
• Есть логи скачиваний пакетов с сервера
• Нужен отчёт заданного вида в excel
• … но они в бинарном виде
• Каждый первый понедельник месяца
Самый первый пример
Самый первый пример@Чудеса Сервер доставлял не сразу
Два горячих чая этому господину
Самый первый пример@Чудеса Изменилась периодичность
Самый первый пример@Чудеса Увеличился объём данных
Самый первый пример@Чудеса Вид отчёта постоянно менялся
Самый первый пример@Выводы Никому не верь
Умей отличить заказчика от пользователя Самый первый пример@Выводы
Знай роль данных в бизнес-процессах Самый первый пример@Выводы
Мигрируй чаще Самый первый пример@Выводы
Самый первый пример Периодичность
Самый первый пример Периодичность
Самый первый пример Актуальность
Самый первый пример
• Понавставляли timestamp’ы
• Начали лить в RDBMS
• Разделили миграцию и представление
• Миграция по расписанию
Работа над ошибками
• Начали общаться с пользователями
Второй пример
Второй пример
• Появились клики
Второй пример
• Много других новых метрик
• Появились клики
Второй пример
• Много других новых метрик
• Появились клики
• Необходима связь со справочниками
Второй пример
• Много других новых метрик
• Появились клики
• Стало больше пользователей
• Необходима связь со справочниками
Второй пример
Второй пример@Чудеса MySql не любит, когда много данных
Второй пример@Чудеса Данные стали критичными для бизнеса
Второй пример@Чудеса Больше данных – больше ошибок
Второй пример@Выводы Важные данные нужно проверять
Второй пример@Выводы Важные данные нужно надёжно хранить
Второй пример@Чудеса Управлять данными в коде
Второй пример@Выводы Используй верные инструменты
Второй пример@Выводы Используй верные инструменты
Один источник
Второй пример@Выводы Используй верные инструменты
Один источник
Одно назначение +
Второй пример@Выводы Используй верные инструменты
Один источник
Одно назначение +
= Простая логика
+
Второй пример@Выводы Используй верные инструменты
Один источник
Одно назначение +
= SQL - скрипт
Простая логика +
Второй пример@Выводы Используй верные инструменты
Много источников
Второй пример@Выводы Используй верные инструменты
Много источников
Много назначений +
=
Второй пример@Выводы Используй верные инструменты
Много источников
Много назначений +
= ETL Tools (тысячи их)
Второй пример@Выводы Используй верные инструменты
Много источников
Много назначений +
= ETL Tools (тысячи их)
Второй пример@Выводы Используй верные инструменты
Много источников
Много назначений +
= ETL Tools (тысячи их)
Второй пример@Выводы Используй верные инструменты
Много источников
Много назначений +
= ETL Tools (тысячи их)
Второй пример@Выводы Используй верные инструменты
Много источников
Много назначений +
Второй пример@Выводы Используй верные инструменты
Много источников
Много назначений +
= Real - time
+
Второй пример@Выводы Используй верные инструменты
Много источников
Много назначений +
= Message Broker
Real - time +
Второй пример@Выводы Используй верные инструменты
Во всех остальных случаях
Пишите код, пожалуйста
Второй пример Доступность
Когда просят
Когда сможем
VS
Второй пример Достоверность
Второй пример Ценность
Второй пример
• Миграцию перевели на SSIS
• Перешли на MS SQL Server
• Смастерили систему проверок
• Начали формализовывать требования
Работа над ошибками
Чужой пример
Чужой пример
• Жила-была престарелая CRM
Чужой пример
• Много баз дислокации
• Жила-была престарелая CRM
Чужой пример
• Много баз дислокации
• Жила-была престарелая CRM
• Решили сделать новую
Чужой пример
• Много баз дислокации
• Жила-была престарелая CRM
• Решили сделать новую
• С одинокой базёнкой
Чужой пример
• Много баз дислокации
• Жила-была престарелая CRM
• Решили сделать новую
• С одинокой базёнкой
• Совершить миграцию поручили DBA
Чужой пример
Старая CRM Новая CRM
Пакет SSIS
Чужой пример@Чудеса DBA не понимает бизнес-логику
Чужой пример@Чудеса Проблемы выявлялись не сразу
Чужой пример@Чудеса Проблемы решались долго
Чужой пример@Выводы Исполнитель должен быть в контексте
Чужой пример@Выводы
Много сущностей
Чужой пример@Выводы
Много сущностей
Много данных +
Чужой пример@Выводы
Много сущностей
Много данных +
= Много бизнес-логики
+
Чужой пример@Выводы
Много сущностей
Много данных +
= Промежуточная база
Много бизнес-логики +
Чужой пример@Выводы Делай все возможные констрэйнты
Чужой пример Целостность
Хороший пример
Хороший пример
• Жила-была старая карта
Хороший пример
• Так же много баз дислокации
• Жила-была старая карта
Хороший пример
• Так же много баз дислокации
• Жила-была старая карта
• Сделать новую карту с одной базой
Хороший пример
• Так же много баз дислокации
• Жила-была старая карта
• Сделать новую карту с одной базой • Миграцию для прототипа делал разработчик
Хороший пример
Старая карта Новая карта
Хороший пример@Кусок кода
Хороший пример@Всё в память
Хороший пример@Переписал
Хороший пример
• Стали выходить из прототипа
Хороший пример
• Изменили модель данных на EAV
• Стали выходить из прототипа
Хороший пример
• Изменили модель данных на EAV
• Стали выходить из прототипа
• Нужно было переписать миграцию
Хороший пример
… и написать пакет SSIS
Хороший пример
Хороший пример@Вывод
Итого@Требования
Итого@Требования
• Периодичность
Итого@Требования
• Актуальность • Периодичность
Итого@Требования
• Доступность • Актуальность • Периодичность
Итого@Требования
• Доступность • Актуальность • Периодичность
• Достоверность
Итого@Требования
• Доступность • Актуальность • Периодичность
• Достоверность • Ценность
Итого@Требования
• Доступность • Актуальность • Периодичность
• Достоверность • Ценность • Целостность
Конец