What is Apache Arrow Flight SQL?
Apache Arrow Flight SQL is a protocol for high-performance, columnar database access over gRPC. It builds on Apache Arrow’s in-memory columnar format and the Arrow Flight RPC framework: a client sends SQL, and the server streams results back as Arrow record batches. Because both sides already speak Arrow, there’s no row-by-row serialization or type conversion — the data moves in the exact shape analytics tools consume it. It’s the modern, columnar successor to JDBC/ODBC for analytical workloads.
Columnar end to end
Results are Apache Arrow record batches — the same columnar layout your analytics tools already use. No row-to-column reshaping on either side.
No row-by-row serialization
Flight SQL skips the per-row encode/decode that throttles JDBC/ODBC on large reads, moving bulk results with minimal CPU and copying.
gRPC streaming + parallelism
Built on Arrow Flight’s gRPC transport, results stream (and can be fetched in parallel), so big result sets arrive fast and predictably.
GizmoSQL: an open-source Flight SQL server
GizmoSQL implements Arrow Flight SQL on top of DuckDB, so you get columnar speed with a real, secure server: TLS/mTLS, JWT, SSO/OAuth, permissions, and horizontal scaling. Connect from any language via ADBC, JDBC, or Python.
# pip install adbc-driver-gizmosql
from adbc_driver_gizmosql import dbapi as gizmosql
conn = gizmosql.connect(
"grpc+tls://gizmosql.example.com:31337",
username="user",
password="...",
)
cur = conn.cursor()
cur.execute("SELECT * FROM sales LIMIT 10")
for row in cur:
print(row)Apache Arrow Flight SQL — FAQ
What is Apache Arrow Flight SQL?
Apache Arrow Flight SQL is a protocol for high-performance, columnar database access over gRPC. Built on Apache Arrow’s in-memory format and the Arrow Flight RPC framework, it lets clients send SQL and receive results as Arrow record batches streamed over the network — eliminating the row-by-row serialization and conversion that slow down traditional drivers.
Is Arrow Flight SQL faster than JDBC or ODBC?
For analytical workloads and large result sets, yes. JDBC/ODBC serialize results row-by-row and convert types repeatedly; Flight SQL streams columnar Arrow batches directly, so data moves with far less CPU and copying — especially for the wide, bulk reads analytics depends on.
What is an Arrow Flight SQL server?
A database server that implements the Flight SQL protocol so clients can query it over Arrow Flight. GizmoSQL is an open-source Arrow Flight SQL server powered by DuckDB — add it in front of your data to get fast, secure, columnar SQL access from any language.
How do I connect to a Flight SQL server?
Use an ADBC driver (for GizmoSQL, adbc-driver-gizmosql), a JDBC driver, or the Python client. In Python: gizmosql.connect("grpc+tls://host:31337", username=..., password=...). Mature client libraries exist in nearly every language.
Is GizmoSQL free?
GizmoSQL Core is Apache-2.0 and free. Enterprise adds SSO/OAuth, fine-grained permissions, session instrumentation, automatic query profiling, and statement queuing for $300 per vCPU per year.