MongoDB、Sacred 和 Omniboard 助手。
项目描述
mdbh - 用于 Sacred 和 Omniboard 的 MongoDB 助手集合。
这个存储库主要有两个目的:
首先,它提供了一个 Python 模块以及一些 CLI 脚本,以简化 MongoDB 以及Sacred 和Omniboard的使用,填补了底层空白。尽管Omniboard非常适合快速探索数据和比较 Sacred 实验,但它不适用于更复杂的数据可视化和低级数据库访问。例如,这在准备打印质量的绘图时很有用。
其次,它提供了一个Wiki 来收集有关如何将 Sacred 与 MongoDB、Omniboard 和 mdbh 一起使用的指南。特别是,提供了具有密码限制和对多个数据库的受控读/写访问的多用户、多数据库设置。本 Wiki 并非详尽无遗,而是让您开始使用自己的设置。
注意:这仍在开发中。
[[目录]]
安装
使用 pip 通过 PyPi 安装
pip install mdbh
设置
MongoDB 实例配置是使用一个(或多个)配置文件完成的,这些配置文件简单地存储服务器 IP、端口以及可能的用户名、密码和身份验证方法以及数据库名称。examples有关示例,请参见文件夹。
默认情况下,假设这个配置文件可以在下面找到
~/.mongo.conf
此配置文件是使用 mdbh 的核心。由于此配置文件可能包含用户数据,请确保只有当前用户对其具有读取权限,例如运行
chmod 400 .mongo.conf
用例
mdbh的一些用例如下:
MongoDB URI 创建
通常,服务或模块(例如 Sacred 中的 MongoObserver)需要一个 URI 来按照 官方格式规范连接到 MongoDB 。但是,这通常会导致样板代码,并且在用户身份验证的情况下,必须在相应的代码中指定用户名和/或密码等安全风险。
为此,mdbh 提供了get_uri
函数,该函数根据.mongo.conf文件和特定数据库名称创建连接 URI。
神圣实验查询
为了查询和操作通过 Sacred 记录到 MongoDB 实例的数据,mdbh 提供了几个函数,最全面的一个是
get_dataframe
,它返回从指定的 Sacred 数据库创建的 PandasDataFrame对象和可能的运行 ID。它方便地结合配置信息以及指定数据库中所有实验的记录指标。使用DataFrame, 复杂的数据聚合和/或绘图(例如通过Seaborn)非常舒适。
神圣实验神器检索
为了从 Sacred 实验中检索工件,mdbh 提供了 get_artifact 函数,该函数从 MongoDB 下载工件并使用缓存来优化跨不同应用程序的工件重用。或者,也可以通过resolve_artifacts为完整的 DataFrame 解析工件 ,但这可能会很慢,因为所有工件都已下载。
MDBH 配置
环境变量,例如缓存目录,可以在运行时通过environ 模块进行操作。
MongoDB 设置和 Omniboard
请参阅相应的 Omniboard Wiki 条目 ,了解 mbdh 如何简化 Omniboard 的使用。
请参阅相应的 MongoDB Wiki 条目 以了解如何正确设置 MobgoDB 实例。
缓存
默认情况下,MDBH 缓存下载的工件,通过mdbh.get_artifact(). mdbh.get_dataframe()或者,可以使用该选项在本地缓存通过获得的 DataFrame cache=True。有关详细信息,请参阅函数的文档。
默认情况下,文件缓存到使用 获取的临时文件夹中
tempfile.gettempdir(),Linux 通常默认为/tmp. 因此,缓存在多次引导时不是持久的。要使缓存持久化,请使用自定义缓存目录,例如:
import mdbh
mdbh.environ.set_cache_dir('~/.mdbh/cache')
环境变量在运行时更新,因此不需要重新加载模块。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。