Open source · ADBC · JDBC · Python

    Apache Arrow Flight SQL, production-ready

    Flight SQL streams query results as columnar Apache Arrow batches over gRPC — no row-by-row serialization. GizmoSQL is the open-source Arrow Flight SQL server powered by DuckDB.

    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.

    connect.py
    # 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.