如何在桌面应用程序中嵌入ArangoDB

时间:2018-02-21 18:28:52

标签: database graph orientdb arangodb

我想在我的应用程序中嵌入一个图形数据库(适用于windows,linux和MAC)。我将搜索范围缩小到ArangoDB& OrientDB。我能够使嵌入式OrientDB工作,但我仍然想尝试ArangoDB做出明智的决定。 OrientDB嵌入式版本的文档非常清晰,而我无法找到ArangoDB的任何内容。 ArangoDB是用C ++编写的,所以我还要弄清楚如何使它可以跨平台移植,以及如何使用我的应用程序安装它。 ArangoDB(或OrientDB)的使用对我们应用程序的用户应该是透明的。谢谢!

更新:我忘了提及,我们的应用程序是用C ++编写的。我们正在寻找可以帮助我们使用现有模块构建ArangoDB二进制文件的指令。然后我们可以弄清楚如何加载二进制文件并与它们交谈。

2 个答案:

答案 0 :(得分:5)

可以在应用程序安装时安装ArangoDB实例。

它安装在自己的目录中,其关键资产是:

  • ArangoDB二进制文件
  • ArangoDB数据文件
  • ArangoDB日志文件
  • ArangoDB Foxx应用程序(可选)

ArangoDB可以作为服务运行,并通过名为arangod.conf的文件进行配置。

此文件集中控制其运行的端口,侦听的IP地址,要使用的数据库引擎,SSL和安全设置等设置。

以Windows为例,您可以进行ArangoDB的静默安装,然后使用PowerShell或DOS批处理文件等工具来停止/启动ArangoDB服务,使用所需的配置设置复制到arangod.conf文件中等等。

甚至可以生成SSL证书并将其应用于ArangoDB实例,以便在需要时可以与数据库建立SSL连接。

此外,您可以通过脚本使用ArangoShell,它允许您创建数据库,从备份恢复默认数据,创建ArangoDB用户,分配权限。

听起来您需要更加熟悉ArangoDB作为产品,然后开始忙于安装,卸载,配置和备份/恢复数据库。

我还评估了ArangoDB与OrientDB,我选择了ArangoDB,因为它运行速度更快,有更多更新,并且他们的驱动程序包写得很好。

对于嵌入式数据库,您确实需要一个多模型数据库,并且能够将标准文档和图形数据存储在一个数据库引擎中,这是非常宝贵的。

此外,还要非常了解ArangoDB的Foxx MicroService架构。它允许您在ArangoDB数据库中运行REST API和作业队列后面的业务逻辑。这意味着您的应用程序甚至不需要对数据库进行原始表访问,而是可以通过REST API访问您的数据,并且您的内部架构对用户是隐藏的,您的业务逻辑会阻止他们执行愚蠢的事情并破坏数据库

通过在应用程序和数据库之间建立REST API数据层,它可以让您更灵活地了解人们如何使用数据,为您提供更多选择,以安全的方式打开它,知道您的应用程序逻辑将保留您的数据安全

如果您选择使用Foxx,ArangoDB发布了一个很酷的新工具,名为foxx-cli,它允许您在数据库中编写Foxx MicroServices的安装和配置脚本。这是一个超级强大的工具,因为它可以通过安装脚本完全安装和配置ArangoDB服务器,数据库和内部设置。

花时间学习ArangoDB,与所有技能一样,需要时间才能真正了解它。我每天都在学习一些东西,而且我只用了2年了。)

答案 1 :(得分:4)

如果你正在使用NodeJS(我必须假设你没有提到你正在使用的编程语言)作为你的平台,你可以使用Electron(https://electron.atom.io)并使用ArangoJS({{ 3}})驱动程序,如果需要ORM,我建议使用(http://npmjs.com/package/arangojs)内置支持ArangoDB,虽然文档标准较差,但它应该足以满足一些编程知识。

OFT: Electron允许您使用纯HTML,JS和CSS创建跨平台桌面应用程序。如果您的目标是移动平台,也可以使用Cordova。

你也可以使用Foxx来执行你的一些应用程序逻辑(这取决于你的个人喜好),或者也可以创建一个API平台(例如Restify)。

大多数数据库系统都是用C ++编写的,但这并不意味着只能通过C ++访问它们,而是为流行语言提供了额外的驱动程序。如果您使用特定语言,请更新问题,以便我们进一步提供帮助。

您可能还想阅读:http://npmjs.com/package/caminte,了解为什么ArangoDB会是您的最佳选择。

修改

由于我在C ++方面的经验有限,我只能提供一些我之前保存的参考文献,但我相信它们对你有用。

对于C ++,您应该使用的驱动程序是:

https://www.arangodb.com/2018/02/nosql-performance-benchmark-2018-mongodb-postgresql-orientdb-neo4j-arangodb/

驱动程序的使用示例:

https://www.arangodb.com/2017/11/introduction-fuerte-arangodb-c-plus-plus-driver/

关于如何在ArangoDB中使用图形的简单示例/教程:

https://www.arangodb.com/wp-content/uploads/2017/10/C-Example-Source-Code-File.cc

Arango关于绘图的免费课程:

https://docs.arangodb.com/3.2/Manual/Graphs/

希望他们帮忙!