2016-04-04 2 views
1

Я искал базу данных, которая может быть встроена, а также быть файловой, например Sqlite. Мне нужна база данных типа NoSQL с такой функцией. Язык Python, и ArangoDB имеет привязку для Python и многих других языков.База данных NoSQL: ArangoDB

Я нахожу противоречивые факты об ArangoDB. В некоторых случаях я видел, что статьи говорят, что это не встроенная БД, или не может быть встроена, а затем увидеть других, которые подразумевают, что она встроена.

Также на веб-сайте говорится, что он хранит свои данные в специальном двоичном формате, а затем я вижу статью, в которой говорится, что в основном это база данных In-Memory.

Так что это было очень запутанно.

1) Итак, вопрос в том, может ли эта база данных внедряться в приложение python?

Если нет, если он выполняется как отдельный процесс, он запускается как сервер, может ли он быть создан/управляться в Python с «нулевой конфигурацией» со стороны пользователя, ради развертывания настольного приложения на основе это.

2) Сохраняются ли данные базы данных и т. Д. На диске.

ТАК, что это!

ответ

4

Нет, вы не можете вставлять ArangoDB в то, как вы вставляете SQLite.

ArangoDB предлагает Foxx framework, который вы можете использовать для реализации RESTfull микросервисов в JavaScript, близком к ядру базы данных, так как вы использовали бы python с SQLite. Однако, с AQL ArangoDB также предлагает язык запросов, как SQLite делает с sql.

В настоящее время доступно несколько драйверов python, которые предоставляют вам доступ к ArangoDB с помощью python в удобной манере.

Страница загрузки ArangoDB предлагает несколько пакетов, которые вы можете использовать для развертывания ArangoDB рядом с вашим приложением. Мы предлагаем a windows zip package that you could install by yourselves without user interaction; Для дистрибутивов Linux вы, вероятно, захотите использовать соответствующий пакет для этого дистрибутива. Простота развертывания - одна из наших основных целей.

Что касается базы данных и ваших данных, это сохраняется на диске. Это работает через файлы с отображением памяти. Тем не менее, индекс и другие структуры создаются во время запуска, поэтому мы называем себя в основном в памяти.

Регулярный доступ к ArangoDB (и foxx) осуществляется через интерфейс http, и вы получаете json-документы в качестве ответа. Драйверы абстрагируют этот интерфейс для вас. Если вы внедряете приложения foxx, вам может потребоваться сформулировать запросы самостоятельно.

ArangoDB Datafiles не предназначены для перемещения по машинам; хотя он может работать до тех пор, пока у вас есть одна и та же ОС & Архитектуры с обеих сторон. Правильный способ сделать это - использовать ArangoDump на первой машине и ArangoRestore на втором. Это в основном json внутри (один json-документ в строке), поэтому они переносимы и даже просты в загрузке на python - вы можете даже directly access the dump facility from python и подготовить электронное письмо для пользователя с контентом.

Самый устойчивый способ запуска ArangoDB - это обслуживание; обратите внимание, что вам могут потребоваться повышенные привилегии для регистрации & re/start новых сервисов в Windows.Затем служба связывает порт tcp, доступ к которому вы можете получить из других узлов сети.

+0

Привет, спасибо, это действительно здорово! Пользователи, которых я бы обслуживал, были в окнах. Таким образом, данные, которые сохраняются на диске, могут быть перенесены в другое окно и иметь другого человека с моим приложением, таким образом, можно открыть этот файл на диске. С SQLite, если вы создаете файл с помощью приложения, тогда этот файл db можно перенести на другую машину с тем же приложением, чтобы открыть и увидеть данные. Так что это портативное движение данных - это то, что я ищу. – Palu

+0

Пользователи на разных компьютерах могут перемещать данные из одного места в другое и открывать приложение, когда приложение установлено. Приложение, о котором я говорю, является настольным приложением. Просто как люди могут отправлять друг другу файлы Excel и открывать их до тех пор, пока у них установлен пакет Office на другой машине, так что это та модель приложения, которую я собираюсь , – Palu

+0

ОК, поэтому, основываясь на вашей первой строке, она не встроена в тот же процесс, что и само приложение, поэтому вы говорите, что оно работает на сервере, таком как режим. Это нормально со мной, если оно устанавливается с нулевым администрированием, это будет моей целью. – Palu

Смежные вопросы