差分数据

2021-03-20 15:45:20

DDLog是一种用于增量计算的编程语言。非常适合撰写撰写的程序,可响应输入更改而连续更新其输出。使用DDLog,程序员不需要担心编写增量algorithms.instead以声明方式使用Datalog的语句指定所需的输入输出映射。然后,DDLog编译器合成有效的增量实现.DDLOG基于Frank麦克斯里' Sexcellent差分数据流程库。

关系:DDLog程序将一组输入关系(或表)转换为一组输出关系。因此非常适用于在关系数据上运行的应用程序,从实时分析到旋涡管理系统和静态程序分析工具。

DataFlow导向:在运行时,DDLog程序接受要输入关系的更新流.ECUPTION INSERTS,删除或修改输入记录的子集。 DDLog响应输出更新的输入互联对其输出关系。

增量:DDLog通过执行对输出关系的更改进行计算的最小金额来处理输入更新。这对许多查询具有重要的性能效益。

自下而上:DDLog从一组输入事实开始,通过遵循用户定义的规则,以自下而上的方式来计算所有可能导出的事实。 Incontrast,自上而下的引擎被优化,以应对单独的用户查询,而无需提前计算所有问题的事实。例如,给定计算图表中的连接对的数据记录程序,自下而上引擎维护所有这些对的组。另一方面,另一方面,通过用户查询触发自上而下的发动机,以确定是否通过搜索辐射链返回地面事实来处理一对顶点是连接查询。在所有导出的事实必须提前计算的应用中,最优选的是,初始计算成本在大量查询中摊销。

内存:DDLOG存储和处理内存中的数据。在典型用例中,与持久数据库结合使用的DDLog编程,其中数据库记录被送到DDLog作为地上事实和由DDLog计算的派生事实被编写回数据库。

目前,DDLog只能在完全适合单片机内存的数据库上运行。我们正在研究DDLog的分布式版本,可以将其跨多台计算机的状态和计算能够。

键入:在其经典教科书表单中,Datalog更像是数学形式主义,而不是程序员的辅助工具。特别是,Pure Datalog没有类型,算术,字符串或函数等概念。为了便于写作安全,清晰和简洁的代码,DDLogextends纯数据播放:

强大的类型系统,包括Booleans,无限制的精度整数,BitVectors,浮点数,字符串,元组,标记的Onions,Vectors,Set和Maps。所有这些类型都可以在DDLog关系中讨论并由DDLog规则操纵。因此,使用DDLOGONE可以直接在结构化数据中执行关系操作,例如连接,而不必先平整它(如在SQL数据库中经常完成)。

一种简单的程序语言,允许在DDLOG中本地表达许多计算,而无需诉诸外部功能。

集成:虽然DDLog程序可以通过命令行界面以交互方式运行,但是其提高用例是与需要DESTUCTIVE Database功能的其他应用程序集成。将DDLog程序编译为可以链接的RUST库,可与RUST,C / C ++,JAVA或GO程序(可以轻松添加其他语言的绑定)。这使得能够良好的性能,但有些限制灵活性,因为关系模式或规则的更改需要重新编译。

要安装一个预编译的DDLog版本,请下载最新的二进制版本,从存档中提取它,将DDLog / Bin添加到$ Path,并将$ DDLog_Home设置为指向DDLog目录。您还需要安装防锈工具链(请参阅下面的说明)。

如果您'重新使用OS X,您需要通过这些说明覆盖二进制和#39;安全设置。否则,在首次运行DDLog编译器时(通过调用DDLog),您将获取以下警告对话框:

" ddlog"无法打开,因为无法验证开发人员.Macos无法验证此应用是否释放恶意软件。

Rust Toolchain v1.47或更高版本:Rustup脚本将路径添加到Rust Toolchain二进制文件(通常,$ Home / .cargo / bin)到〜/ .profile,以便在下次登录尝试中生效。配置CurrentsHell运行源$ Home / .cargo / Env。

谷歌Flobuffers图书馆。从Github下载并构建FlodBuffers 1.11.0。让FLOTC工具在您的$ PATH中。此外,请确保FlatBuffersJava类位于$ CLASSPATH中:

以下库的静态版本:libpthread.a,libc.a,libm.a,libt.a,libutil.a,libdl.a,libgmp.a和libstdc ++。A可以从特定于发行的软件包安装。在Ubuntu:在Fedora上:

在&#39安装依赖关系的情况下,使用Theabove方法之一安装依赖项,将此存储库设置为默认,并将$ ddlog_home变量设置为指向存储库的根目录。跑

存储库中的任何位置都要构建DDLog Compiler.to在Haskell堆栈中安装DDLog二进制文件' s默认二进制目录:

启用vim中的差分数据介绍的最简单方法突出显示Vim中的。

如果您使用的是插件管理器,您也可以直接从上游repository中使用该文件。例如,在Vundle的情况下,配置可以如下所示: