Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Qrlew

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
@Qrlew

Qrlew

The open-source DP layer for SQL

Qrlew (/ˈkɝlu/) is theopen source library that rewrites SQL queries into privacy-preserving variants usingDifferential Privacy (DP).

Use Qrlew if you want to bring privacy guarantees to your SQL pipelines. It is:

  • SQL-to-SQL: Qrlew turns SQL queries into differentially-private SQL queries that can be executed at scale on many SQL datastore, in many SQL dialects.
  • Feature-rich: Qrlew covers the broadest range of SQL queries, including JOIN and nested queries
  • Privacy-optimized: Qrlew keeps track of tight bounds and ranges throughout each step, minimizing the amount of noise needed to achieve differential privacy.

The rewriting process occurs in three stages: Thedata practitioners’s query is parsedinto a Relation, which is rewritten into a DP equivalent and finally executed by the the dataowner which returns the privacy-safe result.

Qrlew motivations: make differential privacy affordable for analytics use cases

Qrlew assumes thecentral model of differential privacy, where a trusted central organization: hospital, insurance company, utility provider, called thedata owner, collects and stores personal data in a secure database and whishes to let untrusteddata practitioners run SQL queries on its data.

At a high level we pursued the following requirements:

  • Ease of use for thedata practitioners. Thedata practitioners are assumed to be data experts but no privacy experts. They should be able to express their queries using the most common dialect for data analysis: SQL.
  • Ease of integration for thedata owner. SQL is a common language to express data analysis tasks supported by most datastores of all scale.
  • Simplicity for thedata owner to setup privacy protection. Differential privacy is about capping the sensitivity of a result to the addition or removal of an individual that we callprivacy unit.Qrlew assumes that thedata owner can tell if a table is public and, if it is not, that it can assign exactly oneprivacy unit to each row of data. In the case there are multiple related tables,Qrlew enables to define easily theprivacy units for each table transitively.
  • Simple integration with synthetic data when available. Some queries are not very suitable for DP-rewriting (e.g.:SELECT * FROM table), in those casesQrlew can use synthetic data as a fallback if provided.

These requirements dictated the overallquery rewriting architecture and features.

How doesQrlew work?

TheQrlew library, solves the problem of running a SQL query with DP guarantees in three steps:

  1. the SQL query submitted by thedata practitioners is parsed and converted into an intermediate representation calledRelation, thisRelation is designed to ease the tracking of data types ranges or possible values, to ease the tracking of theprivacy unit in the next step.
  2. TheRelation is rewritten into a DP variant
  3. The DP variant of theRelation can be rendered as an SQL query string in any dialect.

At the end of this process, the query string can submitted to the data store of thedata owner. The output can be shared with thedata practitioner or published without worrying about privacy leakage.

Deep Dive intoQrlew

To learn more aboutQrlew read theQrlew white paper.

You can cite us:

@misc{grislain2024qrlew,title={Qrlew: Rewriting SQL into Differentially Private SQL},author={Nicolas Grislain and Paul Roussel and Victoria de Sainte Agathe},year={2024},eprint={2401.06273},archivePrefix={arXiv},primaryClass={cs.DB},url={https://arxiv.org/pdf/2401.06273.pdf}}

PinnedLoading

  1. pyqrlewpyqrlewPublic

    pyqrlew

    Python 2

  2. qrlewqrlewPublic

    Rust 44 2

Repositories

Loading
Type
Select type
Language
Select language
Sort
Select order
Showing 9 of 9 repositories
  • qrlew.github.io Public

    Qrlew site

    Qrlew/qrlew.github.io’s past year of commit activity
    TypeScript0Apache-2.00 2 0 UpdatedJan 14, 2025
  • qrlew Public
    Qrlew/qrlew’s past year of commit activity
    Rust 44Apache-2.0 2 34 1 UpdatedDec 12, 2024
  • pyqrlew Public

    pyqrlew

    Qrlew/pyqrlew’s past year of commit activity
    Python 2Apache-2.00 3 0 UpdatedDec 12, 2024
  • sarus Public

    Interface with Sarus

    Qrlew/sarus’s past year of commit activity
    Rust0Apache-2.00 2 0 UpdatedNov 27, 2024
  • server Public

    A simple Qrlew RESTful API server

    Qrlew/server’s past year of commit activity
    Rust0Apache-2.00 0 0 UpdatedJun 25, 2024
  • docs Public
    Qrlew/docs’s past year of commit activity
    Jupyter Notebook0 1 0 2 UpdatedMar 27, 2024
  • datasets Public
    Qrlew/datasets’s past year of commit activity
    Python0Apache-2.00 0 0 UpdatedJan 22, 2024
  • .github Public

    Qrlew is Sarus open source SQL manipulation engine and differential privacy implementation

    Qrlew/.github’s past year of commit activity
    00 0 0 UpdatedJan 20, 2024
  • sqlparser-rs Public Forked fromapache/datafusion-sqlparser-rs

    Extensible SQL Lexer and Parser for Rust

    Qrlew/sqlparser-rs’s past year of commit activity
    Rust0Apache-2.0 592 0 0 UpdatedNov 15, 2023

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…


[8]ページ先頭

©2009-2025 Movatter.jp