99
Чернышев Артём, 2ГИС Пути миграции перелётных данных

CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Embed Size (px)

DESCRIPTION

http://2013.codefest.ru/doklad/44

Citation preview

Page 1: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чернышев  Артём, 2ГИС

Пути  миграции  перелётных  данных

Page 2: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Миграция  это  - ETL

Page 3: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Миграция  это  - ETL

Extract

Page 4: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Миграция  это  - ETL

Extract Transform

Page 5: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Миграция  это  - ETL

Extract Transform Load

Page 6: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Откуда  я  знаю  про  миграцию Data warehousing

Page 7: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Откуда  я  знаю  про  миграцию Business Intelligence

Page 8: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Откуда  я  знаю  про  миграцию Big Data Management

Page 9: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Покажу  на  примере

Page 10: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример

Page 11: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример

• Есть  логи скачиваний  пакетов  с  сервера

Page 12: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример

• Есть  логи скачиваний  пакетов  с  сервера

• …  но  они  в  бинарном  виде  

Page 13: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример

• Есть  логи скачиваний  пакетов  с  сервера

• Нужен  отчёт  заданного  вида  в  excel

• …  но  они  в  бинарном  виде  

Page 14: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример

• Есть  логи скачиваний  пакетов  с  сервера

• Нужен  отчёт  заданного  вида  в  excel

• …  но  они  в  бинарном  виде  

• Каждый  первый  понедельник  месяца

Page 15: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример

Page 16: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример@Чудеса Сервер  доставлял  не  сразу

Два горячих чая этому господину

Page 17: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример@Чудеса Изменилась  периодичность

Page 18: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример@Чудеса Увеличился  объём  данных

Page 19: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример@Чудеса Вид  отчёта  постоянно  менялся

Page 20: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример@Выводы Никому  не  верь

Page 21: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Умей  отличить  заказчика  от  пользователя Самый  первый  пример@Выводы

Page 22: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Знай  роль  данных  в  бизнес-процессах Самый  первый  пример@Выводы

Page 23: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Мигрируй  чаще Самый  первый  пример@Выводы

Page 24: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример Периодичность

Page 25: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример Периодичность

Page 26: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример Актуальность

Page 27: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Самый  первый  пример

• Понавставляли timestamp’ы  

• Начали  лить  в  RDBMS

• Разделили  миграцию  и  представление

• Миграция  по  расписанию

Работа  над  ошибками

• Начали  общаться  с  пользователями

Page 28: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример

Page 29: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример

• Появились  клики

Page 30: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример

• Много  других  новых  метрик

• Появились  клики

Page 31: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример

• Много  других  новых  метрик

• Появились  клики

• Необходима  связь  со  справочниками

Page 32: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример

• Много  других  новых  метрик

• Появились  клики

• Стало  больше  пользователей

• Необходима  связь  со  справочниками

Page 33: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример

Page 34: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Чудеса MySql не  любит,  когда  много  данных

Page 35: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Чудеса Данные  стали  критичными  для  бизнеса

Page 36: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Чудеса Больше  данных  – больше  ошибок

Page 37: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Важные  данные  нужно  проверять

Page 38: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Важные  данные  нужно  надёжно  хранить

Page 39: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Чудеса Управлять  данными  в  коде

Page 40: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Page 41: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Один  источник

Page 42: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Один  источник

Одно  назначение +

Page 43: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Один  источник

Одно  назначение +

= Простая  логика

+

Page 44: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Один  источник

Одно  назначение +

= SQL - скрипт

Простая  логика +

Page 45: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Много  источников

Page 46: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Много  источников

Много  назначений +

=

Page 47: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Много  источников

Много  назначений +

= ETL Tools (тысячи  их)

Page 48: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Много  источников

Много  назначений +

= ETL Tools (тысячи  их)

Page 49: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Много  источников

Много  назначений +

= ETL Tools (тысячи  их)

Page 50: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Много  источников

Много  назначений +

= ETL Tools (тысячи  их)

Page 51: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Много  источников

Много  назначений +

Page 52: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Много  источников

Много  назначений +

= Real - time

+

Page 53: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Много  источников

Много  назначений +

= Message Broker

Real - time +

Page 54: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример@Выводы Используй  верные  инструменты

Во  всех  остальных  случаях

Пишите  код,  пожалуйста

Page 55: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример Доступность

Когда  просят

Когда  сможем

VS

Page 56: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример Достоверность

Page 57: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример Ценность

Page 58: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Второй  пример

• Миграцию  перевели  на  SSIS

• Перешли  на  MS SQL Server

• Смастерили  систему  проверок

• Начали  формализовывать  требования

Работа  над  ошибками

Page 59: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример

Page 60: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример

• Жила-была  престарелая  CRM

Page 61: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример

• Много  баз  дислокации

• Жила-была  престарелая  CRM

Page 62: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример

• Много  баз  дислокации

• Жила-была  престарелая  CRM

• Решили  сделать  новую

Page 63: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример

• Много  баз  дислокации

• Жила-была  престарелая  CRM

• Решили  сделать  новую

• С  одинокой  базёнкой

Page 64: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример

• Много  баз  дислокации

• Жила-была  престарелая  CRM

• Решили  сделать  новую

• С  одинокой  базёнкой

• Совершить  миграцию  поручили  DBA

Page 65: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример

Старая  CRM Новая  CRM

Пакет  SSIS

Page 66: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример@Чудеса DBA не  понимает  бизнес-логику

Page 67: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример@Чудеса Проблемы  выявлялись  не  сразу

Page 68: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример@Чудеса Проблемы  решались  долго

Page 69: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример@Выводы Исполнитель  должен  быть  в  контексте

Page 70: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример@Выводы

Много  сущностей

Page 71: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример@Выводы

Много  сущностей

Много  данных +

Page 72: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример@Выводы

Много  сущностей

Много  данных +

= Много  бизнес-логики

+

Page 73: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример@Выводы

Много  сущностей

Много  данных +

= Промежуточная  база

Много  бизнес-логики +

Page 74: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример@Выводы Делай  все  возможные  констрэйнты

Page 75: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чужой  пример   Целостность

Page 76: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

Page 77: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

• Жила-была  старая  карта

Page 78: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

• Так  же  много  баз  дислокации

• Жила-была  старая  карта

Page 79: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

• Так  же  много  баз  дислокации

• Жила-была  старая  карта

• Сделать  новую  карту  с  одной  базой

Page 80: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

• Так  же  много  баз  дислокации

• Жила-была  старая  карта

• Сделать  новую  карту  с  одной  базой • Миграцию  для  прототипа  делал  разработчик

Page 81: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

Старая  карта Новая  карта

Page 82: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример@Кусок  кода

Page 83: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример@Всё  в  память

Page 84: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример@Переписал

Page 85: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

• Стали  выходить  из  прототипа

Page 86: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

• Изменили  модель  данных  на  EAV

• Стали  выходить  из  прототипа

Page 87: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

• Изменили  модель  данных  на  EAV

• Стали  выходить  из  прототипа

• Нужно  было  переписать  миграцию

Page 88: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

…  и  написать  пакет  SSIS

Page 89: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример

Page 90: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Хороший  пример@Вывод

Page 91: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Итого@Требования

Page 92: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Итого@Требования

• Периодичность

Page 93: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Итого@Требования

• Актуальность • Периодичность

Page 94: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Итого@Требования

• Доступность • Актуальность • Периодичность

Page 95: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Итого@Требования

• Доступность • Актуальность • Периодичность

• Достоверность

Page 96: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Итого@Требования

• Доступность • Актуальность • Периодичность

• Достоверность • Ценность

Page 97: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Итого@Требования

• Доступность • Актуальность • Периодичность

• Достоверность • Ценность • Целостность

Page 98: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Конец

Page 99: CodeFest 2013. Чернышев А. — Пути миграции перелётных данных

Чернышев  Артём, 2ГИС

[email protected] @chernyshev_art

Вопросы?