Engine
The DPSQL+ Engine orchestrates the execution of differentially private SQL queries.
- class dpsql.engine.Engine(accountant: Accountant, sql_backend: SQLBackend, validator: Validator)[source]
- execute_query(query: str, dpparams: DPParams | None, temporary_table_name: str | None = None) DataFrame[source]
Execute a SQL query with privacy parameters.
- Parameters:
query (str) – The SQL query to execute.
dpparams (DPParams | None) – The differential privacy parameters.
temporary_table_name (str | None) – The name of the temporary table to save the result.
- Returns:
The result of the query execution.
- Return type:
DataFrame
- get_db_schema(database_name: str | None) dict[str, list[str]][source]
Get the schema of a database.
- Parameters:
database_name (str) – The name of the database.
- Returns:
The schema of the database. ex) {“table1”: [“column1”, “column2”], “table2”: [“column1”]}
- Return type:
dict
- register_database(database_name: str | None = None, privacy_unit_columns: dict[str, str] | None = None) None[source]
Register a database with privacy unit columns in Engine.
- Parameters:
database_name (str) – The name of the database.
privacy_unit_columns (dict) – The privacy unit columns of the database. ex) {“table1”: “column1”} if there is no privacy unit column in a table, give {}
- Returns:
None