Chapter 3. Connectors

A Presto connector is a plug-in that connects the Presto engine to an external catalog. Presto connectors are available for a wide variety of data sources, including relational databases, NoSQL databases, and filesystems.

In this chapter, you’ll learn how to implement a custom connector. First, we’ll describe the concept of the Service Provider Interface (SPI) provided by Presto, which defines the interfaces to build custom connectors, types, functions, and system access control in Presto.

Then, we’ll focus on the concept of connectors and how it’s implemented in Presto. Next, you’ll learn how to implement a custom connector and an alternative implementation, based on Apache Thrift, that enables the communication between Presto and external servers written in any language supported by Thrift, such as Python, PHP, and many more.

Finally, we’ll focus on Apache Pinot, which is a real-time distributed datastore, and how to connect it to Presto.

Service Provider Interface

An SPI is an interface you can use to extend a framework with third-party components. Presto implements its own SPI, as shown in Figure 3-1. The Presto SPI, which is within the Presto server, manages the communication between the Presto core and the external service providers.

The SPI architecture.
Figure 3-1. The SPI architecture

A service provider, wanting to communicate with Presto, must implement a plug-in module, ...

Get Learning and Operating Presto now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.