Все, что вам необходимо знать при переходе с Oracle в Greenplum

Задача по уходу с Oracle, SQL Server, Teradata и других СУБД, которые вот-вот могут превратиться в тыкву, не теряет актуальности. Кто-то все еще надеется переждать, но большинство систем невозможно долго удерживать в подвешенном состоянии, так как это мешает развитию. Поэтому миграция больше не опция - это необходимость.

Для успеха в миграции базы данных важно не ошибиться в ответах на два вопроса: куда и как? Очевидно, что неверный выбор новой СУБД может обернуться полной потерей работоспособности системы. Но мало выбрать цель, важно чтобы ее достижение укладывалось в разумные срок и бюджет. Как определить выигрышную комбинацию ответов? Давайте разбираться. Мы расскажем, в каких случаях вам необходимо обратить внимание на Greenplum и как успешно перейти на него.

Почему Greenplum?

В качестве исходной СУБД мы возьмем Oracle, потому что это наиболее распространенная ситуация и при этом выбор целевой технологии неочевиден. В первую очередь важны особенности использования базы, а не конкретная технология. Если вы сейчас используете другую базу данных, основные причины перехода на Greenplum для вас будут те же.

Большой объем данных. Если у вас уже более 1ТБ, то это само по себе верный признак необходимости присмотреться к Greenplum.

Аналитические задачи. Формирование отчетности, обработка данных для программы лояльности, расширенный анализ полуструктурированных данных, сбор и обработка данных с IoT-устройств - на российском рынке лучшим решением этих задач является Greenplum.

Наличие качественной техподдержки. В корпоративном сегменте она особенно важна. Arenadata - это российский разработчик решений на базе Greenplum, который обеспечивает техподдержку, качество которой проверено временем.

Необходимость масштабирования. Greenplum изначально является массивно-параллельной системой, которая способная работать на множестве серверов, что делает горизонтальное масштабирование простым, доступным и надежным способом увеличения производительности

Эффективное использование облачных платформ. В России стремительно растет популярность “облаков”. Архитектура Greenplum отлично сочетается с облачным ландшафтом. Кроме того облачные платформы, такие как VK Cloud, уже предлагают готовые решения на базе Greenplum.

Проще говоря, если вы используете или строите OLAP (online analytical processing) систему, то на российском рынке Greenplum является оптимальным выбором.

Подготовка к миграции

Анализ текущей системы

Мы рекомендуем начать с анализа исходной базы данных. Оценка объема данных и количества кода поможет определить, какие ресурсы вам потребуются для выполнения миграции. Но нельзя останавливаться только на количественных показателях. В процессе развития любой системы в ней накапливается технический долг и мертвый код. В некоторых случаях в архитектуре появляются “костыли”, а реальная функциональность перестает соответствовать документации. Необходимо определить, что следует перенести как есть, что требует модификации, а от чего следует избавиться. Это поможет упростить процесс и улучшить результат миграции.

Оценку и анализ исходной базы данных можно упростить, используя подходящие утилиты. Мы рекомендуем бесплатный инструмент Конвертум Сканер. Он работает локально, без подключения к интернету, что гарантирует конфиденциальность. Конвертум Сканер формирует подробный отчет о вашей базе данных. Для оценки размера проекта вы получите такую информацию как: количество объектов (таблиц, пакетов, хранимых процедур, функций, триггеров, представлений и т.п.), объем данных и количество строк SQL кода. Кроме того, отчет Конвертум Сканера включает анализ сложности вашего кода.

Выбор инструментов для миграции

Какой бы высокой ни была квалификация вашей технической команды, ей будет не хватать реального опыта в миграции и экспертизы в Greenplum. Сопоставив информацию, собранную на этапе анализа, с возможностями своей команды, вы можете, если потребуется, количественно и качественно ее усилить. Но в любом случае эффективность команды будет сильно зависеть от вспомогательных инструментов.

Сегодня существуют и успешно применяются инструменты, способные автоматизировать как перенос данных, так и конвертацию SQL объектов. Например, Конвертум Мастер. Тем не менее, в рамках конкретного проекта для каждой из этих двух задач следует определить свой набор ключевых требований к инструменту и делать выбор раздельно.

При переносе данных наиболее важным критерием является скорость миграции. При миграции в Greenplum обычно речь идет о терабайтах, если не о десятках терабайтов, и даже самые производительные инструменты не всегда позволяют выполнить перенос за допустимое время простоя системы. Подробнее миграцию данных мы обсудим в отдельном пункте.

Конвертация PL/SQL, в свою очередь, является очень трудоемкой частью перехода с Oracle на Greenplum. Ручное переписывание 10.000 строк занимает 3-5 недель в зависимости от сложности кода и квалификации разработчика. Автоматизация конвертации позволяет повысить скорость в 2-5 раз. Выделите время и протестируйте все инструменты, которые сможете найти. Выберите тот, который генерирует наилучший результат. Обратите внимание на юзабилити и качество техподдержки - эти факторы также влияют на сокращение трудозатрат.

Подготовка плана

Миграция базы данных - это серьезный проект. Его успех во многом зависит от наличия четкого плана. Определите общую стратегию, состав команды, вспомогательные инструменты и сроки всех этапов, включая тестирование. Сообщите о старте и сроках проекта всем, кто работает с системой. Запланируйте необходимое обучение.

Миграция данных

Как мы уже отметили, главной проблемой будет необходимость уложиться в доступное время простоя системы. В основном это зависит от производительности инструмента миграции. Например, Конвертум Мастер обеспечивает скорость на уровне 50 ГБ/ч. Кроме того, на скорость переноса данных влияют производительность серверов, настройки исходной и целевой баз данных, скорость сети, использование LOB и многое другое. Следует учесть, что при миграции в облако время на перенос данных, как правило, увеличивается.

Аналитические системы часто содержат много исторических данных, которые не изменяются в настоящее время. Определите, сколько у вас таких данных, и перенесите их заранее. Это гарантирует сокращение времени простоя, иногда в несколько раз.

Если неизменяемых данных мало, то следует использовать репликацию. С ее помощью теоретически можно достичь нулевого времени простоя. Данные переносятся без отключения системы, а репликатор отслеживает изменения, которые переносятся позже. Однако это наиболее сложная часть миграции данных. Если нет возможности поручить настройку репликации опытному эксперту, то запланируйте на нее дополнительное время.

Вам также потребуется выполнить такие задачи, как перенос таблиц и индексов, сопоставить типы данных и т.п. Как правило, они не вызывают серьезных проблем, но все равно требуют времени. Инструмент Конвертум обеспечивает гибкие и удобные настройки для оптимизации этих задач. Протестировать скорость миграции данных на вашем оборудовании и в целом освоить инструмент позволяет 30-ти дневная бесплатная пробная лицензия.

Конвертация PL/SQL

Как правило, большая часть кода, который надо конвертировать, находится в самой базе Oracle, а конкретнее - в пакетах, хранимых процедурах, функциях, триггерах и представлениях. Кроме того SQL запросы могут содержать приложения и ETL/ELT-процессы.

Как известно Oracle использует PL/SQL, а Greenplum в целом совместим с PL/pgSQL. Эти диалекты SQL различаются достаточно сильно, поэтому правка кода руками займет много времени. Потребуется исправить широкий спектр ошибок: от незначительных отличий синтаксиса до разработки эквивалентов для особенностей Oracle, которых нет в Greenplum.

Если вы активно использовали в Oracle встроенные пакеты, иерархические запросы, табличные типы данных, сводные операторы, функции для работы с датами и прочие специфические возможности, то вам следует запланировать на миграцию кода дополнительное время. Также оно потребуется при конвертации динамического SQL и работы с системными объектами.

Вы можете рассчитывать на помощь одного из множества инструментов для миграции в PostgreSQL, благодаря совместимости между ним и Greenplum. Но конечно, эффективнее будет использовать инструмент с миграцией именно в Greenplum, например, Конвертум Мастер. Еще больше поднять эффективность Конвертума позволяет кастомизации инструмента - добавление новых правил конвертации, специфических для вашего проекта. Команда экспертов Конвертума вносит новые правила за 3-5 рабочих дней.

Оптимизация

Greenplum славится высокой производительностью, но к сожалению, после конвертации код из Oracle не будет оптимальным и не покажет высокого быстродействия. Сразу после миграции найдите самые проблемные узкие места и оптимизируйте их - это позволит добиться производительности, достаточной для начала эксплуатации.

В общем случае оптимизация производительности - процесс постоянный. После миграции его интенсивность зависит от исходных требований и реальных показателей, полученных в конкретном случае.

Тестирование

С точки зрения тестирования, база данных, полученная в результате миграции, ничем не отличается от разработанной с нуля. Не стоит недооценивать важность тестирования после миграции. Но его можно упростить используя тест кейсы исходной системы.

В рамках тестирования вам потребуются тестовые данные. Вы можете оптимизировать трудозатраты, если используете их загрузку для обкатки основного процесса миграции данных.

Так же как и тестирование, развертывание и внедрение новой базы данных не является чем-то специфическим. Если потребуется, используйте рекомендации Greenplum, производителей оборудования и провайдеров облачных платформ.

Заключение

Выбор новой СУБД - ответственное решение. Новая технология должна успешно решать текущие задачи и внушать уверенность в перспективе. Если для вас Greenplum является оптимальной заменой Oracle, то для успешной миграции есть все возможности.

Если вы рассматриваете использование нашего набора инструментов Конвертум, будем рады ответить на любые вопросы о нем.

Надеемся, что наша статья окажется полезной и поможет избежать проблем при миграции с Oracle на Greenplum!

66
Начать дискуссию