MarkLogic
Внимание: Информация, представленная ниже, носит исключительно исторический и справочный характер. Компания MarkLogic, её продукты и технологии описываются в контексте общих сведений о программном обеспечении для управления данными. Статья не содержит призывов к использованию какого-либо конкретного программного обеспечения или технологий.
MarkLogic — это многомодельная система управления базами данных (СУБД) и платформа для интеграции данных, разработанная одноимённой американской компанией. Основное назначение MarkLogic заключается в обработке и индексировании неструктурированных, полуструктурированных и структурированных данных в масштабах предприятия, обеспечивая возможности для построения операционных data-хабов (over-data-hub — операционный узел данных) и систем управления мастер-данными (MDM — Master Data Management). Система позиционируется для задач, требующих консолидации больших объёмов разнородной информации из множества источников с сохранением полного контекста (так называемый подход «сохранить всё»).
История
Компания MarkLogic (изначально — Cerisent) была основана в 2001 году Кристофером Линдблом, Полом Хипом и другими разработчиками, ранее работавшими над системой для полнотекстового поиска. Первая коммерческая версия продукта была выпущена в 2003 году. Изначально база данных позиционировалась как «XML-база данных с поддержкой XQuery» — языка запросов к XML-документам.
Ключевыми ранними заказчиками выступили правительственные и разведывательные службы США, которым требовалась система, способная индексировать гигантские объёмы текстовой и документированной информации, сохраняя связи между сущностями. Впоследствии сфера применения расширилась: в 2010-е годы MarkLogic активно внедрялась в финансовом секторе (например, в банках для верификации клиентов — KYC, Know Your Customer), здравоохранении и медиа-индустрии.
В 2015 году компания привлекла 102 миллиона долларов в ходе раунда финансирования. В 2020-е годы, с ростом популярности облачных решений и конкурентов (например, MongoDB, Elasticsearch), MarkLogic столкнулась с вызовами. В 2023 году компания была приобретена частной инвестиционной фирмой Vector Capital, после чего начался процесс ребрендинга и смены бизнес-модели с лицензирования на подписку (SaaS).
Ключевые характеристики и архитектура
Многомодельность и поддержка форматов
В отличие от традиционных реляционных СУБД (Oracle, PostgreSQL), MarkLogic не требует приведения всех данных к строгой схеме таблиц. Она позволяет хранить, индексировать и запрашивать данные в нескольких форматах одновременно:
- XML — базовый формат для хранения иерархических документов.
- JSON — для современных веб-приложений и API.
- RDF (Resource Description Framework) — для построения семантических графов и онтологий.
- Текст и бинарные объекты — для хранения неструктурированного контента (PDF, изображения в виде ссылок на блоб-объекты).
Принцип «сохранить всё» (Store Everything)
Это философское и архитектурное отличие MarkLogic от многих других систем. Вместо того чтобы преобразовывать данные в унифицированную структуру (например, разбить документ на множество связанных таблиц), MarkLogic хранит оригинальные документы целиком. Все метаданные, семантические связи и полнотекстовый индекс строятся поверх этих исходных документов. Это позволяет вернуться к исходному состоянию в любой момент и не терять информацию при ETL-процессах.
ACID-транзакции
В отличие от многих NoSQL-решений, которые жертвуют кислотностью для производительности, MarkLogic поддерживает строгие транзакционные свойства (ACID): атомарность, согласованность, изоляцию и долговечность. Это делает её пригодной для критически важных бизнес-операций.
Полнотекстовый поиск
MarkLogic наследует мощный движок полнотекстового поиска. Индексы строятся не только по точным совпадениям, но и по лингвистике: поддерживаются лемматизация, стемминг, синонимы, нечёткий поиск и поиск по фразам. Система может обрабатывать естественно-языковые запросы и давать релевантные результаты, ранжированные по алгоритму, схожему с TF-IDF (term frequency–inverse document frequency).
Горизонтальное масштабирование
MarkLogic является распределённой системой. Кластер состоит из нескольких серверов (узлов). Данные автоматически шардируются (распределяются по частям) и реплицируются между узлами для обеспечения отказоустойчивости. Добавление нового узла в кластер позволяет линейно наращивать как объём хранимых данных, так и производительность чтения/записи.
Семантический граф
С версии 8.0 (2015 г.) в платформу была встроена поддержка семантической сети на базе стандартов W3C: RDF, SPARQL и технологий рассуждений (reasoning). Это позволяет строить графы знаний, связывающие сущности разного типа (людей, организации, события) не по жёстким внешним ключам, а по семантическим предикатам («является частью», «находится под контролем»).
Классификация и виды
С точки зрения классификации баз данных, MarkLogic относится к классам:
- NoSQL (точнее, Not Only SQL) — хотя поддерживает SQL-доступ через ODBC/JDBC, основная модель — документ-ориентированная и графовая.
- Multi-model — объединяет в себе функции документной базы, базы данных XML, графовой базы (RDF) и поискового движка.
- Enterprise NoSQL — термин, используемый для решений, совмещающих горизонтальную масштабируемость с ACID-транзакциями и корпоративной безопасностью.
До приобретения Vector Capital коммерческие продукты делились на редакции:
- MarkLogic Server — полнофункциональная версия для развёртывания на собственной инфраструктуре.
- MarkLogic Cloud — полностью управляемая облачная версия.
- MarkLogic Data Hub Service (DHS) — облегчённая PaaS-версия для облачных сред (AWS, Azure).
После смены модели в 2024 году все предложения были объединены в единую облачную платформу под новым брендом (подробности на момент написания статьи не раскрыты).
Языки запросов и интерфейсы
Одной из отличительных особенностей является поддержка нескольких языков запросов, что позволяет разработчикам использовать наиболее подходящий инструмент:
- XQuery — нативный язык запросов, рекомендованный W3C. Позволяет выполнять сложные FLWOR-выражения (For, Let, Where, Order by, Return) для XML-данных.
- JavaScript (Server-Side JavaScript) — с версии 8.0 поддерживается исполнение запросов и бизнес-логики на языке JavaScript.
- SPARQL — для запросов к семантическим данным (RDF).
- SQL — через шлюз ODBC/JDBC для совместимости с BI-инструментами (Tableau, Power BI).
- REST API — для интеграции с веб-приложениями.
Применение и значение
Операционный Data Hub
Главная ниша MarkLogic — создание операционных узлов данных. В отличие от аналитических data lakes (озёр данных) на Hadoop или Spark, которые оптимизированы для исторической аналитики, OT-Data Hub (Operational Data Hub) позволяет бизнес-приложениям читать и записывать данные в режиме реального времени с гарантиями консистентности. Типичный сценарий — консолидация данных из сотен унаследованных систем (CRM, ERP, биллинг, HR) в единую точку истины (single source of truth).
Управление мастер-данными (MDM)
Благодаря семантическому графу и поддержке нечёткого поиска, MarkLogic эффективно решает задачу идентификации и сшивания записей, относящихся к одному и тому же объекту (например, «Петров И.И.» и «Ivan Petrov» — один и тот же клиент). Система может автоматически обнаруживать дубликаты и объединять их в золотую запись (golden record).
Федеральный поиск и разведка
Исторически система зарекомендовала себя в спецслужбах, где требовался безопасный, но всеобъемлющий доступ к массивам разведданных. МаркЛоджик позволяет выполнять поиск по классам секретности, управлять доступом на уровне отдельных документов и даже отдельных фрагментов документа (redaction — автоматическая маскировка конфиденциальных данных).
Интересные факты
- Название продукта изначально происходило от термина «Markup Logic» (логика разметки), что отражало её связь с XML/XQuery. Позже компания утверждала, что название стало символом способности отмечать (mark) логику бизнеса в данных.
- В 2013 году MarkLogic была выбрана в качестве движка для Национальной программы электронного здравоохранения Нидерландов (EPD), но после протестов по поводу приватности программу закрыли.
- Крупнейшим публично известным кластером MarkLogic является установка для одного из крупнейших мировых издательских домов, содержащая более 10 миллиардов документов и обслуживающая десятки миллионов читателей.
Критика
Основные претензии со стороны профессионального сообщества и разработчиков касаются:
- Лицензионной модели и стоимости. До приобретения Vector Capital лицензирование было дорогим (стоимость лицензии на ядро сервера могла составлять десятки тысяч долларов), что делало продукт неподъёмным для малого и среднего бизнеса.
- Сложности администрирования. Для эффективной работы с кластером MarkLogic требовались глубокие знания не только администрирования баз данных, но и работы с XQuery и Java-приложениями.
- Ограниченная популярность XQuery. Язык XQuery, будучи мощным инструментом для XML, не получил широкого распространения за пределами сообщества MarkLogic, что затрудняло поиск разработчиков и экспертов.
- Конкуренция с открытыми решениями. Появление и развитие Elasticsearch, MongoDB и Apache Solr, имеющих открытые коды и более низкий порог входа, привело к оттоку клиентов, которым не требовалась полная поддержка ACID и семантических графов.
Источники
- Официальная документация MarkLogic (MarkLogic Corporation, архивированная версия 2022 г.)
- «Enterprise NoSQL: The Definitive Guide» — книга Дэна Мак-Крекена (Dan McCreary) и Энн Келли (Ann Kelly), O'Reilly Media, 2013 г.
- Статья «MarkLogic: A NoSQL Database for Enterprise Content» — журнал «InfoQ», 2015 г.
- Отчёт о приобретении MarkLogic компанией Vector Capital — новостное агентство «PR Newswire», май 2023 г.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →