Опыт использования xml субд marklogic
DESCRIPTION
Презентация с конференции Happydev 2012TRANSCRIPT
Marklogic
Антон Язовский
Тамтэк, Омск
@yazovsky
как обуздать сотни гигабайт
слабо-структурированных данных
О чем проект?
1/21
О чем проект?
2/21
• обрабатывать данные из различных источников
• позволять искать по сложным запросам
• показывать слабо-структурированную информацию
• бизнес логика
• e-commerce (продажи, куда без них)
• social
• etc..
О чем проект?
3/21
• 15 млн документов с перспективой в 100 млн
• предоставлять удобный способ поиска
• масштабироваться горизонтально
• гибкость к изменению формата данных VS валидация данных
на соответствие базовым правилам
• обладать высокой отказоустойчивостью
4/21
«MarkLogic Server is a document-centric, transactional,
search-centric, structure-aware, schema-agnostic,
XQuery- and XSLT-driven, high performance, clustered,
database server»
4/21
«MarkLogic Server is a document-centric, transactional,
search-centric, structure-aware, schema-agnostic,
XQuery- and XSLT-driven, high performance, clustered,
database server»
… масштабируемое транзакционное …
4/21
«MarkLogic Server is a document-centric, transactional,
search-centric, structure-aware, schema-agnostic,
XQuery- and XSLT-driven, high performance, clustered,
database server»
… масштабируемое транзакционное хранилище
документов …
4/21
«MarkLogic Server is a document-centric, transactional,
search-centric, structure-aware, schema-agnostic,
XQuery- and XSLT-driven, high performance, clustered,
database server»
… масштабируемое транзакционное хранилище
документов с обширными возможностями поиска
используя языки XQuery и/или XSLT…
Marklogic
• актуальный релиз - 6 (19 сентября, 2012)
• номер один XML хранилище в мире *
Среди клиентов:
• Организаторы летних олимпийских игр в Лондоне 2012
• Федеральное управление гражданской авиации США
• Департамент транспорта США
• The Defense Information Systems Agency
5/21
Marklogic
6/21
Документо-ориентированная
7/21
<document
xsi:schemaLocation="http://yoursite.com/article article.xsd”
xmlns:dc="http://yoursite.com/dc"
xmlns="http://marklogic.com/articl"
uri=”/article/maxim/123”>
<meta>
<dc:type>journal-article</dc:type>
<dc:title>Анна Курникова</dc:title>
<source uri=”/journal/maxim”>MAXIM</source>
<pub_year>2004</pub_year>
</meta>
<body> images!!! </body>
</document>
Документо-ориентированная
8/21
• избыточный синтаксис
• ограниченность иерархической модели данных (где мои join'ы?!)
• неоднозначность структуры
• XML - прошлый век! JSON - рулит! :)
Документо-ориентированная
9/21
• открытый W3C стандарт
• простой, человеко-читаемый формат
• способы гибкой валидации (привет XSD, DTD)
• инструменты преобразования и визуализации (всемогущий XSL)
• языки запросов xQuery, xPath (W3C)
Schema Agnostic
• слабо-структурированные
данные VS схема!
• фокус на элементы, а не на
структуру
10/21
Search Centric
11/21
• XDBC
• HTTP
• WebDAV
• клиентская библиотека
• REST API
• web интерфейс
Search Centric
• полнотекстовый поиск
search:search("blackjack and hookers")
• поиск по значениям элемента или аттрибута
• range индексы (искать с используя сравнения - “>”, “<”, “=”)
• fields - alias для набора элементов
• facets, подсказки, геолокационные запросы
• и еще около сотни поисковых функций
12/21
13/21
Search Centric
14/21
Масштабируемость
Масштабируемость
15/21
Forest - это репозиторий документов (папка на диске)
Host / Node - это один экземпляр Marklogic Server
Роли: Data Node (d-node) и Evaluator Node (e-node)
Масштабируемость
16/21
Масштабируемость
17/21
• одна редакция Marklogic Server
• внешний load-balancer
• одна платформа на кластер
• shared nothing архитектура
Отказоустойчивость
• они настоящая команда!
• heartbeat внутри кластера
• автоматическое управление составом кластера
• взаимовыручка
18/21
19/21
«Один за всех - и все за одного!» д'Артаньян одобряет
Оно того стоит?
20/21
21/21