Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen

Vergelijkbare documenten
Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 17 maart 2018 Nederlandse Linux Gebruikers Groep

kubernetes It compiles, ship it! Oscar Buse 13 februari 2018 Linux User Group Nijmegen

Technical Note. API Beschrijving Aangetekend Mailen

Sparse columns in SQL server 2008

NHibernate als ORM oplossing

Databases - Inleiding

Delft-FEWS & Web Services

API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8

Thinking of development

Smartsite ixperion Faceted Search

Temperatuur logger synchronisatie

ContentSearch. Deep dive

CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES

Priva Blue ID Network scanner / Syslog Tool

Weblogic 10.3 vs IAS

Kadaster Data Platform. Architectuur & techniek

Client Applicaties (Browser+Desktop) http/https. Apache Webserver. http proxy. WMS WFS Adm SLD Tomcat. Tomcat. GeoServer. PostGIS

SQL datadefinitietaal

Les 2 Eenvoudige queries

Pijlers van Beheer. Bram van der Vos

DB architectuur.

Geen webservice? Geen probleem!

Test de REST. Testen van RESTful webservices met REST Assured. Bas Dijkstra

DB architectuur.

DataFlex 19.0 SQL Server

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

Les 10 : Aanmaken van een database (deel2).

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Installeer Apache2: Landstede februari 2009 versie 3 1 Bertil Hoentjen

Inhoud Inleiding en terminologie Lastig? Configuratie Werkwijze en tooling Referenties. SELinux. Oscar Buse 9 juni 2015 NLUG.

Introductie (relationele) databases

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank

Misvattingen (korte) Intro Hadoop Hadoop & BI Demo logparsing met Hadoop Showcase Datameer Stappenplan Vragen

VoipCenter Application Programming Interface (API)

De MySQL C API. Variabelen in C Functies in C Pointers in C

Software Design Document

Onder de motorkap van Microsoft Azure Web Sites. Eelco Koster Software architect ORDINA

Oracle Rolling Upgrades met SharePlex Systems Consultant Quest Software Nederland 9/

Webapplicatie-generatie NIOC 2013

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen

APEX en JasperReports

Mikrotrain. Gevestigd te Zwolle. Trainingsruimte Meppel

De SAP Cloud Connector 2.0 maakt SAPUI5 ontwikkeling via de WEB-IDE mogelijk met data uit je eigen backend systeem.

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database

Wat is een unattended install?

Filr. Sebastiaan Veld Anthony Priestman. 10 april Overview en business case

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Windchill Document Management. - Digitaliseren van documenten en processen -

12. Meer dan één tabel gebruiken en sub-queries

ISW Presents Debian Homeserver Workshop

Blackboard Gebruikersdag

Het opvragen van het metadata-document voor de MID VPRO_1234 gaat als volgt:

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

i ll take off to the cloud

Verschillen Sumatra 2019 vs I4 4.4 V 1.0

Serverless Java met Fn

Open Enterprise Server 2 en vsphere Best Practises. Michael Wilmsen

OTB Workshop. Van PDM naar PLM. Migratie van Intralink 3.x naar PDMLink of Intralink 8.0

Hoe bouw ik een component? Drs. Arjan Burger

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

Oracle WebCenter Content in grote omgevingen

CBSOData Documentation

PHP en een MySQL database.

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

Upgrade van Oracle 10g naar 11g

CBSOData Documentation

Informatie & Databases

IBIS-TRAD Handleiding installatie IBIS-TRAD databases (MS-SQL)

MEMO. De database server zit op piekmomenten aan een heel hoog CPU gebruik:

Hoge beschikbaarheid bij Lips Textielservices Johan Westerduin, Transfer Solutions

Update Procedure Standard Parts Solid Edge 2019

Gimme Five! Op weg naar TYPO3 5.0 'Phoenix'

WFS 3.0 De geo-api van de toekomst. Linda van den Brink, Geonovum 13 februari #DataToBuildOn

Les 11 : Basis SQL (deel2).

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Configuratie. EasySecure International B.V. +31(0) Support.EasySecure.nl. v

Oracle-database creëren

CareConnect Fin Pre-requirements

Relationele Databases 2002/2003

Configuratie. EasySecure International B.V. +31(0) Support.EasySecure.nl. v1.0 MSL

Zelftest Informatica-terminologie

Samengaan van Geo-informatie en Service Oriëntatie

Hoe zet u virtualisatie slim in bij forensische onderzoeksomgevingen?

Full text search met Lucene op Azure

Standard Parts Installatie Solid Edge ST3

Nummer: 011 ( ) The Courseware Company

Technical Specification SOFORT Banking

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn:

Chapter 4. eenvoudige webserver opzetten

INHOUDSOPGAVE IMUIS INSTALLEREN 2 WINDOWS 2. WINDOWS SERVER 2008 r2 4 UITGAANDE VERBINDINGEN 5 INSTALLATIE IMUISONLINE.MSI 5 SSL CERTIFICAAT 5

The Canon B2B Portal. OGh Jaarcongres Philip Lafeber (Canon Europa) Marcel Lipman (LogicaCMG)

Maximo Tips and Tricks

Handleiding Ad-Aware 2007

Oracle client 1.2 voor ixperion 1.3 en hoger

INHOUDSOPGAVE IMUIS INSTALLEREN 2 WINDOWS 2. WINDOWS SERVER 2008 r2 3 UITGAANDE VERBINDINGEN 4 INSTALLATIE IMUISONLINE.MSI 4 SSL CERTIFICAAT 4

Installatie SQL Server 2014

Transcriptie:

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen

Inleiding Dit praatje gaat over Elasticsearch. De onderwerpen die aan bod komen: Wat is Elasticsearch? Waarom Elasticsearch? Installatie. Terminologie. Wat is je data en hoe wordt deze data opgeslagen? Werken met Elasticsearch. Theorie met voorbeelden Een toepassing. De voor- en nadelen van Elasticsearch. Referenties. slide 1 van 16

Wat is Elasticsearch? Definitie: gedistribueerde tekst zoek (en analyse) software met http interface ( RESTful ) en json format. Enkele eigenschappen: Zeer snel (alles wordt default ge-indexeerd). Geheugen intensief. ES is document (object) georienteerd (ipv rij/kolom georienteerd). Goed voor full text search. Ingebouwde score bij relevantie. Ingebouwde highlighting. Distributed (horizontaal schaalbaar, meerdere nodes). Ook voor data aggregatie en analyse. Is allemaal niet nieuw maar het zit wel allemaal samen in 1 applicatie. slide 2 van 16

Waarom Elasticsearch? Zaak om eerst te kijken wat je kunt hebben aan ES. Zie o.a. de eerder genoemde eigenschappen. Je hebt niks aan data als je er niet wat mee doet. Leegte in log analyse.. Splunk kan bv. veel maar is duur.. Open Source. Maken van data-informed beslissingen. Wat kan ES wat bv. niet kan in SQL? Niet de juiste vraag: gebruik de tool die voldoet voor jouw situatie. Eenmaal wat meer bekend geef ik een opsomming van de vooren nadelen. slide 3 van 16

Installatie Eenvoudig met downloaden van tgz-file of packages (rpm of deb). Default luistert Elasticsearch op 127.0.0.1, port 9200. Ook bij een cluster: 1 interface naar je data. Config in /etc/elasticsearch OS configuratie, o.a.: disable swap (gebruik ES only servers/vm s). Only 1st slide zorg voor genoeg open files (max aantal file descriptors, /proc/security/limits.conf). zorg voor genoeg mogelijke processen (ulimit -u). Veel wordt al gedaan via de package installers. Check settings met de documentatie (zie referenties). verschil development en productie omgeving (bv. met setting network.host) slide 4 van 16

Terminologie Lucene cluster node index type field document ES is afgeleid van Apache s Lucene: software voor text indexering en zoeken. een verzameling van servers (nodes) wat elasticsearch mogelijk maakt. 1 server (of VM) als onderdeel van een cluster. verzameling data met overeenkomstige kenmerken. Vergelijk met een database in SQL. verzameling data binnen een index. Vergelijk met een table in SQL. veld binnen een type. Vergelijk met kolom in SQL. de basis-eenheid van informatie in ES. Geformatteerd in JavaScript Object Notatie (JSON). Relational DB => Databases => Tables => Rows => Columns Elasticsearch => Indices => Types => Documents => Fields slide 5 van 16

term shard een unieke ge-indexeerde waarde ( Bla is wat anders dan bla ) unit welke een deel van alle data bevat (goed voor opdelen en verdelen van data). 1 shard kan maximaal 2.147.483.519 documenten bevatten. primary en replica shards. aantal primary shards bepaald hoe groot je db kan zijn. replica shards zijn readonly. Goed voor redundancy en performance (parallel gebruik van replicas). default 5 primary en 5 replica shards per index (db). minimaal 1 shard per node. aantal primary shards ligt vast, aantal replicas kan gewijzigd worden. slide 6 van 16

Data opslag Hoe wordt de data opgeslagen? opslag op het filesysteem. veel gebruik gemaakt van compressie. data in JSON records. mapping voor type velden (default: text + keyword (vroeger: string)). Alles (elk field ) wordt ge-indexeerd en is doorzoekbaar. indexeren met inverted indexen: ( terms naar documents). verschil in full text fields (match search) en exact value fields (term search). analyzed en not analyzed Bv. string => text (analyzed) + keyword (exact, not analyzed) slide 7 van 16

Werken met ES Data wordt opgeslagen, opgevraagd, gewijzigd met een REST API (HTTP requests), denk hierbij aan bv.: Document API: voor CRUD operaties. Cluster API: checken van health, status en verkrijgen van statistieken van je cluster/nodes Index API: beheer je database (bv. DELETE, CREATE). Search API: doe (geavanceerde) zoek acties. Diverse hulpmiddelen voor deze API s: curl, python/perl modules, websites (Kibana),... slide 8 van 16

Document API Deze API ondersteunt diverse CRUD operaties. Url heeft de vorm: POST PUT GET DELETE host:9200/index/type/id -d { } POST: index (insert met auto-created id) curl -XPOST 127.0.0.1:9200/lugn/mensen -d { naam : Harry Nak } PUT: index (insert, geef zelf id op), update (index met zelfde id) curl -XPUT 127.0.0.1:9200/lugn/mensen/1 -d { naam : Harry Nak } GET: Bv. een hele index (database) doorzoeken kan met: curl -XGET 127.0.0.1:9200/lugn/_search?q=zoekstring slide 9 van 16

DELETE curl -XDELETE 127.0.0.1:9200/lugn?pretty curl -XDELETE 127.0.0.1:9200/lugn/mensen/2?pretty curl -XPOST 127.0.0.1:9200/lugn/mensen/_delete_by_query?pretty \ -d { query :{ match :{ naam : Harry }}} UPDATE: (onder de motorkap DELETE en CREATE) curl -XPOST 127.0.0.1:9200/lugn/mensen/1/_update \ -d { doc :{ naam : Harry A. Nak }} slide 10 van 16

Zoektechnieken: query-string search en (json) request body search. woord, woo* woor? fieldname:woord (bv. usernaam:harry) query (match + scores) en filters (match yes or no, geen scores) match (analyzed, text) en term (exact, keyword)) queries. aggregate, average, sort meer.. (Query DSL: flexibele query language in json format. Bv.: "query":{ "filter":{ "geo_distance":{ "distance":"100km", "location":[32.052098, 76.649294] } } } meer.. (boosts, suggestions, completion) slide 11 van 16

Een toepassing sql2es.py search.py slide 12 van 16

De voor- en nadelen van Elasticsearch. - veiligheid? (geen authenticatie). - geen transactie (commits/rollback) model: minder controle over consistentie van de data. - relatief nieuw ( moet zich nog bewijzen ). - query DSL kan erg complex worden (maar geldt bv. ook voor SQL). + Zeer schaalbaar, snel (alles is een index). + Lage drempel maar ook zeer flexibele en geavanceerde mogelijkheden. + veel OOTB: full text search, scoring, aggregatie, suggestie, result highlighting. slide 13 van 16

De voor- en nadelen van Elasticsearch. + goede integratie met Logstash en Kibana (ELK-stack). + object storage (ipv key/value). + veel geolocatie features. Als met alles gebruik de juiste tool voor de juiste toepassing, bv.: betalingstransacties in een RDBMS zoeken van text in veel documenten: Elasticsearch slide 14 van 16

Voorbeelden van toepassingen: search engines voor bv. websites. search en analyseren van allerlei logging (weblog, syslog, klant-data,...). wikipedia, the guardian, stack overflow, github, reisavonturen,... slide 15 van 16

Referenties Bier? Website: https://www.elastic.co Leren: https://www.elastic.co/learn Setup/config: https: //www.elastic.co/guide/en/elasticsearch/ reference/current/setup.html OS settings: https: //www.elastic.co/guide/en/elasticsearch/ reference/current/system-config.html Cheatsheet: http: //elasticsearch-cheatsheet.jolicode.com/ slide 16 van 16