Open Source Data­bases that Work Best for IoT

The In­ter­net of Things (IoT) gen­er­ates vast amounts of data, in­clud­ing stream­ing data, time se­ries data, RFID data, sen­sory data, etc. The ef­fi­cient man­age­ment of this data de­mands the use of a data­base. The very na­ture of IoT data re­quires a dif­fer­ent ty

OpenSource For You - - Contents -

The In­ter­net of Things (IoT) can be re­garded as a net­work in which var­i­ous things are con­nected to each other through a com­mon plat­form. Just vi­su­alise a sce­nario in which ev­ery de­vice at home and the work­place is con­nected, and a world where the air-con­di­tion­ing in a room au­to­mat­i­cally low­ers its tem­per­a­ture when the out­side tem­per­a­ture rises up, when the num­ber of peo­ple in any pub­lic gath­er­ing is eas­ily known, and when one’s health pa­ram­e­ters can be mon­i­tored on a daily ba­sis. This is the pos­si­ble im­pact of the In­ter­net of Things.

The cur­rent state of the In­ter­net of Things is very frag­mented. There are dif­fer­ent companies and or­gan­i­sa­tions that are build­ing their own plat­forms for ei­ther their cus­tomers or their in­di­vid­ual needs. But a com­mon plat­form on which all the de­vices, ir­re­spec­tive of their com­pany, can be con­nected with each other via a user friendly in­ter­face, is still miss­ing.

IoT de­vices are es­ti­mated to num­ber in the tril­lions in the com­ing five years.

Is a data­base nec­es­sary for IoT?

The In­ter­net of Things cre­ates many te­dious chal­lenges, es­pe­cially in the field of data­base man­age­ment sys­tems, like in­te­grat­ing tons of voluminous data in real-time, pro­cess­ing events as they stream and deal­ing with the se­cu­rity of data. For in­stance, IoT based traf­fic sen­sors ap­plied in smart cities would pro­duce huge amounts of data on traf­fic in real­time.

Data­bases have a very im­por­tant role to play in han­dling IoT data ad­e­quately. There­fore, along with a proper plat­form, the right data­base is equally im­por­tant. As IoT op­er­ates across a di­verse en­vi­ron­ment in the world, it be­comes very chal­leng­ing to choose an ad­e­quate data­base.

The fac­tors that should be con­sid­ered be­fore choos­ing a data­base for IoT ap­pli­ca­tions are:

1) Size, scale and in­dex­ing

2) Ef­fec­tive­ness while han­dling a huge amount of data 3) User-friendly schema

4) Porta­bil­ity

5) Query lan­guages

6) Process mod­el­ling and trans­ac­tions

7) Het­ero­gene­ity and in­te­gra­tion

8) Time se­ries ag­gre­ga­tion

9) Ar­chiv­ing

10) Se­cu­rity and cost

The types of data in the In­ter­net of Things are: 1) RFID: Ra­dio fre­quency iden­ti­fi­ca­tion 2) Ad­dresses/unique iden­ti­fiers

3) De­scrip­tive data for pro­cesses, sys­tems and ob­jects 4) Per­va­sive en­vi­ron­men­tal data and po­si­tional data 5) Sen­sor data: Multi-di­men­sional time se­ries data 6) His­tor­i­cal data

7) Physics mod­els: Mod­els that are tem­plates for re­al­ity 8) State of ac­tu­a­tors and com­mand data for con­trol

Data­bases suited for the In­ter­net of Things

In­fluxDB: In­fluxDB was first re­leased in 2013, and is one of the re­cent data­bases. The Go pro­gram­ming lan­guage was used in de­vel­op­ing this data­base, which is to­tally based on LevelDB, a key­value data­base. In­fluxDB is a time se­ries data­base, which is used to op­ti­mise and han­dle time se­ries data. Time se­ries data was first re­leased by Kdb in 2000, but In­fluxDB be­came pop­u­lar with the rise in the In­ter­net of Things as it gave move­ment to NoSQL, NewSQL and a vast amount of in­creas­ing data.

The ad­van­tages of us­ing In­fluxDB for IoT data in­clude: 1) Al­lows in­dex­ing of se­ries

2) It has an SQL-like query lan­guage

3) It also pro­vides the built-in lin­ear in­ter­po­la­tion for

miss­ing data

4) It sup­ports au­to­matic data down sam­pling

5) Sup­ports con­tin­u­ous queries to com­pute ag­gre­gates

CrateDB: CrateDB is a dis­trib­uted SQL data­base man­age­ment sys­tem. Be­ing open source and writ­ten in

Java, it in­cludes com­po­nents from Face­book Presto, Apache Lucene, Elas­tic­search and Netty—thus it is de­signed for high scal­a­bil­ity. CrateDB was made for putting IoT data to work. From the in­dus­trial In­ter­net and con­nected cars to wear­ables, CrateDB is the data­base of choice for in­no­va­tors of new IoT so­lu­tions.

The ad­van­tages of us­ing CrateDB for IoT data in­clude: 1) Mil­lions of data points per sec­ond: Fast, lin­early scal­able data in­ges­tion

2) Real-time queries: Colum­nar in­dices and field caches

pro­vide in-mem­ory SQL per­for­mance

3) Dy­namic schema: Add and query new sen­sor data struc­tures on­the­fly

4) IoT an­a­lyt­ics: Fast, ro­bust time se­ries, AI, geospa­tial, text search, joins, ag­gre­ga­tions

5) Al­ways on: Built-in data repli­ca­tion and clus­ter re­bal­anc­ing en­sure non-stop per­for­mance

6) ANSI SQL: No lock-in, and easy for any de­vel­oper to use and in­te­grate

7) Built-in MQTT bro­ker: Di­rect de­vice-to-data­base in­te­gra­tion

8) IoT ecosys­tem: Works with Kafka, Grafana, NodeRED,

and other pop­u­lar IoT stack soft­ware

9) Runs any­where for ef­fi­cient pro­cess­ing at the edge or in

the cloud

Mon­goDB: Mon­goDB is a free and open source cross-plat­form doc­u­ment-ori­ented data­base pro­gram. It is cat­e­gorised as a NoSQL data­base pro­gram. JSON-like doc­u­ments with schemas are used by Mon­goDB. It is pre­ferred by or­gan­i­sa­tions for IoT, as it lets them store data from any con­text, which can be an­a­lysed in real-time, and also to change the schema as they go along.

The ad­van­tages of us­ing Mon­goDB for IoT data in­clude: 1) Highly pow­er­ful data­base

2) Doc­u­ment-ori­ented

3) Has uses for gen­eral pur­poses

4) Be­ing a NoSQL data­base, it uses JSON-like doc­u­ments with schemas

Re­thinkDB: In the open source data­base list, Re­thinkDB stands at the top. It is a scal­able JSON data­base for the re­al­time Web, which is built from the ground up. Re­thinkDB in­tro­duces an ex­cit­ing new ac­cess model by trans­pos­ing the tra­di­tional data­base ar­chi­tec­ture. It can con­tin­u­ously push up­dated query re­sults to ap­pli­ca­tions in real-time, when a com­mand is given to it by the de­vel­oper. This is a fea­ture the de­vel­op­ers call change­feeds. Re­thinkDB serves as a data­base, real-time repos­i­tory and mes­sage bro­ker of the sys­tem state, which is al­lowed by change­feed. Its real-time push ar­chi­tec­ture dra­mat­i­cally re­duces the time and ef­fort nec­es­sary to build scal­able real-time apps.

The ad­van­tages of us­ing Re­thinkDB for IoT sen­sor data in­clude:

1) Re­thinkDB has an adapt­able query lan­guage for

ex­am­in­ing APIs, which is very easy to set up and learn. 2) Com­mands are au­to­mat­i­cally shifted to a new server if

any pri­mary server fails.

3) Plug-and-play func­tion of nodes in real-time, with­out any down­time for even a sin­gle sec­ond, helps in the easy ad­di­tion of nodes.

4) Of­fers asyn­chro­nous queries via Event­ma­chine in Ruby and Tor­nado, which gives an asyn­chro­nous ap­pli­ca­tion pro­gram­ming in­ter­face.

5) It of­fers SSL ac­cess just to have se­cured ac­cess to Re­thinkDB via pub­lic In­ter­net.

6) Floor, ceil and round are var­i­ous math­e­mat­i­cal op­er­a­tors that are of­fered by Re­thinkDB.

SQLite: SQLite Data­base En­gine is a process li­brary that pro­vides a server­less (self-con­tained) trans­ac­tional SQL data­base en­gine. It has had a ma­jor im­pact on game and mo­bile ap­pli­ca­tion de­vel­op­ment due to its porta­bil­ity and small foot­print.

SQLite works ap­pro­pri­ately with the de­vices that do not re­quire any hu­man sup­port, as the data­base re­quires no ad­min­is­tra­tive per­mis­sions. It is a good fit for use in cell phones, set-top boxes, tele­vi­sions, game con­soles, cam­eras, watches, kitchen ap­pli­ances, ther­mostats, au­to­mo­biles, ma­chine tools, air planes, re­mote sen­sors, drones, med­i­cal de­vices and ro­bots, as well as in IoT.

Client/server data­base en­gines are de­signed to live

in­side a data cen­tre at the core of the net­work. SQLite works there too, but SQLite also thrives at the edge of the net­work, fend­ing for it­self while pro­vid­ing fast and re­li­able data ser­vices to ap­pli­ca­tions that would oth­er­wise have dodgy con­nec­tiv­ity.

The ad­van­tages of us­ing SQLite for IoT data in­clude:

1) Of­fers a small mem­ory foot­print

2) It is au­then­tic

3) No set­ting up re­quired prior to use

4) Has no de­pen­den­cies

Apache Cas­san­dra: Apache Cas­san­dra is a free and open source dis­trib­uted NoSQL data­base man­age­ment sys­tem, which was ini­tially re­leased in 2008. It was in­tended to han­dle huge amounts of data through many com­mod­ity servers, pro­vid­ing high avail­abil­ity with no sin­gle point of fail­ure.

In IoT, the gen­er­a­tion, track­ing and shar­ing of data through a va­ri­ety of net­works is car­ried out on an im­mense scale due to the mas­sive num­ber of con­nected de­vices. Cas­san­dra is ex­cel­lent at util­is­ing lots of time se­ries data that comes di­rectly from de­vices, users, sen­sors, and sim­i­lar mech­a­nisms that sub­sist in di­verse geo­graphic lo­ca­tions.

The ad­van­tages of us­ing Apache Cas­san­dra for IoT data in­clude:

1) Fault tol­er­ant

2) Demon­strates high per­for­mance

3) De­cen­tralised: Ev­ery node in the clus­ter is iden­ti­cal 4) Scal­able 5) Durable

6) En­sures you’re in con­trol: Each up­date has a choice of syn­chro­nous and asyn­chro­nous repli­ca­tion

7) Elas­tic: Both read and write ex­e­cute in real-time, thus there is no down­time for any ap­pli­ca­tion 8) Pro­fes­sion­ally sup­ported: It re­in­forces con­tracts and ser­vices that are avail­able from third par­ties.

Newspapers in English

Newspapers from India

© PressReader. All rights reserved.