数据和算法工作流生成、内省和执行(dawgie)

dawgie的Python项目详细描述


道吉

数据和算法工作流生成、自省和执行

Dawgie软件实现了:

  1. 该框架要求数据匿名,因为实现dawgie与框架的算法引擎元素无关。该框架允许dawgie通过命名和版本来识别数据的作者,即使dawgie不知道数据本身。由于框架和进一步实现的语言是python,dawgie进一步要求数据是"可pickle的"。框架接受了额外的需求,并将其推送到算法引擎元素。dawgie使用一个延迟加载实现(仅当算法引擎子元素请求特定作者的数据时才加载)来删除路由,从而要求了解数据本身。
  2. 数据持久性有两个独立的实现。对于小型和简单的数据作者关系,python shelve模块用于持久化。随着独特作者数量的增长,关系增长得更快(非线性),需要更复杂的持久性工具。在后一种情况下,postgresql用于持久性。这两种实现的设计使它们可以快速地互换。实际上,它们都不会自己存储数据块。它们——shelve和postgresql——只存储作者的唯一id——姓名和版本——然后引用磁盘上的blob。使用shelve(python字典)和postgresql(关系数据库)的关系数据库特性,可以快速解决特定作者对数据的任何请求。使用{md5 hash}{sha1 hash}为所有数据blob创建唯一的名称。这些名称还允许持久性识别数据是否已知。
  3. 对于管道管理,dawgie实现了一个worker farm、一个工作流抽象语法树(ast)和从数据持久性发出信号以在framework algorithm engine元素中执行任务。数据持久性实现在编写新数据时向管道管理元素发出信号。管理器在ast中搜索依赖于作者的所有任务,并从最早的依赖者开始调度依赖于作者的所有任务。新的数据信号可以在任何任务结束时生成。当任务从调度转移到执行时,工作场的领班将任务传递给计算节点上等待的工作人员。然后,工作线程通过任务的数据持久性加载数据,并开始执行任务。完成任务后,工人通过数据持久性保存数据,并通知工头准备好执行另一项任务。以这种方式,dawgie遍历ast中依赖于生成的任何新数据的最小和完整节点。管道管理还提供周期性任务,将时间事件视为新数据。
  4. < > >

    组织

    dawgie由env变量和命令行参数配置和控制。命令行参数覆盖env变量。虽然本节几乎涵盖了所有命令行选项,但请使用--help开关查看所有可用选项。

    访问Running Dawgie < DL>
    数据库端口--上下文数据库端口
    数据库访问端口。有关此参数的详细定义,请参阅正在使用的特定数据库实现。
    农场端口--上下文农场端口
    农场工人用来与dawgie服务器通信的访问端口。
    端口--端口
    Web显示端口。所有后续端口都是从这个端口计算出来的。
    日志端口--上下文日志端口
    分布式工作者通过dawgie服务器记录消息的端口号。

    算法引擎(ae)

    < DL>
    ae_base_path——上下文ae dir
    指向ae源代码的完整路径。它是T他首先开始遍历并检查所有子目录,包括那些实现了必要工厂的包,这些工厂被标识为ae包。
    ae_base_包--上下文ae pkg
    因为ae代码可能与非ae代码混合,因此可能是代码的子集,因此需要知道包前缀。

    **示例**

    如果所有python代码都以foo开头,而ae代码则以foo/bar/ae开头。那么ae_base_path应该是"foo/bar/ae",并且ae_base_package应该是"foo.bar.ae"。

    数据

    < DL>
    数据转换器——上下文数据数据库
    dawgie存储ae生成的数据的位置,称为状态向量。这个区域应该足够大,可以一直保存由ae生成的所有数据。
    数据日志——上下文数据日志
    Dawgie写入日志文件的位置。
    数据分段--上下文数据stg
    dawgie存储ae临时数据的位置。它的大小应该适合预期的ae使用,dawgie将清理舞台区域。但是,当

    数据库

    dawgie支持两种类型的数据库。它支持python shelve用于小型应用程序,然后postgres用于更大和可扩展的系统。

    PostgreSQL
    < DL>
    数据库主机--上下文数据库主机
    PostgreSQL服务器的IP主机名。
    db_impl—上下文db impl
    必须是"post"
    数据库名称--上下文数据库名称
    要使用的数据库的名称。
    数据库路径--上下文数据库路径
    用户名:数据库名为db_name的密码。
    数据库端口--上下文数据库端口
    PostgreSQL服务器的IP端口号。当db_impl为"post"时,该值默认为5432,因为postgresql独立于dawgie。
    架子
    < DL>
    数据库主机--上下文数据库主机
    运行dawgie的机器的IP主机名。
    db_impl—上下文db impl
    必须是"shelf"
    数据库名称--上下文数据库名称
    要使用的数据库的名称。
    数据库路径--上下文数据库路径
    数据库主机上用于写入搁置文件的目录路径。
    数据库端口--上下文数据库端口
    Dawgie DB接口的IP端口号。从为Dawgie提供服务的通用端口号自动计算In(请参见--端口)
    工具
    < DL>
    db_post2shelve_前缀
    将postgresql转换为shelve以开发新的ae模块时使用。
    数据库旋转路径--上下文数据库旋转路径
    允许使用每个新的运行ID备份数据
    数据库复制路径--上下文数据库复制路径
    数据库工作的临时工作空间。
    db_u旋转——上下文db旋转
    要保留的数据库备份数。

    源代码

    然后,源代码按语言组织:

    • bash:用于更简单地访问python的实用程序
    • python:dawgie的实现

    python有视图键包:

    • dawgie.db:数据库接口
    • dawgie.de:显示引擎,允许用户请求将状态向量呈现为有意义的图像
    • dawgie.fe:我们看到并与之交互的前端。
    • dawgie.pl:运行算法引擎的实际管道代码
    • dawgie.tools:管道和管理员(主要)使用的工具箱

    文档

    基本手册是用于大豆2018大赛的销售手册。

    fundamental developer overiew是销售和开发的混合体。它框定了问题和提供的解决方案。然后,对如何使用gamma等人的设计模式使用该工具进行高级描述。有了所使用的模式,开发人员应该能够转到如何将幻灯片中的细节与这些幻灯片中的最高视图连接起来。

    基本魔法是经理级的解释,说明管道的功能以及它如何帮助开发。

    基本操作方法是与dawgie合作的入门课程。

    基本管理是如何管理dawgie的开始。

    安装

    1. python3 python/setup.py build安装
    2. bash install.sh
    3. < > >

      使用

      欢迎加入QQ群-->: 979659372 Python中文网_新手群

      推荐PyPI第三方库


热门话题
java如何反射地迭代数组字段?   java NamedQuery错误“具有给定标识符的多行:1”   java无法使用单独类中的计时器更新TextView   兼容性什么时候可以很快使用新的Java功能?   java二叉树路径和   java矩形的性能   java我想从同一个子表在主表中添加两个外键   java如何获取基于特定日期的所有数据?   java javafx、OO编程规则和写入变量类型的选择   java使用带枚举的switch语句   java异步任务生成运行时异常   java为什么JLabel不显示下划线字符?   java如何解析具有可变参数号的函数?   带有按钮的java JavaFX自定义列表单元格:未调用处理程序   java Modelmapper无法映射整个模型?   传递给持久化的java分离实体,包含LatLng列表