Skip to content

Commit aade177

Browse files
committed
Updated documentation.
1 parent 2c64f30 commit aade177

File tree

1 file changed

+51
-46
lines changed

1 file changed

+51
-46
lines changed

README.md

Lines changed: 51 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,85 @@
1-
# Hasura SQL Integration Suite
1+
# Hasura Integration Suite
22

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
46

5-
## Components
7+
## Native Data Connector Development
68

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:
945
- SQL:2003 compliance with extensive feature support
1046
- Window functions and common table expressions
1147
- Flexible caching system (in-memory and Redis)
1248
- Advanced query optimization
1349
- Comprehensive type system
1450

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
1856
- Authentication via headers (Bearer tokens, API keys)
1957
- Role-based access control
2058
- Query result caching
2159
- Integration with standard JDBC tooling
2260

23-
### 3. [Python DB-API](calcite-rs-jni/py_graphql_sql/README.md)
61+
#### Python DB-API
2462
Python DB-API 2.0 implementation for SQL access to Hasura DDN endpoints:
2563
- Python 3.9+ support
2664
- Context manager support
2765
- Type hints for better IDE integration
2866
- Clear error handling
2967
- Thread-safe design
3068

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:
3371
- JSON-based request/response format
3472
- Read-only query execution
3573
- Authentication and role-based access
3674
- Connection pooling
3775
- Environment-based configuration
3876

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-
7077
## Getting Started
7178

7279
Each component has its own setup and configuration requirements. Please refer to the individual component documentation linked above for detailed instructions.
7380

74-
## Common Features Across Components
81+
## Common Features
7582

76-
- SQL:2003 compliance
7783
- Authentication and authorization support
7884
- Query result caching
7985
- Clear error handling
@@ -83,11 +89,10 @@ Each component has its own setup and configuration requirements. Please refer to
8389
## Development
8490

8591
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)
8793
- [JDBC Connector Development Guide](calcite-rs-jni/jdbc/README.md#building-from-source)
8894
- [Python DB-API Development](calcite-rs-jni/py_graphql_sql/README.md#prerequisites)
8995
- [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)
9196

9297
## License
9398

0 commit comments

Comments
 (0)