使用流水线组合操作
在 DSS 工作流程中,SQL 流水线是一个混合多个后续配方(每个配方使用相同的 SQL 引擎)的过程。然后,可以执行包含这些集成配方的单个作业活动,这些配方可以是可视化的和“SQL 查询”配方。
通常,SQL 查询将转换为关系代数中的表达式,关系代数是一系列关系操作。如果我们一次执行一个操作,我们会产生过高的成本,因为我们需要在磁盘上创建临时文件来存储这些临时操作的结果。必须创建大型临时文件并存储在磁盘上,但这需要时间,并且通常是不必要的,因为后续过程会立即使用这些文件作为输入。通常的做法是生成与查询中特定操作组合的算法相对应的查询执行代码,以减少临时文件的数量。
示例
例如,一种具有两个输入文件和一个输出文件的方法可以执行 JOIN 以及对输入文件的两个 SELECT 操作和对结果文件的最终 PROJECT 操作,而不是单独实现这些操作中的每一个。我们只需应用该方法并获得一个结果文件,而不是创建四个临时文件。这就是流水线或基于流的处理的术语。
结论
为了执行多个操作,通常的做法是动态生成查询执行代码。该代码由生成的代码生成,该代码包含与不同过程相对应的多种算法。在操作之后,生成结果元组并将其用作其他操作的输入。例如,如果两个对基本关系的 SELECT 操作后跟一个 JOIN 操作,则每个 SELECT 操作生成的元组将被馈送到流或流水线中,并用作 JOIN 过程的输入。
广告