Структурированный язык запросов (SQL) в масштабе может привести к созданию неструктурированного, неподдерживаемого кода базы данных — по крайней мере, в том, что касается Google — поэтому специалисты, связанные с бизнесом, разработали язык логического программирования с открытым исходным кодом, чтобы сделать SQL более поддающимся обслуживанию.

Яндекс

«Хорошее программирование — это создание небольших, понятных, многократно используемых элементов логики, которые можно тестировать, давать им имена и организовывать в пакеты, которые впоследствии можно использовать для создания более полезных элементов логики», — объясняют инженеры-программисты Google Константин Третьяков и Евгений Скворцов в Почта в блог с открытым исходным кодом Google. «SQL сопротивляется этому рабочему процессу».

Третьяков и Скворцов предлагают использовать новый язык логического программирования с открытым исходным кодом, названный, как ни странно, Логикадля создания взаимодействий с базой данных с использованием синтаксиса математической логики высказываний вместо цепочек английских слов, используемых в SQL.

Sql и nosql

SQL теперь ругательное слово для Oracle, по крайней мере, в облачных хранилищах данных

ЧИТАТЬ ДАЛЕЕ

Logica, по словам ее создателей, «означает логику с агрегацией». Описание проекта на GitHub делает его целевую аудиторию более ясной: «Logica предназначена для инженеров, специалистов по данным и других специалистов, которые хотят использовать синтаксис логического программирования при написании запросов и конвейеров для работы в BigQuery».

Код Logica компилируется в SQL, который, как надеется Google, будет запущен на BigQuery, платформе данных как услуга рекламного гиганта. Но его можно запускать локально, а SQL переносим; он также предлагает экспериментальную поддержку для нацеливания на PostgreSQL и SQLite.

Читайте также:
Антивирусы признаны не эффективными

Этот язык «более лаконичен и поддерживает чистые и многократно используемые механизмы абстракции, которых нет в SQL», по крайней мере, так говорят Третьяков и Скворцов.

Вот как может выглядеть базовый запрос в коде Logica:

MagicComment(comment_text:) :-

 `comments`(user_id:, comment_text:),

 user_id == 5;

А вот эквивалент в SQL:

SELECT comment_text FROM comments WHERE user_id = 5;

Logica является преемником Журнал данных-подобный язык, разработанный Google внутри компании и обсуждавшийся в 2015 году под названием Yedalog, который пытался предоставить инструмент для запроса больших полуструктурированных наборов данных.

Третьяков и Скворцов не объясняют, зачем «Едалогу» был преемник, а только газета 2016 года. [PDF] от создателей Yedalog предполагает, что автоматизированные решения по управлению внедрением Yedalog в Google обычно оставляются тем, кто работает с более общими языками.

Поскольку это создало неопределенность в отношении того, кто несет оперативную ответственность за поддержание работы, разработчики Yedalog подготовили документацию, описывающую предлагаемую операционную модель. Но они обнаружили, что их пользователи учились на собственном опыте, а не на чтении, и этот опыт заставил их сделать предположения, которых команда Yedalog не ожидала.

«Модель, которую они изучили, предполагает некоторые формы автоматизации, выходящие за рамки тех, которые мы планировали поддерживать», — поясняется в документе.

Каким бы ни было текущее состояние Yedalog в Google, Logica стремится выйти за рамки многословного английского языка с заглавными буквами в стиле COBOL и перейти к языку формальной логики в надежде, что код базы данных может быть разбит на более управляемые части.

«Это внутреннее сопротивление разложению логики на мелкие кусочки приводит к надуманным, длинным запросам, скопированным фрагментам кода и, в конечном итоге, к невозможности поддержки, неструктурированный (обратите внимание на иронию) Кодовые базы SQL », — язвительно заметил Третьяков и Скворцов. ®

Читайте также:
Nvidia сокращает количество графических процессоров, чтобы втиснуть ИИ в ваш центр обработки данных и укрепить дружбу с VMware • The Register