Author:MichaelIF
译:Lucia
这是一篇介绍作为Alteryx用户的您点下Alteryx的“Run”按钮后发生的一些奇妙的过程,这会让您更好的理解作为Alteryx designer/Server里的重要组成组件——Alteryx Engine,也更有助与更好理解如何更好利用安装Alteryx的机器资源,去理清以前所关于alteryx engine作用上的模糊概念。
接下来本文将图文并茂的展示利用Alteryx的机器资源的线程(Cores)和机器的缓存(Ram),展示执行任务的Alteryx Engine是如何将数据中的每个记录(Record)进行处理的示例。
2.Disk VS Ram
先声明一点,在硬盘上执行任务要比在缓存内执行任务要慢,这是在硬盘Disk上读写和缓存内读写的区别。因此Alteryx会先一次读一个硬盘记录到缓存中,循环到结束,用下面一个动态图来更好解释一下这个过程:
插入('Example_1.gif'.gif)
蓝色圆圈代表是硬盘中运行,红色圆圈代表缓存中运行(后面的图里也将是这样区别)
在这个动图中,记录1从硬盘读取到缓存,然后在缓存中执行Formula工具,然后通过Browse 工具将记录1结果释放到硬盘,旋即处理第2条记录,依次为之
2.多条分支下的工作流处理
如下面一张动图所示在这个水平视图里,再顶部的工作流分支会先将记录1缓存执行完formula第一个分支到硬盘,再执行下面一个分支,以此方式再处理第2条记录,依次为之,这样缓存会能得到更合理的利用。
插入('Example_2.gif'.gif)
3.排序和合并工具
最后我们要讲讲排序(Sort)和合并(Join)工具,不同于前面例子中的记录一条一条的在缓存中过,排序(Sort)和合并(Join)Alteryx Engine会需要一次性全部读取记录,自上而下按数据源顺序读入缓存,在执行Join操作前执行排序(Sort),再按照连接条件在对应逻辑的分支上写入结果
因为排序和合并需要占用比其他操作更多的缓存的缘故,我们可以通过Alteryx 的User Settings 来更改应用于排序和合并缓存大小
与排序和合并有相同缓存处理方式的还有一个 Block Until Done 工具,通过这篇理解Alteryx Engine,大家可以了解为什么有些工作流耗时会比期待时间要长,以及受此工作原理启发设计更好的工作流和利用好缓存吧!
Better specs = better Alteryx-ing = betterdata solving