Google esitles uue deklaratiivse loogilise programmeerimise keele Logica, mis on mĂ”eldud andmete manipuleerimiseks ja tĂ”lgib programme SQL-keelde. Uus keel on suunatud neile, kes soovivad kasutada loogilise programmeerimise sĂŒntaksit andmebaasi pĂ€ringute kirjutamisel. Hetkel saab genereeritud SQL-koodi kĂ€itada Google BigQuery andmehoidlas vĂ”i andmebaasides PostgreSQL ja SQLite, mille tugi on hetkel eksperimenteaalne. Tulevikus plaanitakse toetatavate SQL-dialektide arvu suurendada. Projektikood on kirjutatud Pythonis ja avaldatud litsentsi Apache 2.0 alusel.
Logica arendab edasi Google'is loodud andmete töötlemise keelt Yedalog ja pakub abstraktsiooni taset, mis pole tavapĂ€rases SQL-is saadaval. Logica pĂ€ringud programmeeritakse loogiliste vĂ€idete kogumina. Toetatakse moduleid, importimise operatsioone ja Logica kasutamise vĂ”imalust interaktiivses Jupyter Notebook keskkonnas. NĂ€iteks, et luua 2020. aastal uudistes kĂ”ige sagedamini mainitud isikute kokkuvĂ”te, saab kasutada jĂ€rgmist programa Logica keeles GDELT andmebaasi pĂ€rimiseks: @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 | mentions_count | +âââââ-+âââââ-+ | 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 | +âââââ-+âââââ-+
Komplekssete SQL-pĂ€ringute kirjutamine toob kaasa mahukate, mitmerealiste ahelate kirjutamise, mis ei ole arusaadavad ning takistavad pĂ€ringu osade taaskasutamist, muutes hooldamise keeruliseks. TĂŒĂŒpiliste korduvate arvutuste jaoks SQL-is saab kasutada vaateid ja funktsioone, kuid need ei toeta imporditoiminguid ja ei paku paindlikkust, mis on iseloomulik kĂ”rgema taseme keeltele (nĂ€iteks ei ole vĂ”imalik funktsiooni edastada funktsioonile). Logica vĂ”imaldab programme koostada vĂ€ikestest, arusaadavatest ja taaskasutatavast loogilisest plokkidest, mida saab testida, seostada kindlate nimedega ja gruppeerida pakettidesse, mis on teiste projektide jaoks kasutamiseks saadaval.
Allikas: opennet.ru
