Опыт использования xml субд marklogic

25
Marklogic Антон Язовский Тамтэк, Омск @yazovsky [email protected] как обуздать сотни гигабайт слабо-структурированных данных

Upload: anton-yazovskiy

Post on 05-Dec-2014

575 views

Category:

Entertainment & Humor


2 download

DESCRIPTION

Презентация с конференции Happydev 2012

TRANSCRIPT

Page 1: Опыт использования Xml субд Marklogic

Marklogic

Антон Язовский

Тамтэк, Омск

@yazovsky

[email protected]

как обуздать сотни гигабайт

слабо-структурированных данных

Page 2: Опыт использования Xml субд Marklogic

О чем проект?

1/21

Page 3: Опыт использования Xml субд Marklogic

О чем проект?

2/21

• обрабатывать данные из различных источников

• позволять искать по сложным запросам

• показывать слабо-структурированную информацию

• бизнес логика

• e-commerce (продажи, куда без них)

• social

• etc..

Page 4: Опыт использования Xml субд Marklogic

О чем проект?

3/21

• 15 млн документов с перспективой в 100 млн

• предоставлять удобный способ поиска

• масштабироваться горизонтально

• гибкость к изменению формата данных VS валидация данных

на соответствие базовым правилам

• обладать высокой отказоустойчивостью

Page 5: Опыт использования Xml субд Marklogic

4/21

«MarkLogic Server is a document-centric, transactional,

search-centric, structure-aware, schema-agnostic,

XQuery- and XSLT-driven, high performance, clustered,

database server»

Page 6: Опыт использования Xml субд Marklogic

4/21

«MarkLogic Server is a document-centric, transactional,

search-centric, structure-aware, schema-agnostic,

XQuery- and XSLT-driven, high performance, clustered,

database server»

… масштабируемое транзакционное …

Page 7: Опыт использования Xml субд Marklogic

4/21

«MarkLogic Server is a document-centric, transactional,

search-centric, structure-aware, schema-agnostic,

XQuery- and XSLT-driven, high performance, clustered,

database server»

… масштабируемое транзакционное хранилище

документов …

Page 8: Опыт использования Xml субд Marklogic

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…

Page 9: Опыт использования Xml субд Marklogic

Marklogic

• актуальный релиз - 6 (19 сентября, 2012)

• номер один XML хранилище в мире *

Среди клиентов:

• Организаторы летних олимпийских игр в Лондоне 2012

• Федеральное управление гражданской авиации США

• Департамент транспорта США

• The Defense Information Systems Agency

5/21

Page 10: Опыт использования Xml субд Marklogic

Marklogic

6/21

Page 11: Опыт использования Xml субд Marklogic

Документо-ориентированная

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>

Page 12: Опыт использования Xml субд Marklogic

Документо-ориентированная

8/21

• избыточный синтаксис

• ограниченность иерархической модели данных (где мои join'ы?!)

• неоднозначность структуры

• XML - прошлый век! JSON - рулит! :)

Page 13: Опыт использования Xml субд Marklogic

Документо-ориентированная

9/21

• открытый W3C стандарт

• простой, человеко-читаемый формат

• способы гибкой валидации (привет XSD, DTD)

• инструменты преобразования и визуализации (всемогущий XSL)

• языки запросов xQuery, xPath (W3C)

Page 14: Опыт использования Xml субд Marklogic

Schema Agnostic

• слабо-структурированные

данные VS схема!

• фокус на элементы, а не на

структуру

10/21

Page 15: Опыт использования Xml субд Marklogic

Search Centric

11/21

• XDBC

• HTTP

• WebDAV

• клиентская библиотека

• REST API

• web интерфейс

Page 16: Опыт использования Xml субд Marklogic

Search Centric

• полнотекстовый поиск

search:search("blackjack and hookers")

• поиск по значениям элемента или аттрибута

• range индексы (искать с используя сравнения - “>”, “<”, “=”)

• fields - alias для набора элементов

• facets, подсказки, геолокационные запросы

• и еще около сотни поисковых функций

12/21

Page 17: Опыт использования Xml субд Marklogic

13/21

Search Centric

Page 18: Опыт использования Xml субд Marklogic

14/21

Масштабируемость

Page 19: Опыт использования Xml субд Marklogic

Масштабируемость

15/21

Forest - это репозиторий документов (папка на диске)

Host / Node - это один экземпляр Marklogic Server

Роли: Data Node (d-node) и Evaluator Node (e-node)

Page 20: Опыт использования Xml субд Marklogic

Масштабируемость

16/21

Page 21: Опыт использования Xml субд Marklogic

Масштабируемость

17/21

• одна редакция Marklogic Server

• внешний load-balancer

• одна платформа на кластер

• shared nothing архитектура

Page 22: Опыт использования Xml субд Marklogic

Отказоустойчивость

• они настоящая команда!

• heartbeat внутри кластера

• автоматическое управление составом кластера

• взаимовыручка

18/21

Page 23: Опыт использования Xml субд Marklogic

19/21

«Один за всех - и все за одного!» д'Артаньян одобряет

Page 24: Опыт использования Xml субд Marklogic

Оно того стоит?

20/21

Page 25: Опыт использования Xml субд Marklogic

21/21