- Provide HTTP API,including: sql query API、metadata management API、privacy budget management API Query Driver
- QueryDriver is responsible for driving other modules to complete SQL execution of the overall logic
- Create a separate QueryDriver object and QueryContext object for each query request, maintain the context independently, and maintain isolation
- Define a unified AST structure designed for differential privacy
- Mapping multiple input dialects into the unified AST
- Convert AST to SQL string for each dialect
- Provides traversal, rewrite APIs for AST
- Basic information extraction, database name, table name, join information, etc
- Provide differential privacy policy, whether it can be supported, noise method (result based, rewrite based)
- Metadata Storage and CRUD API
- Metadata high-performance queries, multi-level caching
- Metadata Automated Extraction from the database
- Aggregate function noise processing logic
- Clipping logic, etc.
- Sensitivity calculation local/smooth/elastic
- Noise addition algorithm
- Usability Calculation of Noised Results
- Storage and CRUD API
- Maintain privacy budget per data table
- Record privacy budget consumption per query
- Support various types of data source access
- Provide a unified query interface
- Provides a unified abstraction of query results