The ADBC specification
You can think of ADBC as similar conceptually to ODBC/JDBC, but Arrow-native. It defines a single Client API that can be implemented by various drivers so that an application can interact with a host of different data sources in a backend-agnostic manner. Let’s take a look at Figure 8.2 again, but using ADBC instead:
Figure 8.4 – ADBC application structure
In Figure 8.4 we have our six labeled steps again, but the work that’s involved is different and possibly optional:
- The application submits a query via the ADBC API.
- That query is then passed on to the loaded/desired ADBC driver.
- The driver will still translate the query if necessary and send it to the database using a database-specific protocol.
- The database executes the query and returns the result set in a database-specific format. This is the ideal scenario for that data to be already in the Arrow format.
- Only if necessary, the driver...