我的Web应用程序应使用DSL之类的自定义SQL来了解存储在数据湖中的拼花文件。现在,我使用Spark将此DSL命令转换为DataFrame API,但我意识到使用MPP解决方案(如Presto \ Impala等)可以实现更好的性能,因为它们始终具有用于SQL执行的准备好的过程。但我有一个局限性-将DSL转换为SQL应该在第三方位置进行。我知道我可以构建一个代理应用程序,以从此DSL转换为SQL。我的问题是下一个:有什么方法可以在Presto方面进行这种转换吗?
答案 0 :(得分:3)
有什么办法可以在Presto方面进行这种转换吗?
Presto没有语言的任何扩展点,因此不允许替换SQL或通过插件对其进行扩展。
当然,您可以在Presto中滚动您的迷你语言来代替SQL解析器和分析器,但这将需要很多工作。如果选择此路径,则可以在Presto Community Slack的#dev
频道上寻求指导。但是,我不建议重新实现语言层-从时间的角度来看这是昂贵的。
我建议您在应用程序中或Presto前面的某些代理中将自定义DSL转换为SQL。您可以使用presto-proxy
作为基础方便地为Presto构建代理。