Laag 2 van de Big Data Stack: operationele databases

In de kern van elke big data-omgeving, en laag 2 van de big data stack, zijn de database engines die de collecties van data-elementen voor uw bedrijf relevant zijn. Deze motoren moeten snel, schaalbaar te zijn, en zeer solide. Ze zijn niet allemaal gelijk geschapen, en bepaalde big data omgevingen zal beter af met één motor dan de andere, of meer waarschijnlijk met een mix van database-engines.

Bijvoorbeeld, hoewel het mogelijk is om relationele database management systemen (RDBMS) voor al uw big data-implementaties gebruiken, is het niet praktisch om dit te doen omwille van prestaties, schaalbaarheid, of zelfs kosten. Een aantal verschillende database-technieken beschikbaar zijn, en je moet zorgen om verstandig te kiezen.

Niet één juiste keuze bestaat omtrent de database talen. Hoewel SQL is de meest voorkomende database query taal in gebruik zijn, kunnen andere talen een meer effectieve of efficiënte manier van het oplossen van uw big data uitdagingen. Het is nuttig om te denken van de motoren en talen als instrumenten in een "gereedschapskist implementator's." Jouw taak is om het juiste gereedschap te kiezen.

Bijvoorbeeld, als u een relationele model te gebruiken, zult u waarschijnlijk gebruik van SQL om het te vragen. U kunt echter ook gebruik maken van alternatieve talen zoals Python of Java. Het is belangrijk om te begrijpen welke typen gegevens kunnen worden gemanipuleerd door de database of het waar transactionele gedrag ondersteunt. Database ontwerpers omschrijven dit gedrag met het acroniem ACID. Het staat voor

  • Atomiciteit: Een transactie is "alles of niets" wanneer het atoom. Indien een deel van de transactie of het onderliggende systeem faalt, de gehele transactie mislukt.
  • Consistentie: Uitsluitend transacties met geldige gegevens worden uitgevoerd op de database. Als de gegevens is beschadigd of onjuist, zal de transactie niet voltooien en de gegevens zullen niet worden weggeschreven naar de database.
  • Isolatie: Meerdere gelijktijdige transacties zal niet interfereren met elkaar. Alle geldige transacties zal uitvoeren totdat afgerond en in de volgorde waarin ze zijn ingediend voor verwerking.
  • Duurzaamheid: Nadat de gegevens van de transactie in de database, het blijft "altijd".

    Motor Query Language MapReduce Data Types Transacties Voorbeelden
    Relationele SQL, Python, C Geen Getypt ACID PostgreSQL, Oracle, DB / 2
    Zuilvormig Robijn Hadoop Voorgedefinieerd en typte Ja, indien ingeschakeld HBase
    Diagram Wandelen, Zoeken, Cypher Geen Ongetypeerde ACID Neo4J
    Document Commando's JavaScript Getypt Geen MongoDB, CouchDB
    Key-waarde Lucene, Opdrachten JavaScript BLOB, semityped Geen Riak, Herverdeeld

Nadat u uw wensen te begrijpen en te begrijpen welke gegevens u verzamelen, waar te zetten, en wat te doen met het, moet je om het te organiseren, zodat het kan worden verbruikt voor analyse, rapportage, of specifieke toepassingen.