SlideShare a Scribd company logo
Чернышев  Артём,
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
Хороший  пример
Хороший  пример@Вывод
Итого@Требования
Итого@Требования
• Периодичность
Итого@Требования
• Актуальность
• Периодичность
Итого@Требования
• Доступность
• Актуальность
• Периодичность
Итого@Требования
• Доступность
• Актуальность
• Периодичность
• Достоверность
Итого@Требования
• Доступность
• Актуальность
• Периодичность
• Достоверность
• Ценность
Итого@Требования
• Доступность
• Актуальность
• Периодичность
• Достоверность
• Ценность
• Целостность
Конец
Чернышев  Артём,
2ГИС
cai@2gis.ru
@chernyshev_art
Вопросы?

More Related Content

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

HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
Alexey Zinoviev
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
Илья Середа
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
Sergey Xek
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Badoo Development
 
Логическая витрина для доступа к большим данным
Логическая витрина для доступа к большим даннымЛогическая витрина для доступа к большим данным
Логическая витрина для доступа к большим данным
Sergey Gorshkov
 
Business Intelligence. Современный взгляд
Business Intelligence. Современный взглядBusiness Intelligence. Современный взгляд
Business Intelligence. Современный взглядAndrey Korshikov
 
Продвинутый анализ и машинное обучение с помощью виртуализации данных
Продвинутый анализ и машинное обучение с помощью виртуализации данныхПродвинутый анализ и машинное обучение с помощью виртуализации данных
Продвинутый анализ и машинное обучение с помощью виртуализации данных
Denodo
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
Sergey Xek
 
GrainTrack. ProAgro. Graintraders business process management
GrainTrack. ProAgro. Graintraders business process managementGrainTrack. ProAgro. Graintraders business process management
GrainTrack. ProAgro. Graintraders business process management
Graintrack
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Задания по первому занятию
Задания по первому занятиюЗадания по первому занятию
Задания по первому занятию
Татьяна Подоплелова
 
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
NaZapad
 
Жизнь консалтинга в мире DevOps
Жизнь консалтинга в мире DevOpsЖизнь консалтинга в мире DevOps
Жизнь консалтинга в мире DevOps
Ivan Evtukhovich
 
Четыре взгляда на Cradle
Четыре взгляда на CradleЧетыре взгляда на Cradle
Четыре взгляда на CradleAlekseyTimof
 
Виртуализация Данных: Введение
Виртуализация Данных: ВведениеВиртуализация Данных: Введение
Виртуализация Данных: Введение
Denodo
 
Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...
Ontico
 
Big data
Big dataBig data
Big data
mikeshagiev
 

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

HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
 
Логическая витрина для доступа к большим данным
Логическая витрина для доступа к большим даннымЛогическая витрина для доступа к большим данным
Логическая витрина для доступа к большим данным
 
Business Intelligence. Современный взгляд
Business Intelligence. Современный взглядBusiness Intelligence. Современный взгляд
Business Intelligence. Современный взгляд
 
Продвинутый анализ и машинное обучение с помощью виртуализации данных
Продвинутый анализ и машинное обучение с помощью виртуализации данныхПродвинутый анализ и машинное обучение с помощью виртуализации данных
Продвинутый анализ и машинное обучение с помощью виртуализации данных
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
GrainTrack. ProAgro. Graintraders business process management
GrainTrack. ProAgro. Graintraders business process managementGrainTrack. ProAgro. Graintraders business process management
GrainTrack. ProAgro. Graintraders business process management
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Задания по первому занятию
Задания по первому занятиюЗадания по первому занятию
Задания по первому занятию
 
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
Презентация Игорь Баньковский (Depositphotos) для NaZapad 3
 
Жизнь консалтинга в мире DevOps
Жизнь консалтинга в мире DevOpsЖизнь консалтинга в мире DevOps
Жизнь консалтинга в мире DevOps
 
Четыре взгляда на Cradle
Четыре взгляда на CradleЧетыре взгляда на Cradle
Четыре взгляда на Cradle
 
Виртуализация Данных: Введение
Виртуализация Данных: ВведениеВиртуализация Данных: Введение
Виртуализация Данных: Введение
 
Oblachnye vychisleniya -_ponyatiya_i_tehnologii
Oblachnye vychisleniya -_ponyatiya_i_tehnologiiOblachnye vychisleniya -_ponyatiya_i_tehnologii
Oblachnye vychisleniya -_ponyatiya_i_tehnologii
 
Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...
 
Big Data
Big DataBig Data
Big Data
 
Big data
Big dataBig data
Big data
 

More from CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
CodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
CodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
CodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
CodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
CodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
CodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
CodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
CodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
CodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
CodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
CodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
CodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
CodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
CodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
CodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
CodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
CodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
CodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
CodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
CodeFest
 

More from CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

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