Glossary
ADBC
ADBC (Arrow Database Connectivity) is a multi-language data access API specification and driver standard that delivers data in Apache Arrow columnar format instead of a row-oriented format.
ADBC is a modern alternative to ODBC and JDBC for analytic applications. It can use zero-copy operations to achieve low latency, high throughput, reduced processor load, and lower memory overhead.
Unlike Flight SQL, ADBC is not a client-server protocol. It does not impose requirements on the server side. All that is needed for a database, query engine, or data platform to work with ADBC is a client-side ADBC driver that adapts its protocol or API to the ADBC API.
ADBC API
The ADBC API is a set of standardized programming interfaces in multiple languages through which applications interact with ADBC drivers and driver managers.
ADBC client
An ADBC client is an application that uses the ADBC API to connect to data systems through one or more ADBC drivers. A client typically uses a driver manager to locate and dynamically load drivers at runtime. The drivers implement the database-specific protocols and APIs for the systems the client connects to.
ADBC driver
An ADBC driver is a library that enables applications to interact with a data system through the ADBC API.
ADBC drivers can be implemented in different languages including C++, C#, Go, and Rust. A driver can be imported directly into an application that's implemented in the same language, but more often it is compiled into a shared library (a .so file for Linux, a .dylib file for macOS, or a .dll file for Windows) and dynamically loaded into an application in any supported language using a driver manager.
ADBC driver manager
An ADBC driver manager is a library that acts as an intermediary between a client application and ADBC drivers. Instead of linking directly to one or more drivers, the application links to the driver manager, which locates and dynamically loads drivers.
ADBC driver manifest
An ADBC driver manifest is a TOML (.toml) configuration file that describes an ADBC driver, its capabilities, and how to load it. Driver manifests simplify the installation, management, location, and loading of drivers.
Apache Arrow
Apache Arrow is a universal columnar data format. The Arrow format can hold data in memory, send data over a network, or store data on disk. It supports zero-copy operations.
Apache Arrow is also the name of the open source project that created and maintains the Arrow columnar format and the set of tools built around it which enable fast data interchange and in-memory analytics across multiple languages. ADBC and Flight SQL are subprojects of the Arrow project.
Flight SQL
Arrow Flight SQL is a high-performance client-server protocol for databases, query engines, and data platforms. It exchanges data between the client and server in Apache Arrow columnar format.
JDBC
JDBC (Java Database Connectivity) is a data access API specification and driver standard for Java that delivers data in a row-oriented format.
ODBC
ODBC (Open Database Connectivity) is a multi-language data access API specification and driver standard that delivers data in a row-oriented format.
Zero-copy
A zero-copy operation is one in which data is transferred from one medium to another without creating any intermediate copies. When a data format supports zero-copy operations, its structure in memory is the same as its structure on disk or on the network. So, for example, data can be read off the network directly into a usable structure in memory without performing any intermediate copies or conversions. Apache Arrow supports zero-copy operations.