暂无个人介绍
论文链接:https://trino.io/Presto_SQL_on_Everything.pdf摘要Presto 是一个开源的分布式查询引擎,Facebook 内部大部分的 SQL 分析工作均由其支持。Presto 设计上兼顾了适应性、灵活性和可扩展性。其支持了很多不同特征的用例。这些用例的执行时间从亚秒级用户报表到小时级的 ETL 作业(agg 或 join 等复杂算子,TB 数据量)。Pr
PrestoCon Day 2023,链接:https://prestoconday2023.sched.com/event/1Mjdc?iframe=no首页自我介绍,分享题目概要各个性能优化项能够优化的资源类别limit快速短路有什么优点?有啥特征?进一步的优化空间?避免不必要块的生成逻辑单元分布式执行,global 阶段的算子哪些字段无需输出?公共子表达式结合FilterNode和Proje
背景正则表达式匹配引擎,需将正则表达式对应的NFA(非确定有穷自动机,Non-deterministic finite automaton)转换为DFA(确定有穷自动机,Deterministic finite automaton),然后采用处理速度较快的DFA执行匹配任务。然而,DFA较NFA具有极高的空间复杂度,进而影响了DFA在大规模复杂正则表达式情形下的完美使用。目前有限自动机状态转移采用
背景最简单的逻辑表达式求取方法是求取所有每个子表达式的值,然后再带入复杂逻辑表达式依次计算得到最终结果,时间复杂度较高。简单的“或运算”和“与运算”,以短路方式实现,不需要计算所有的子表达式的值,计算效率较高。但是,以“或运算”、“与运算”、“否运算”和“嵌套运算”等子表达式组成的复杂逻辑表达式,不能简单的套用短路运算。本专利,通过“构建逻辑表达式树”及“逐级向上触发树节点”的方式,实现了一种快速
背景正则表达式匹配引擎的实现方式分为NFA(非确定有穷自动机,Non-deterministic finite automaton)和DFA(确定有穷自动机,Deterministic finite automaton)两类。由于NFA的状态数量与正则串长度成正比,因此大量开源库采用了NFA的执行方式,比如JDK regex、joni。也有一部分正则库在NFA翻译为DFA的理论基础上,采用了处理速
背景当前正则表达式NFA(非确定有穷自动机,Non-deterministic finite automaton)构造方法,通常需要先借助“堆栈(Stack)”构造“语法树(SyntaxTree)”,然后,将语法树转换为NFA。由于正则语义的嵌套层级未知,导致堆栈的大小不可控,容易导致内存溢出错误,并且,构造语法树也需要一定的消耗CPU。同时,传统的NFA在复杂字符集的情况下,采用邻接矩阵(全量数
背景面向数据加工领域的DSL(特定领域语言,Domain-Specific Language)无需使用者编写较为复杂的通常程序语言,具有较好的用户体验,应用较为广泛。如何将DSL翻译为机器可执行的程序是每种DSL均需面对的问题,并且传统的DSL翻译通常采用直译的方式,运行时执行效率较低。本文,提出一种面向数据加工领域语言的代码翻译算法,针对不同的DSL函数分别设计了代码翻译方案,不仅保证了语义的正
背景精确字符串搜索算法最简单的是Brute-Force,本次比较失败,则下次仍从模式串起始字符按顺序遍历“待匹配字符串”,但时间复杂度极高。著名的KMP( Knuth-Morris-Pratt )算法是经典的字符串搜索算法,充分利用失败信息,尽量增加下一次匹配索引,以此减少总的匹配次数,针对单条“待匹配字符串”具有较低的时间复杂度。但当需要匹配大量固定的“待匹配字符串”时,采用KMP算法的执行时间
背景面向数据加工领域的搜索DSL(特定领域语言,Domain-Specific Language)无需使用者编写较为复杂的通常程序语言,通过简洁的DSL即可实现复杂的搜索需求,具有较好的用户体验。搜索算子语法支持较为丰富,传统方案采用遍历AST(抽象语法树,Abstract Syntax Tree)的方式,根据当前的标识符类型执行对应操作。上述设计也就是常说的“解析执行”方案,由于每次都需要 “判
背景传统CEP(复杂事件处理,Complex event processing)引擎功能较为单一,往往仅是NFA(非确定有穷自动机,Non-deterministic finite automaton)基本功能连接、或和闭包的简单堆积。当前,随着移动设备的大范围普及,数据量越来越大,而传统CEP引擎对应的NFA只能运行在单台机器上,处理性能不能横向扩展。本文针对CEP引擎对应的NFA增加了“不发生
本次分享主要介绍面向数据加工DSL的一项编译优化:搜索算子语义等价转换。e_search()是灵活的语义丰富的搜索算子,通过简洁的DSL即可实现复杂的搜索需求。搜索过滤是日志处理的基本功能,在数据加工作业中搜索算子被极高频使用(数据加工共200+算子,搜索算子e_search()使用频度排名top 5)。搜索算子支持哪些语法?搜索算子语义等价转换是怎么实现的?有哪些实际价值?搜索算子支持哪些语法?
本次分享主要介绍面向数据加工DSL的一项编译优化:公共子表达式删除(common subexpression elimination)。SLS数据加工服务是什么?公共子表达式删除的初衷?公共子表达式删除是怎么实现的?有哪些实际价值?SLS数据加工服务是什么?日志服务提供可托管、可扩展、高可用的数据加工服务。数据加工服务可用于数据的规整、富化、流转、脱敏和过滤。数据加工DSL提供了30多种场景方案、