1
- # Hasura SQL Integration Suite
1
+ # Hasura Integration Suite
2
2
3
- A comprehensive collection of tools and adapters for enabling SQL access to GraphQL and other data sources through Apache Calcite.
3
+ Tools for integrating with Hasura Data Delivery Network (DDN) in two key ways:
4
+ 1 . Native Data Connector (NDC) toolkit for ingesting data sources into Hasura DDN
5
+ 2 . SQL-based tools for querying Hasura DDN endpoints
4
6
5
- ## Components
7
+ ## Native Data Connector Development
6
8
7
- ### 1. [ Hasura GraphQL SQL Adapter] ( calcite-rs-jni/calcite/graphql/README.md )
8
- SQL:2003 compliant system that enables Apache Calcite to query Hasura GraphQL endpoints using SQL. Features include:
9
+ ### [ NDC Calcite] ( ndc-calcite.md )
10
+ A toolkit for creating Hasura DDN Native Data Connectors using Apache Calcite:
11
+ - Support for developing connectors to 15+ file-based data sources
12
+ - Support for developing connectors to 25+ JDBC-based data sources
13
+ - Metadata-configurable adapter framework
14
+ - Built-in testing and validation tools
15
+ - Comprehensive connector development documentation
16
+
17
+ #### Supported Data Sources for NDC Development
18
+
19
+ File Formats:
20
+ | Format | Status | Features |
21
+ | -----------| ---------| ----------|
22
+ | Arrow | Tested | File mount, High Performance |
23
+ | CSV | Tested | S3, HTTP, file mount, Redis caching |
24
+ | JSON | Tested | S3, HTTP, file mount, Redis caching |
25
+ | XLSX | Tested | S3, HTTP, file mount, Redis caching |
26
+ | Parquet | Tested | File mount (S3 support possible) |
27
+
28
+ Databases:
29
+ - PostgreSQL (Tested)
30
+ - Redshift (Tested)
31
+ - Databricks (Tested)
32
+ - Trino (Tested)
33
+ - HIVE (Tested)
34
+ - DB2 (Tested)
35
+ - SQLite (Tested)
36
+ - H2 (Tested)
37
+ - Cassandra (Tested)
38
+
39
+ [ View full database support matrix] ( ndc-calcite.md#databases )
40
+
41
+ ## SQL Access Tools for Hasura DDN
42
+
43
+ ### [ Hasura GraphQL SQL Adapter] ( calcite-rs-jni/calcite/graphql/README.md )
44
+ Apache Calcite adapter optimized for querying Hasura DDN endpoints using SQL:
9
45
- SQL:2003 compliance with extensive feature support
10
46
- Window functions and common table expressions
11
47
- Flexible caching system (in-memory and Redis)
12
48
- Advanced query optimization
13
49
- Comprehensive type system
14
50
15
- ### 2. [ GraphQL JDBC Connector] ( calcite-rs-jni/jdbc/README.md )
16
- JDBC driver for SQL access to GraphQL endpoints, offering:
17
- - Standard JDBC interface for GraphQL data
51
+ ### SQL Access Interfaces
52
+
53
+ #### JDBC Connector
54
+ JDBC driver for SQL access to Hasura DDN endpoints:
55
+ - Standard JDBC interface
18
56
- Authentication via headers (Bearer tokens, API keys)
19
57
- Role-based access control
20
58
- Query result caching
21
59
- Integration with standard JDBC tooling
22
60
23
- ### 3. [ Python DB-API] ( calcite-rs-jni/py_graphql_sql/README.md )
61
+ #### Python DB-API
24
62
Python DB-API 2.0 implementation for SQL access to Hasura DDN endpoints:
25
63
- Python 3.9+ support
26
64
- Context manager support
27
65
- Type hints for better IDE integration
28
66
- Clear error handling
29
67
- Thread-safe design
30
68
31
- ### 4. [ SQL HTTP Server] ( calcite-rs-jni/sqlengine/README.md )
32
- Lightweight HTTP server for executing SQL queries via REST:
69
+ #### SQL HTTP Server
70
+ Lightweight HTTP server for executing SQL queries against Hasura DDN endpoints via REST:
33
71
- JSON-based request/response format
34
72
- Read-only query execution
35
73
- Authentication and role-based access
36
74
- Connection pooling
37
75
- Environment-based configuration
38
76
39
- ### 5. [ NDC Calcite] ( ndc-calcite.md )
40
- Metadata-configurable adapter supporting ~ 40 data sources:
41
- - 15+ file-based data sources
42
- - 25+ JDBC-based data sources
43
- - Support for various databases and file formats
44
-
45
- ## Supported Data Sources
46
-
47
- ### File Formats
48
- | Format | Status | Features |
49
- | -----------| ---------| ----------|
50
- | Arrow | Tested | File mount, High Performance |
51
- | CSV | Tested | S3, HTTP, file mount, Redis caching |
52
- | JSON | Tested | S3, HTTP, file mount, Redis caching |
53
- | XLSX | Tested | S3, HTTP, file mount, Redis caching |
54
- | Parquet | Tested | File mount (S3 support possible) |
55
-
56
- ### Databases
57
- Notable supported databases include:
58
- - PostgreSQL (Tested)
59
- - Redshift (Tested)
60
- - Databricks (Tested)
61
- - Trino (Tested)
62
- - HIVE (Tested)
63
- - DB2 (Tested)
64
- - SQLite (Tested)
65
- - H2 (Tested)
66
- - Cassandra (Tested)
67
-
68
- [ View full database support matrix] ( ndc-calcite.md#databases )
69
-
70
77
## Getting Started
71
78
72
79
Each component has its own setup and configuration requirements. Please refer to the individual component documentation linked above for detailed instructions.
73
80
74
- ## Common Features Across Components
81
+ ## Common Features
75
82
76
- - SQL:2003 compliance
77
83
- Authentication and authorization support
78
84
- Query result caching
79
85
- Clear error handling
@@ -83,11 +89,10 @@ Each component has its own setup and configuration requirements. Please refer to
83
89
## Development
84
90
85
91
For development setup and contribution guidelines, please refer to each component's documentation:
86
- - [ Calcite Adapter Contributing Guide ] ( ndc-calcite.md#contributing )
92
+ - [ NDC Calcite Development ] ( ndc-calcite.md#temporary-instructions---for-getting-started-as-a-developer-with-this-repo )
87
93
- [ JDBC Connector Development Guide] ( calcite-rs-jni/jdbc/README.md#building-from-source )
88
94
- [ Python DB-API Development] ( calcite-rs-jni/py_graphql_sql/README.md#prerequisites )
89
95
- [ SQL HTTP Server Development] ( calcite-rs-jni/sqlengine/README.md#building-and-running )
90
- - [ NDC Calcite Development] ( ndc-calcite.md#temporary-instructions---for-getting-started-as-a-developer-with-this-repo )
91
96
92
97
## License
93
98
0 commit comments