IoT-laitteiden datan käsittelyn tehokkuus eri tietokannoilla
Puro, Viljami (2024)
Kandidaatintyö
Puro, Viljami
2024
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe20241211101218
https://urn.fi/URN:NBN:fi-fe20241211101218
Tiivistelmä
Nykyajan teknologia pystyy kannattelemaan suuria määriä IoT-laitteita 5G:n takia. Tämän IoT-datan tehokkaaseen tallentamiseen tarvitaan siihen soveltuvia tietokantoja. Sopivien tietokantojen avulla pystytään käsittelemään IoT-data nopeasti ja tehokkaasti.
Tämän kandidaatin työn tavoitteena on tutkia eri tietokantojen soveltuvuutta IoT-datan tehokkaaseen käsittelyyn. Tutkimusmenetelmä tässä työssä on kontrolloitu tutkimus. Työssä suoritetaan suorituskykytestit neljälle suositulle ja laajasti käytössä olevalle tietokannalle, jotka ovat MySQL, PostgreSQL, MongoDB ja Apache Cassandra.
Suorituskykytestejä varten rakennettiin asiakasohjelmisto ja palvelin. Asiakasohjelmisto pystyy lähettämään IoT-laitteiden dataa palvelimelle. Palvelin kykenee vastaanottamaan datan ja tallentamaan se eri tietokantoihin samalla mitaten ajan, mikä kului tietokannan sijoitusoperaatioon.
Työn suorituskykytestien perusteella parhaiten suoriutuivat tietokannat PostgreSQL ja Apache Cassandra. Työn suorituskykytestit eivät kuitenkaan kerro suoraan eri tietokantojen suorituskyvystä tuotantoympäristössä, sillä testit olivat siinä mielessä rajoittuneita, että ne eivät ottaneet huomioon samanaikaisia operaatioita tai mahdollista viivettä, joka syntyy asiakkaan ja palvelimen välisestä viestinnästä. Testien tulokset riippuvat myös käytetystä laitteistosta. Modern 5G technology can support masses of IoT devices. To be able to handle all the data outputted by the devices efficient databases up for the task are needed. With proper databases the data can be handled fast and efficiently.
The goal for this bachelor’s thesis is to examine different databases suitability to handle IoT data efficiently. The research method of this thesis is a controlled experiment. Performance tests are done to four popular and widely used databases which are MySQL, PostgreSQL, MongoDB and Apache Cassandra.
Before the performance tests, client and server software was built. The client can send IoT data over to the server. The server can receive the data and store it to the different databases. The server is smart in that sense that it measures the time taken for every insert operation.
Based on this study’s performance tests the best performing databases were PostgreSQL and Apache Cassandra. The performance tests don’t tell the full truth especially regarding the databases’ performance in a production scenario. This is because the tests conducted are limited and they do not consider asynchronous operations nor the latency that occurs when the client and server communicate. The result of the tests also depends heavily on the hardware used.
Tämän kandidaatin työn tavoitteena on tutkia eri tietokantojen soveltuvuutta IoT-datan tehokkaaseen käsittelyyn. Tutkimusmenetelmä tässä työssä on kontrolloitu tutkimus. Työssä suoritetaan suorituskykytestit neljälle suositulle ja laajasti käytössä olevalle tietokannalle, jotka ovat MySQL, PostgreSQL, MongoDB ja Apache Cassandra.
Suorituskykytestejä varten rakennettiin asiakasohjelmisto ja palvelin. Asiakasohjelmisto pystyy lähettämään IoT-laitteiden dataa palvelimelle. Palvelin kykenee vastaanottamaan datan ja tallentamaan se eri tietokantoihin samalla mitaten ajan, mikä kului tietokannan sijoitusoperaatioon.
Työn suorituskykytestien perusteella parhaiten suoriutuivat tietokannat PostgreSQL ja Apache Cassandra. Työn suorituskykytestit eivät kuitenkaan kerro suoraan eri tietokantojen suorituskyvystä tuotantoympäristössä, sillä testit olivat siinä mielessä rajoittuneita, että ne eivät ottaneet huomioon samanaikaisia operaatioita tai mahdollista viivettä, joka syntyy asiakkaan ja palvelimen välisestä viestinnästä. Testien tulokset riippuvat myös käytetystä laitteistosta.
The goal for this bachelor’s thesis is to examine different databases suitability to handle IoT data efficiently. The research method of this thesis is a controlled experiment. Performance tests are done to four popular and widely used databases which are MySQL, PostgreSQL, MongoDB and Apache Cassandra.
Before the performance tests, client and server software was built. The client can send IoT data over to the server. The server can receive the data and store it to the different databases. The server is smart in that sense that it measures the time taken for every insert operation.
Based on this study’s performance tests the best performing databases were PostgreSQL and Apache Cassandra. The performance tests don’t tell the full truth especially regarding the databases’ performance in a production scenario. This is because the tests conducted are limited and they do not consider asynchronous operations nor the latency that occurs when the client and server communicate. The result of the tests also depends heavily on the hardware used.
