{"id":76,"date":"2015-07-17T22:42:29","date_gmt":"2015-07-17T21:42:29","guid":{"rendered":"http:\/\/www.fluxnumerique.fr\/?p=76"},"modified":"2020-12-13T10:12:43","modified_gmt":"2020-12-13T09:12:43","slug":"installer-marklogic-8-sous-ubuntu-14-04","status":"publish","type":"post","link":"http:\/\/www.fluxnumerique.fr\/?p=76","title":{"rendered":"Installer Marklogic 8 sous Ubuntu 14.04"},"content":{"rendered":"<h1>Quid\u00a0?<\/h1>\n<p><i>\u201cMarkLogic Server is a document-centric, transactional, search-centric, structure-aware, schema-agnostic, programmatic, high performance, clustered, database server.\u201d<\/i><\/p>\n<p>Marklogic est donc une base de donn\u00e9es de type documentaire. On peut y stocker des To de documents XML, JSON (sans transformation en XML dans la version 8), de textes brut ou donn\u00e9es binaires (dont les m\u00e9tadonn\u00e9es sont index\u00e9es).<\/p>\n<p>Marklogic peut se comparer \u00e0 un SGBDR de classe SQLServer, Oracle ou DB2 pour ses capacit\u00e9s transactionnelles.<\/p>\n<p>Marklogic peut \u00e9galement se comparer \u00e0 Elasticsearch pour ses fonctionnalit\u00e9s de recherche \u00e9volu\u00e9es (y compris la recherche \u00e0 facettes) et ses capacit\u00e9s de mont\u00e9e en charge (le fonctionnement en cluster est natif).<\/p>\n<p>On peut acc\u00e9der aux bases de donn\u00e9es de multiples fa\u00e7ons\u00a0:<br \/>\n1\/ via une API Java<br \/>\n2\/ via une API Node.js<br \/>\n3\/ via une API REST<br \/>\n4\/ via une interface WebDAV<br \/>\n5\/ via une interface SQL\/ODBC (pour interfacer par exemple un outil de BI)<\/p>\n<p>On programme donc des applications sur Marklogic en Java, Javascript (Node.js), Xquery (mais oui c&rsquo;est un langage de programmation), .Net (ODBC) ou tout langage pouvant utiliser une API REST (Python etc.). Large choix &#8230;<\/p>\n<p>Les requ\u00eates peuvent \u00eatre \u00e9crites sous forme de QBE (Query By Example), ce qui satisfait pas mal de besoins. Mais pour utiliser Marklogic \u00e0 100\u00a0%de ses capacit\u00e9s, il est indispensable de ma\u00eetriser la boite \u00e0 outils XML\u00a0: XQuery et XSLT. XQuery va \u00eatre utilis\u00e9 comme langage de requ\u00eate, alors que XSLT va \u00eatre plut\u00f4t utilis\u00e9 lors des ingestions et exports de documents.<\/p>\n<p>Chose int\u00e9ressante\u00a0: diff\u00e9rents langages sont li\u00e9s dans Marklogic via des extensions\u00a0: ainsi une transformation XSLT peut faire appel \u00e0 des fonctions XQuery, et vice-versa, un code XQuery peut faire appel \u00e0 du code javascript et vice-versa.<\/p>\n<p>Parmi les fonctionnalit\u00e9s avanc\u00e9es de Marklogic, je note aussi l\u2019existence de \u00ab\u00a0reverse queries\u00a0\u00bb, qui soumettent un document \u00e0 une s\u00e9rie de requ\u00eates et permettent ainsi de g\u00e9rer par exemple des alertes en temps-r\u00e9el, ou m\u00eame des alertes li\u00e9es \u00e0 la comparaison d\u2019un profil et d\u2019une offre (d\u2019emploi en particulier).<br \/>\nPour tester Marklogic, il suffit de demander une licence d\u00e9veloppeur, gratuite, d&rsquo;une dur\u00e9e de 6 mois renouvelables.<\/p>\n<h1>Installation<\/h1>\n<p>Pour le tester \u00e0 fond, je d\u00e9sire l&rsquo;installer sur mon syst\u00e8me Ubuntu 14.04.<\/p>\n<p>Surprise, Marklogic n&rsquo;est pas officiellement support\u00e9 sous Ubuntu et on ne trouve pas d&rsquo;archive en t\u00e9l\u00e9chargement pour ce syst\u00e8me. Marklogic propose par contre un package RPM (Red Had \/ CentOS \/ SUSE).<\/p>\n<p>T\u00e9l\u00e9chargez par exemple la version SUSE du package MarkLogic et transformez l\u00e0 en paquet Debian avant installation, cela fonctionne tr\u00e8s bien.<\/p>\n<p>Pour cela, lancez les commandes suivantes :<\/p>\n<pre class=\"theme:feeldesign lang:sh highlight:0 decode:true\"> \r\n# r\u00e9cup\u00e9rez l'app de transformation de paquet rpm-deb\r\n$ sudo apt-get alien\r\n# lancez cette app \r\n$ sudo alien --to-deb --verbose T\u00e9l\u00e9chargements\/MarkLogic-8.0-3.x86_64.rpm\r\n# installez le paquet .deb r\u00e9sultant (l'incr\u00e9mentation de version est automatique)\r\n$ sudo dpkg -i marklogic_8.0-4_amd64.deb\r\n# lancez Marklogic\r\n$ sudo \/etc\/init.d\/MarkLogic start<\/pre>\n<p>A noter, lancer Marklogic en sudo permet au logiciel de cr\u00e9er \/opt\/var\/MarkLogic, i.e le r\u00e9pertoire qui contiendra les donn\u00e9es.<\/p>\n<p>Il ne reste plus alors qu&rsquo;\u00e0 tester l&rsquo;IHM Web du logiciel (http:\/\/localhost:8001) et initialiser la database via cette interface.<\/p>\n<h1>Initialisation<\/h1>\n<p>On me demande de lancer l\u2019initialisation du syst\u00e8me\u00a0; apr\u00e8s quelques secondes, on me demande si je veux joindre un cluster (non), puis d\u2019entrer un nom et mot de pass Admin et un \u00ab\u00a0realm\u00a0\u00bb (utilis\u00e9 dans la g\u00e9n\u00e9ration de password digests, et que je laisse dans cette install de test \u00e0 \u00ab\u00a0public\u00a0\u00bb).<\/p>\n<p>L\u2019\u00e9cran devant lequel je me trouve est un peu intimidant pour un premier contact, et ses couleurs sont un peu \u2026 am\u00e9ricaines ann\u00e9es 90.<\/p>\n<p><a href=\"http:\/\/www.fluxnumerique.fr\/wp-content\/uploads\/2015\/07\/ecran-marklogic.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-100\" src=\"http:\/\/www.fluxnumerique.fr\/wp-content\/uploads\/2015\/07\/ecran-marklogic-300x127.png\" alt=\"ecran-marklogic\" width=\"300\" height=\"127\" srcset=\"http:\/\/www.fluxnumerique.fr\/wp-content\/uploads\/2015\/07\/ecran-marklogic-300x127.png 300w, http:\/\/www.fluxnumerique.fr\/wp-content\/uploads\/2015\/07\/ecran-marklogic-1024x435.png 1024w, http:\/\/www.fluxnumerique.fr\/wp-content\/uploads\/2015\/07\/ecran-marklogic-980x416.png 980w, http:\/\/www.fluxnumerique.fr\/wp-content\/uploads\/2015\/07\/ecran-marklogic.png 1381w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Mais le syst\u00e8me est d\u00e9j\u00e0 pr\u00eat \u00e0 recevoir des donn\u00e9es.<\/p>\n<h1>Int\u00e9grer un lot de donn\u00e9es XML dans Marklogic<\/h1>\n<p>Afin de commencer \u00e0 tester le produit, faisons lui ing\u00e9rer un lot de documents XML. J\u2019ai sous la main 10.000 fichiers de m\u00e9tadonn\u00e9es de photos AFP au format NewsML-G2, ils vont m\u2019\u00eatre utiles ici.<\/p>\n<p>Marklogic propose plusieurs outils d\u2019ingestion\u00a0: la Query Console ne permet d\u2019importer qu\u2019un document\u00a0; XML Content Pump est un outil en mode commande, qui n\u00e9cessite une petite formation\u00a0; Information Studio para\u00eet plus indiqu\u00e9 pour mon lot de documents.<\/p>\n<p>On trouve l\u2019outil \u00e0 l\u2019URL http:\/\/localhost:8000\/appservices\/ (Note\u00a0: le design de l\u2019interface est beaucoup plus sympathique que l\u2019interface d\u2019admin, qui m\u00e9riterait d\u2019\u00eatre align\u00e9e). Je suis les indications donn\u00e9es dans \u00ab\u00a05 minute Information Studio walkthrough\u00a0\u00bb.<\/p>\n<p>Les 10.000 documents sont import\u00e9s en moins de 30 secondes sur mon Dell XPS 13 (1 minute sur mon PC Windows plus ancien). Facile et fiable.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quid\u00a0? \u201cMarkLogic Server is a document-centric, transactional, search-centric, structure-aware, schema-agnostic, programmatic, high performance, clustered, database server.\u201d Marklogic est donc une base de donn\u00e9es de type documentaire. On peut y stocker des To de documents XML, JSON (sans transformation en XML dans la version 8), de textes brut ou donn\u00e9es binaires (dont les m\u00e9tadonn\u00e9es sont index\u00e9es).&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-76","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.fluxnumerique.fr\/index.php?rest_route=\/wp\/v2\/posts\/76","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.fluxnumerique.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.fluxnumerique.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.fluxnumerique.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.fluxnumerique.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=76"}],"version-history":[{"count":13,"href":"http:\/\/www.fluxnumerique.fr\/index.php?rest_route=\/wp\/v2\/posts\/76\/revisions"}],"predecessor-version":[{"id":106,"href":"http:\/\/www.fluxnumerique.fr\/index.php?rest_route=\/wp\/v2\/posts\/76\/revisions\/106"}],"wp:attachment":[{"href":"http:\/\/www.fluxnumerique.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=76"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.fluxnumerique.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=76"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.fluxnumerique.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=76"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}