LINUX.ORG.RU

Подскажите реализацию Datalog

 


0

1

Нужно эффективно обрабатывать большие объёмы данных. Параметры применения такие:

  • только монопольный доступ
  • нужно хранение базы данных на диске
  • высокая производительность (не знаю, как оно там достигается, но думаю, что нужно, чтобы можно было строить подобие индексов)
  • желательно, чтобы был сделан в Common Lisp или легко стыковался
  • желателен интерфейс к Cython
  • интерфейс быстрой загрузки данных из файла, возможно, в каком-то оптимизированном формате
★★★★★

Последнее исправление: den73 (всего исправлений: 1)

Стал искать на гитхабе, самые популярные варианты написаны на Clojure. Но ведь кложа тормозная?

Или я может вообще что-то не то делаю? Мне нужно подобие SQL, но нужны транзитивные отношения и не нужно ничего, относящееся к параллельной обработке, распределению прав доступа, отказоустойчивости.

Может быть есть что-то менее замшелое?

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 2)

Не банься, гений.

Лучше скажи почему именно на CL да и ещё с возможностью юзать в Cython.

anonymous
()
Ответ на: комментарий от anonymous

Потому что на этих ЯП написаны программы, генерирующие данные. Возможно, что и обмена через файлы хватит, но возможность анализа данных по мере их создания с влиянием на источник данных тоже может пригодиться, в этом случае лучше слинковать в одно целое. На CL - по той простой причине, что там простой и дешёвый способ генерации машкода для оптимизированных запросов - функция compile.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Там как-то мысль творца иссякла после создания заготовки проекта.

den73 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

А там есть работа с рекурсивными отношениями? Т.е. например, можно ли сделать запрос «кто является потомком Васи»?

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Но ведь кложа тормозная?

Все тормозное — все работает медленнее, чем мгновенно. Вопрос в том, устраивает ли тебя производительность для твоих конкретных задач. Для этого ее желательно померить на каком-нибудь приближенном к реальности кейсе.

Может, тебе и питона хватит по производительности, а ты уже на ассемблере писать собрался.

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 1)
Ответ на: комментарий от Nervous

Ну там как минимум надо обрабатывать гигабайты, а то и десятки гигабайт. Не хочется начинать сразу с тормозного, потому что некоторые задачи могут оказаться неразрешимыми.

den73 ★★★★★
() автор топика
Ответ на: комментарий от Nervous

Не понял про рыбу и деньги. sqlite поддерживает рекурсивные запросы, да.

https://sqlite.org/lang_with.html

Вероятно, подойдёт, спасибо! Но галку пока не ставлю, вдруг ещё кто что хорошее напишет.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.