Открыть сервис

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 →