Hyrax SQL Handler: relational data through a scientific interface
Original author, developed with OPeNDAP mentorship
I authored the Hyrax SQL Handler during Google Summer of Code work with OPeNDAP. It brings relational data into the same data-access interface used by scientific clients, through a C++ BES module and ODBC.
Problem: relational tables outside a scientific data interface
Scientific clients often know a data protocol rather than each database’s driver, credentials and query interface. Relational data needs a bridge if it is to appear beside other Hyrax datasets.
The engineering problem is a translation boundary: dataset definitions, tabular query results and database types must become a representation the Data Access Protocol can expose.
Architecture: a BES module with an ODBC connector
The public repository describes a separately buildable C++ BES module using unixODBC and a database-specific driver. Dataset definition files select the connection and tables or columns exposed through Hyrax.
Hyrax provides the web-facing data interface and BES dispatches to the handler. The handler accesses the configured database through ODBC. The diagram is a high-level reconstruction from the repository and official guide; it does not claim every query is pushed down identically.
Protocol and database responsibility boundary
A scientific client requests a configured dataset through Hyrax. The BES SQL module bridges that request to an ODBC driver and database. The database remains behind a server-side definition boundary, while type mapping connects relational results to DAP representation.
ODBC offers a common connection surface, but does not remove database-specific driver configuration. The module’s setup and datatype mappings remain important parts of the integration.
A retrospective alternative is to export database results into scientific files before serving them. That moves the integration boundary into an ETL process and can simplify read-only distribution, while introducing copied data and refresh work. The handler instead addresses access through a configured database bridge.
Outcomes: public source and historical documentation
The OPeNDAP repository retains the module, installation guidance and database examples. My original work belongs to the 2009–2010 Google Summer of Code period; current source includes later maintenance.
I also authored “Understanding OPeNDAP Hyrax”, a conference-proceedings paper in ConfSL 2009, Bologna, 12–13 June 2009 (printed pp. 23–38). It documents earlier Hyrax technical writing and is distinct from the 2010 SQL Handler presentation and software account. Historical comparisons do not establish current performance.
The current official Hyrax guide labels the SQL handler unsupported. This case presents its historical engineering and interoperability contribution; the 2009 paper is linked as a conference-proceedings publication.
Learning: interoperability needs precise type and query contracts
A common protocol does not make SQL and scientific data models identical. A useful adapter must be clear about supported types, query constraints, configuration and failure behavior.
For a renewed implementation I would test nulls, numeric precision, large result sets, cancellation and driver failures against each supported backend. That is a present-day validation plan, not a claim about tests performed during the original project.
Questions & discussion
Does an ODBC interface imply identical behavior across databases?
No. It supplies a connector boundary. Drivers, type mappings and query semantics still need verification per database.
The official Hyrax guide labels it unsupported. The public source remains useful historical evidence; source availability does not establish current operational support.
Type conversion, null/precision behavior, bounded result processing, cancellation and failure isolation, then database-specific configuration and query behavior.
ConfSL 2009, Bologna, 12–13 June 2009; printed pp. 23–38; Carlo Cancellieri; conference-proceedings paper, distinct from the 2010 SQL Handler presentation. Original proceedings linked without rehosting.
Original 13-page demonstration from 18 August 2010: relational data access through the Hyrax back end, dataset discovery, filtering and projection. Contacts and mentor names are omitted.
Carlo Cancellieri. Original slides acknowledge Google Summer of Code 2010 funding and describe the software as LGPL. Mentor names omitted for privacy.