DIY Electronic projects
InfiniDB - Column Database Engine za MySQL - Printable Version

+- DIY Electronic projects (https://forum.yu3ma.net)
+-- Forum: Programiranje (https://forum.yu3ma.net/forumdisplay.php?fid=58)
+--- Forum: Baze podataka (https://forum.yu3ma.net/forumdisplay.php?fid=61)
+--- Thread: InfiniDB - Column Database Engine za MySQL (/showthread.php?tid=643)



InfiniDB - Column Database Engine za MySQL - mikikg - 09-21-2014

[Image: attachment.php?aid=10063]

Predhodnih par meseci sam probao jednu veoma zanimljivu bazu podataka pod nazivom InfiniDB.

http://www.infinidb.co

U pitanju je baza podataka organizovana po kolonama, ne kao vecina drugih koje su organizovane po redovima poput MySQL, MSSQL, Postgre, Oracle i ostale.

Caka sa ovakvim bazama je u tome sto mogu extremno brzo da vrse upite koji su cesto vezani za nekakvu statistiku, sumiranje, agregacija i slicno.
Uglavnom su predvidjene za jako velike data-set-ove, recimo nekoliko milijardi zapisa, terabajti podataka gde je potrebno dobiti rezultat na neki upit sto je moguce brze.

Najlepse od svega sa ovom InfiniDB bazom je ta sto je to ustvari extenzija tj poseban storage-engine za MySQL server tako da vi ustvari imate klasicnu MySQL instancu, klasican SQL jezik za upit i sve ostalo tako da je implementacija ili migriranje na ovu bazu totalno "bezbolna" a za pojedine vrste upita se dobija ubrzanje od nekoliko stotina ili hiljada puta!!!

Npr, na setu od 100 miliona zapisa (recimo logovi od web servera), MySQL sa InnoDB storage-engine bi za prosto brojanje ili sumiranje potrosio vreme mereno u minutima dok bi InfiniDB to sve isto uradio za par sekundi!

InfiniDB podrzava relacije (FK) ali u trenutnoj verziji ne podrzava transakcije.

Takodje je moguce lako da se klasteruje na X nodova (virtualnih ili fizickih masina).

Sve u svemu jako zanimljiv engine koji vredi da se proba.


RE: InfiniDB - Column Database Engine za MySQL - mikikg - 09-21-2014

Na trzistu baza podataka trenutno postoji ogromna ponuda, open source i komercialna resenja.

Glavan stvar koja se ovde trenutno vodi na trzistu je kako organizovati ogroman broj informacija na nacin da se dobije skoro real-time rezultati "nekih" operacija/upita i kako fizicki smestiti te podatke obicno na veliki broj manjih servera koji i ne moraju da budu istih perfomansi ali da se bukvalno ponasaju tako kao da imate jedan ogroman distribuirani file sistem (cd Z:\hehe).

To je cika Google prvo smislio ali je posle razvoj prebacen na Apache projekat i nazvan Hadoop HDFS (Hadoop Distributed File System).
HDFS je dodatni programski sloj (layer) koji na vas lokalni file system dodaje podrsku za mrezni distribuirani rad.
Dakle dobijete virtualizovan file sistem sa kojim mozete da radite sta god pozelite Smile
Ovo je prvestveno zanimljivo za baze podataka gde vi vase podatke organizujete i smestate u ovakav FS i mozete da piste map-reduce zadatke za procesiranje podataka totalno ne razmisljajuci o HW postavci iza toga koja je ustvari skup gomile masina sa pozamasnim resursima tako organizovane da "dele" poslove i prostor za podatke izmedju sebe!

[Image: attachment.php?aid=10065]

http://hadoop.apache.org

Kada se u takvoj mrezi uspostavi HDFS (konkurencija Amazon AWS, Microsoft Azure), postoji cela serija programskih aplikacija i alata (opet free i komercialnih) koji se koriste nad ovakvim FS. Inace Hadoop HDFS je free Java servis koji se instalira na masini i konfigurise prema zahtevima.
Postoje pre-konfigurisana resenja poput http://www.cloudera.com/content/cloudera/en/home.html koji nude npr VM image fajl koji pokrenete u lokalu na virtualnoj masini sa svim potrebnim programima i alatima, poput HBase koja je Apache-ova baza podataka za HDFS.

Sa druge strane postoje resenja poput ElasticSearch + Kibana
http://www.elasticsearch.org/overview/kibana/ koji nude drugaciji pristup za pojedine analiticke svrhe.
Naravno tu su i ekipa Apache Spark, CouchDB, MongoDB, MariaDB pa serija komercialnih resenja poput Percona i ostalih.

Na ovom linku imate skracen uporedni pregled za sledeca resenja:
- Cassandra
- MongoDB
- CouchDB
- Redis
- Riak
- HBase
- Couchbase
- OrientDB
- Aerospike
- Neo4j
- Hypertable
- ElasticSearch
- Accumulo
- VoltDB
- Scalaris

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis