Антон Язовский - Marklogic: как обуздать сотни гигабайт...

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

description

Автор поделится опытом боевого использовании XML базы данных Marklogic Сервисы электронной коммерции, которые позволяют издательствам предоставлять и продавать он-лайн доступ к изданиям, оперируют большими объемами слабо-структурированных данных. Перед подобными системами стоят вопросы доступности, поиска и преобразования информации, производительности, масштабируемости системы в-целом. "XML база данных? Впервые слышу!". Если это про вас, то приходите на доклад и узнаете: - чем XML базы данных могут помочь именно вам - что за зверь - Marklogic ответ на главный вопрос жизни, вселенной и всего такого

Transcript of Антон Язовский - Marklogic: как обуздать сотни гигабайт...

Page 1: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Marklogic

Антон ЯзовскийТамтэк, Омск

@[email protected]

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

Page 2: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

О чем проект?

Антон Язовский 1/21

Page 3: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

О чем проект?

Антон Язовский 2/21

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

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

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

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

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

• social

• etc..

Page 4: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

О чем проект?

Антон Язовский 3/21

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

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

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

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

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

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

Page 5: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Антон Язовский 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: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Антон Язовский 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: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Антон Язовский 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: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Антон Язовский 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: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Marklogic

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

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

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

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

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

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

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

• The Defense Information Systems Agency

5/21

Page 10: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Marklogic

Антон Язовский 6/21

Page 11: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

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

Антон Язовский 7/21

<documentxsi: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: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

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

Антон Язовский 8/21

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

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

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

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

Page 13: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

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

Антон Язовский 9/21

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

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

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

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

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

Page 14: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Schema Agnostic

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

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

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

структуру

Антон Язовский 10/21

Page 15: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Search Centric

Антон Язовский 11/21

• XDBC

• HTTP

• WebDAV

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

• REST API

• web интерфейс

Page 16: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Search Centric

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

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

search:search("blackjack and hookers")

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

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

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

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

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

12/21

Page 17: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Антон Язовский 13/21

Search Centric

Page 18: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Антон Язовский 14/21

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

Page 19: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

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

Антон Язовский 15/21

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

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

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

Page 20: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

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

Антон Язовский 16/21

Page 21: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

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

Антон Язовский 17/21

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

• внешний load-balancer

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

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

Page 22: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

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

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

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

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

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

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

18/21

Page 23: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

Антон Язовский 19/21

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

Page 24: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

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

Антон Язовский 20/21

Page 25: Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных данных | HappyDev'12

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