Google-k Logica programazio-lengoaia logikoa argitaratzen du

Google-k deklarazio-logika programazio-lengoaia berri bat aurkeztu du, Logica, datuak manipulatzeko eta programak SQLra itzultzeko diseinatua. Lengoaia berria datu-basearen kontsultak idazterakoan programazio logikoko sintaxia erabili nahi dutenei zuzenduta dago. Gaur egun, sortzen den SQL kodea Google BigQuery biltegian edo PostgreSQL eta SQLite DBMSetan exekutatu daiteke, eta horretarako laguntza esperimentala da oraindik. Etorkizunean onartzen diren SQL dialektoen kopurua zabaltzea aurreikusten da. Proiektuaren kodea Python-en idatzita dago eta Apache 2.0 lizentziapean argitaratzen da.

Logicak Google-k garatutako beste datu prozesatzeko lengoaia bat garatzen jarraitzen du, Yedalog, eta SQL estandarrean erabilgarri ez den abstrakzio maila bat eskaintzen du. Logika-n kontsultak adierazpen logiko multzo baten moduan programatzen dira. Moduluak, inportazioak eta Logica Jupyter Notebook shell interaktibotik erabiltzeko gaitasuna onartzen ditu. Adibidez, 2020rako albisteetan gehien aipatzen diren pertsonen laburpena sortzeko, Logica programa hau erabil dezakezu GDELT datu-basera sartzeko: @OrderBy(Aipamenak, “aipamenak desc”); @Muga(Aipamenak, 10); Aipamenak (pertsona:, aipatzen? += 1) bereiziak :- gdelt-bq.gdeltv2.gkg (pertsona:, data:), Substr(ToString(data), 0, 4) == "2020", the_persons == Zatitu (persons, ";"), person in the_persons; $ logika aipatzen.l run Aipamenak +—————-+—————-+ | pertsona | aipamen_kopurua | +—————-+—————-+ | 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 | +—————-+—————-+

SQL-n kontsulta konplexuak idazteak ulertzea agerikoa ez den lerro anitzeko kate astunak idazteko beharra dakar, kontsultaren zatien berrerabilpena oztopatzen eta mantentze-lanak zailtzen ditu. Ohiko kalkulu errepikakorrak egiteko, SQL-k bistak eta funtzioak erabil ditzake, baina ez dute inportazio eragiketarik onartzen eta ez dute maila altuko lengoaien malgutasuna ematen (adibidez, ezin diozu funtzio bat pasatu funtzio bati). Logicak probatu daitezkeen bloke logiko txiki, ulergarri eta berrerabilgarrietatik programak osatzeko aukera ematen du, izen zehatzekin elkartu eta beste proiektu batzuen barruan erabil daitezkeen paketeetan multzokatuta.

Iturria: opennet.ru

Gehitu iruzkin berria