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.