Presto SPI概述

2020-10-24  本文已影响0人  sparkle123

实现新的Presto插件时,将实现接口并覆盖SPI定义的方法。

插件可以提供连接器,类型,功能和系统访问控制。连接器是Presto中所有查询数据的来源:它们支持Presto可用的每个目录

SPI代码可在根目录的presto-spi目录中找到。

Plugin Metadata

每个插件都标识一个入口点:Plugin接口的实现。此类的名称是通过标准Java ServiceLoader接口提供给Presto的:类路径包含META-INF/services目录中名为com.facebook.presto.spi.Plugin的资源文件。该文件的内容是一行,列出了插件类的名称.

com.facebook.presto.example.ExamplePlugin

对于Presto源代码中包含的内置插件,只要插件的pom.xml文件包含以下行,就会创建此资源文件

<packaging>presto-plugin</packaging>

插件

对于希望了解Presto SPI的开发人员而言,Plugin接口是一个很好的起点。它包含访问方法,以检索插件可以提供的各种类。例如,getConnectorFactories()方法是一个顶层函数,当Presto准备好创建连接器实例以支持目录时,Presto会调用该函数来检索ConnectorFactoryTypeParametricTypeFunctionSystemAccessControlEventListenerFactory对象也有类似的方法。

上一篇 下一篇

猜你喜欢

热点阅读