Logica — нова мова програмування від Google для маніпулювання даними, що компілюється в SQL
Компанія Google представила нову декларативну мову логічного програмування Logica. У назву лягли слова Logic («Логіка») та Agregation («Агрегація»). Logica призначена для маніпулювання даними, компілюється в SQL та доступна для запуску в Google BigQuery, а також в СУБД PostgreSQL і SQLite, підтримка яких поки є експериментальною. Число підтримуваних SQL-діалектів планують розширити у майбутньому. Код проєкту написаний на Python і опублікований під ліцензією Apache 2.0.
Для запуску в BigQuery вам знадобиться проєкт у Google Cloud. З ним ви зможете вказати ідентифікатор проєкту та запускати програми Logica в CoLab. Для локального запуску Logica вам знадобиться Python3.
Щоб ініціювати виконання предикатів Logica з командного рядка, вам знадобиться bq (інструмент командного рядка BigQuery). Для цього необхідно встановити Cloud SDK.
Logica продовжує розвиток Yedalog — іншої мови від Google, яку випускали раніше. Нова мова надає рівені абстракції, недоступні в штатному SQL. Logica можна використовувати з інтерактивної оболонки Jupyter Notebook, також у ній підтримуються модулі та операції імпорту.
Наприклад, для формування звіту по персонах, яких найчастіше згадували в новинах у 2020 році, можна використати таку програму мовою Logiсa для запиту до БД GDELT:
@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 | +----------------+----------------+
Logica дозволяє не витрачати багато часу на довгі запити в SQL. Вона дозволяє компонувати програми з невеликих, зрозумілих і доступних для повторного використання логічних блоків, які можуть бути протестовані, пов’язані з певними іменами та згруповані в пакети, доступні для використання в складі інших проєктів. З Logica можна використовувати синтаксис математичної логіки висловлювань, а не англійську. Це дозволяє спростити вираз складних запитів і в цілому поліпшити класичний синтаксис програмування.
Найкращі коментарі пропустити