06.10.2014

Hadoop ja SQL – onnellinen avioliitto?

SQL-kielen ansiosta on relaatiokantapohjaisiin tietovarastoihin  voitu kytkeä lukuisia BI-välineitä. Oli kanta sitten Oracle, SQL Server, DB2 tai MySQL, lähes kaikki BI toimittajat osaavat lukea sieltä tietoa SQL:n  avulla. SQL on siis  todellinen kommunikaation mahdollistajakieli eli lingua franca eri tuotteiden välillä. SQL on myös ns. neljännen sukupolven kieli, jossa kerrotaan vain mitä halutaan. Tietokantasofta sitten päättää miten haku fyysiseti suoritetaan.  Tuottavuus on hyvä, lyhyillä käskyillä saadaan paljon aikaan.

Big Data –alueen suositun talletusratkaisu Hadoop ei ole relaatiokanta. Se on pikemminkin tiedostojärjestelmä, joka tukee hyvin hajauttamista ja ottaa vastaa kaikenlaista dataa videoista ja äänestä aina perinteiseeen taulukkomaiseen tietoon. Kun relaatiokannat edellyttävät tietokannan rakenteen määrittämistä etukäteen voi Hadoopiin kaataa dataa sisään ilman mitään määrittelyjä rakenteesta. Rakenne määritetään vasta lukiessa, eli lyhyesti  ”schema-on-read”.  Hadoop mahdollistaa joustavuutta ja kustannustehokkuutta laajoille ja myös ei-strukturoiduille tai striimaaville tietomassoille.

Lähtökohtaisesti  Hadoop ei ole tukenut SQL-kieltä. Sen kyseleminen perustunut monimutkaiseen ja työlääseen Java-ohjelmointiin ja haut on tehty Map Reduce-eräajoina. Hadoopin alkuperäinen  SQL-rajapinta on nimeltään Hive. Ajatus on hyvä, tarjotaan tuottavampaa tapaa tehdä kyselyjä. Hive on kuitenkin liian rajoittunut osajoukko SQL-kielestä ja suorituskyvyltään hidas. Uutta kehitystä on tarvittu.

Hadoop oli aluksi erillään maailmalla pitkään käytetystä relaatiokanta- ja SQL -pohjaisesta tietovarastoinnista. Alueen ”hot” juttu onkin rakentaa hyviä SQL-liittymiä Hadoopin päälle. Näin voitaisiin liittää Hadoopiin tungettu Big Data olemassaolevaan tietovarastoekosysteemiin ja saada tämä data analysoitavaksi tutuilla välineillä, yhdistellen  tietovarastoissa jo olevaan tietoon.  Hadoop – SQL –avioliitto tuntuu siis hyvin luontevalta.

Kaikki perinteiset toimittajat tarjoavat SQl-rajapintoja Hadoopin päälle, niin IBM, Oracle, Microsoft kuin Teradatakin. Lisäksi tulevat uudet  Big Data –toimijat, kuten Cloudera ja Hadapt. Ilmiölle on nimikin: SQLfication.

Eri kulttuurien yhdistämisessä on usein ongelmia, niin tässäkin. Kannattaa tutkia tarkoin, mitä kukin Hadoop-SQL –toimittaja tarjoaa. Seuraavassa muutamia tarkistettavia asioita:

  • miten laaja osa SQL-kielestä on tuettuna, ovatko mukana esim.  liitokset ja/tai päivitykset
  • kohdistuvatko kyselyt Hadoopiin relaatiokannan kautta vai suoraan
  • toimiiko SQL-rajapinta kaikkiin vai vain tietyn toimittajan Hadoop -versioon
  • mikä on SQL-rajapinnnan suorituskyky
  • edellä olevaan liittyen, ohittaako rajapinta MapReducen vai  tarjoaako toista hakumenetelmää tai kenties optimoitua yhdistelmää edellämainituista
  • voiko SQL-rajapinnalla lukea ja yhdistää Hadoopin ja relaatiokantojen tietoja

Big Data –alueen ja Hadoopin nopea kehitys ja hype ovat ravistelleet myös perinteisiä tietokantatoimittajia uusiin ratkaisuihin. Kilpailu on kovaa.  Mutta vanha kunnon SQL pitää pintansa, nyt myös osana Hadoop –avioliittoa.

Saattaisit olla kiinnostunut myös näistä

Tiedonhallinnan alueen suuria nimiä

Lue lisää

Mahdollisimman helppoa datan kyselyä 

Lue lisää

Onnistunut datakulttuuri parantaa liikevaihtoa

Lue lisää