Google on esitellyt Logican, uuden deklaratiivisen loogisen ohjelmointikielen, joka on suunniteltu datan käsittelyyn ja kääntää ohjelmat SQL-kielelle. Uusi kieli on suunnattu niille, jotka haluavat käyttää loogista ohjelmointisyntaksia tietokantakyselyitä kirjoittaessaan. Tällä hetkellä tuloksena oleva SQL-koodi voidaan suorittaa Google BigQueryssa tai PostgreSQL- ja SQLite-tietokannoissa, vaikka näiden tuki on vielä kokeellinen. Lisää SQL-murteita on suunnitteilla tulevaisuudessa. Projektin koodi on kirjoitettu Pythonilla ja julkaistu Apache 2.0 -lisenssillä.
Logica perustuu Yedalogiin, toiseen Googlen kehittämään tietojenkäsittelykieleen, ja tarjoaa abstraktiotason, jota natiivissa SQL:ssä ei ole saatavilla. Logican kyselyt ohjelmoidaan joukkona loogisia lauseita. Se tukee moduuleja, tuontioperaatioita ja Logican käyttöä Jupyter Notebookin interaktiivisen komentotulkin sisällä. Esimerkiksi vuoden 2020 uutisissa useimmin mainittujen henkilöiden yhteenvedon luomiseksi voit käyttää seuraavaa Logica-ohjelmaa GDELT-tietokannan käyttämiseen: @OrderBy(Mentions, "mentions desc"); @Limit(Mentions, 10); Mentions(person:, mentions? += 1) distinct :- gdelt-bq.gdeltv2.gkg(persons:, date:), Substr(ToString(date), 0, 4) == "2020", the_persons == Split(persons, ";"), person in the_persons; $ logica mentions.l run Mentions +—————-+—————-+ | person | mainintojen_määrä | +—————-+—————-+ | Donald Trump | 3077130 | | Los Angeles | 1078412 | | Joe Biden | 1054827 | | George Floyd | 872919 | | Boris Johnson | 674786 | | Barack Obama | 438181 | | Vladimir Putin | 410587 | | Bernie Sanders | 387383 | | Andrew Cuomo | 345462 | | Las Vegas | 325487 | +—————-+—————-+
Monimutkaisten SQL-kyselyiden kirjoittaminen vaatii hankalia, monirivisiä ketjuja, jotka ovat vaikeasti ymmärrettäviä, haittaavat kyselyosien uudelleenkäyttöä ja vaikeuttavat ylläpitoa. Näkymiä ja funktioita voidaan käyttää tyypillisiin, toistuviin SQL-laskutoimituksiin, mutta ne eivät tue tuontioperaatioita ja niiltä puuttuu korkean tason kielten joustavuus (esimerkiksi funktion välittäminen funktion sisällä ei ole mahdollista). Logican avulla voit koota ohjelmia pienistä, ymmärrettävistä ja uudelleenkäytettävistä loogisista lohkoista, joita voidaan testata, liittää tiettyihin nimiin ja ryhmitellä paketteihin, jotka ovat käytettävissä muissa projekteissa.
Lähde: opennet.ru
