Интеграция на уровне данных – особенности реализации
Нередко на проектах при обсуждении интеграции CRM с третьими системами изначально рассматривают использование веб-сервисов, которые хорошо поддерживают межплатформенное взаимодействие приложений. Но при наличии больших объемов данных как при первоначальной загрузке, так и при периодической синхронизации, этот метод интеграции демонстрирует полную несостоятельность. Наиболее целесообразно в такой ситуации использовать интеграцию на уровне данных, которая в разы повышает скорость загрузки.
Многие поставщики приложений указывают интеграцию на уровне данных среди стандартных методов интеграции и они отчасти правы, но все-таки есть определенные нюансы, которые я и хотел бы сегодня осветить.
Если не вдаваться в подробности, то интеграция на уровне данных, на первый взгляд, не выглядит чем-то сложным: «берем» необходимые данные из системы А и «переносим» их, например, в БД Siebel CRM
Но при более внимательном рассмотрении задачи выясняется, что модели данных в этих системах сильно отличаются, используются различные справочники значений и т.п.
Для корректного взаимодействия подобных систем необходимо создавать сложные SQL-процедуры интеграции, называемые ETL-процедурами (Extract, Transform, Load). Обычно таких процедур создается достаточно много, а некоторые из них могут содержать по несколько тысяч строк кода.
Но и это еще не все. Как правило, в реальных проектах обычно разбивают процесс передачи данных на два этапа.
Такое разбиение делает процесс интеграции более «прозрачным», а значит — управляемым. Если конкретизировать, то можно выделить следующие преимущества двухуровневой процедуры:
- разграничение ответственности между консультантами/разработчиками Siebel CRM и владельцами/разработчиками сторонних систем (System A, B и т. д.)
- ускорение процесса разработки интеграции, так как разные команды разработчиков работают параллельно над частями одной задачи
- упрощение отладки и эксплуатации, так как можно полностью контролировать передаваемые и получаемые данные на каждом этапе
Вторая часть данного процесса является особо важной, так как представляет собой загрузку непосредственно в целевые таблицы, данные из которых будут использоваться CRM-системой, а, следовательно, напрямую влияет на эффективность работы с клиентами.
Вот тут и стоит вернуться к стандартному методу интеграции, который упоминался ранее. Это предполагает наличие стандартных механизмов, упрощающих процесс интеграции на уровне данных. При наличии сложной структуры логической модели данных целевой базы для правильной работы обязательным является обеспечение целостности данных, учет дополнительных связей и заполнение всех необходимых атрибутов при переносе. Без наличия стандартного механизма качество интеграции будет непосредственно зависеть от уровня квалификации разработчика. При этом упомянутые тысячи строк SQL-кода только повышают влияние «человеческого фактора» на конечный результат.
Например, для Oracle Siebel CRM стандартным механизмом интеграции на уровне данных является Enterprise Integration Manager (EIM). Данный механизм охватывает именно вторую часть процесса передачи данных, повышая скорость и уменьшая вероятность возникновения ошибок. Для импорта данных в Siebel CRM используются стандартные таблицы, которые автоматически учитывают все связи и необходимые атрибуты.
Siebel CRM имеет достаточно сложную модель данных, поэтому при интеграции на уровне данных Oracle настоятельно рекомендует использовать именно Enterprise Integration Manager (EIM).
Интеграционные возможности Oracle Siebel CRM всегда выгодно выделяли данную CRM-систему на фоне конкурентов, поэтому в наших проектах мы не ограничиваемся лишь двумя методами интеграции, а стараемся использовать наиболее подходящий метод в каждом конкретном случае.
При первоначальной загрузке и периодической синхронизации данных в крупных организациях, объемы данных которых могут достигать десятков (иногда и сотен) миллионов записей, в подавляющем большинстве случаев предпочтение отдается интеграции на уровне данных. В отличие от интеграции на уровне бизнес-логики, этот метод не требует дополнительных ресурсов на обработку данных и работу приложений одновременно. Наличие же стандартных механизмов интеграции повышает корректность и полноту загружаемых данных, а также существенно ускоряет сам процесс.