SlideShare a Scribd company logo
1 of 25
Download to read offline
Marklogic
  как обуздать сотни гигабайт
  слабо-структурированных данных


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

@yazovsky
ayazovskiy@thumbtack.net
О чем проект?




                1/21
О чем проект?

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

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

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

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

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

•   social

•   etc..




                                                    2/21
О чем проект?

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

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

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

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

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




                                                              3/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…


                                                          4/21
Marklogic

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

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

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

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

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

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

•   The Defense Information Systems Agency



                                                         5/21
Marklogic




            6/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>


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

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

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

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

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




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

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

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

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

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

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




                                                                 9/21
Schema Agnostic

                  •   слабо-структурированные
                      данные VS схема!

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




                                           10/21
Search Centric

                 •   XDBC

                 •   HTTP

                 •   WebDAV


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

                 •   REST API

                 •   web интерфейс




                                             11/21
Search Centric

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

    search:search("blackjack and hookers")

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

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

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

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

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




                                                                   12/21
Search Centric




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




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

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

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

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




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




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

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

•   внешний load-balancer

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

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




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

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

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

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

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




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




                                            19/21
Оно того стоит?




                  20/21
21/21

More Related Content

Similar to Опыт использования Xml субд Marklogic

Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesDenis Izmaylov
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БДAndrew Sovtsov
 
HighLoad systems: tips & tricks
HighLoad systems: tips & tricksHighLoad systems: tips & tricks
HighLoad systems: tips & tricksSveta Bozhko
 
Фронтенд в Яндексе
Фронтенд в ЯндексеФронтенд в Яндексе
Фронтенд в ЯндексеYandex
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchИлья Середа
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"IT Event
 
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.mikhaelsmirnov
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...Vyacheslav Nikulin
 
Фронтенд в Яндексе
Фронтенд в ЯндексеФронтенд в Яндексе
Фронтенд в ЯндексеYandex
 
Фронтенд в Яндексе
Фронтенд в ЯндексеФронтенд в Яндексе
Фронтенд в ЯндексеYandex
 
Современный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаСовременный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаSQALab
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиElizaveta Alekseeva
 
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...HappyDev-lite
 
JavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in RussianJavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in RussianMikhail Davydov
 
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor SukharevThe impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor Sukharevigorsukharev
 
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor SukharevThe impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor SukharevAlexander Klimov
 
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах EmbarcaderoПоддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах EmbarcaderoAndrew Sovtsov
 

Similar to Опыт использования Xml субд Marklogic (20)

Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и Kubernetes
 
Nosql and Mongodb
Nosql and MongodbNosql and Mongodb
Nosql and Mongodb
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БД
 
HighLoad systems: tips & tricks
HighLoad systems: tips & tricksHighLoad systems: tips & tricks
HighLoad systems: tips & tricks
 
Фронтенд в Яндексе
Фронтенд в ЯндексеФронтенд в Яндексе
Фронтенд в Яндексе
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
 
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.
 
Cassandra db
Cassandra dbCassandra db
Cassandra db
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 
Фронтенд в Яндексе
Фронтенд в ЯндексеФронтенд в Яндексе
Фронтенд в Яндексе
 
Фронтенд в Яндексе
Фронтенд в ЯндексеФронтенд в Яндексе
Фронтенд в Яндексе
 
Современный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаСовременный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проекта
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитики
 
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
 
JavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in RussianJavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in Russian
 
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor SukharevThe impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
 
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor SukharevThe impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
 
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах EmbarcaderoПоддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах Embarcadero
 

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

  • 1. Marklogic как обуздать сотни гигабайт слабо-структурированных данных Антон Язовский Тамтэк, Омск @yazovsky ayazovskiy@thumbtack.net
  • 3. О чем проект? • обрабатывать данные из различных источников • позволять искать по сложным запросам • показывать слабо-структурированную информацию • бизнес логика • e-commerce (продажи, куда без них) • social • etc.. 2/21
  • 4. О чем проект? • 15 млн документов с перспективой в 100 млн • предоставлять удобный способ поиска • масштабироваться горизонтально • гибкость к изменению формата данных VS валидация данных на соответствие базовым правилам • обладать высокой отказоустойчивостью 3/21
  • 5. «MarkLogic Server is a document-centric, transactional, search-centric, structure-aware, schema-agnostic, XQuery- and XSLT-driven, high performance, clustered, database server» 4/21
  • 6. «MarkLogic Server is a document-centric, transactional, search-centric, structure-aware, schema-agnostic, XQuery- and XSLT-driven, high performance, clustered, database server» … масштабируемое транзакционное … 4/21
  • 7. «MarkLogic Server is a document-centric, transactional, search-centric, structure-aware, schema-agnostic, XQuery- and XSLT-driven, high performance, clustered, database server» … масштабируемое транзакционное хранилище документов … 4/21
  • 8. «MarkLogic Server is a document-centric, transactional, search-centric, structure-aware, schema-agnostic, XQuery- and XSLT-driven, high performance, clustered, database server» … масштабируемое транзакционное хранилище документов с обширными возможностями поиска используя языки XQuery и/или XSLT… 4/21
  • 9. Marklogic • актуальный релиз - 6 (19 сентября, 2012) • номер один XML хранилище в мире * Среди клиентов: • Организаторы летних олимпийских игр в Лондоне 2012 • Федеральное управление гражданской авиации США • Департамент транспорта США • The Defense Information Systems Agency 5/21
  • 10. Marklogic 6/21
  • 11. Документо-ориентированная <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> 7/21
  • 12. Документо-ориентированная • избыточный синтаксис • ограниченность иерархической модели данных (где мои join'ы?!) • неоднозначность структуры • XML - прошлый век! JSON - рулит! :) 8/21
  • 13. Документо-ориентированная • открытый W3C стандарт • простой, человеко-читаемый формат • способы гибкой валидации (привет XSD, DTD) • инструменты преобразования и визуализации (всемогущий XSL) • языки запросов xQuery, xPath (W3C) 9/21
  • 14. Schema Agnostic • слабо-структурированные данные VS схема! • фокус на элементы, а не на структуру 10/21
  • 15. Search Centric • XDBC • HTTP • WebDAV • клиентская библиотека • REST API • web интерфейс 11/21
  • 16. Search Centric • полнотекстовый поиск search:search("blackjack and hookers") • поиск по значениям элемента или аттрибута • range индексы (искать с используя сравнения - “>”, “<”, “=”) • fields - alias для набора элементов • facets, подсказки, геолокационные запросы • и еще около сотни поисковых функций 12/21
  • 17. Search Centric 13/21
  • 19. Масштабируемость Forest - это репозиторий документов (папка на диске) Host / Node - это один экземпляр Marklogic Server Роли: Data Node (d-node) и Evaluator Node (e-node) 15/21
  • 21. Масштабируемость • одна редакция Marklogic Server • внешний load-balancer • одна платформа на кластер • shared nothing архитектура 17/21
  • 22. Отказоустойчивость • они настоящая команда! • heartbeat внутри кластера • автоматическое управление составом кластера • взаимовыручка 18/21
  • 23. «Один за всех - и все за одного!» д'Артаньян одобряет 19/21
  • 25. 21/21