GithubHelp home page GithubHelp logo

ceda's Introduction

CEDA: Learned Cardinality Estimation with Domain Adaptation

A PyTorch Implementation of CEDA. We also provide the source code for data import, getting PostgreSQL cardinality estimation, and getting histogram information.

Requirements

  • Python 3.9.7
  • PyTorch 1.10.2

Dataset

The project works on PostgreSQL 11. If you do not have PostgreSQL installed, you first need to install PostgreSQL. Our experiments are conducted on the IMDB and Forest datasets. You can use our forest.py script to import forest data into PostgreSQL, and similarly, we also provide a script to import Power data.

Example usage:

cd importForestAndPower
python forest.py

Because the encoding part of our Attention-based Cardinality Estimator integrates histogram information. You can use a script we wrote to collect histogram information.

For example:

If you want to get the histogram information of Forest, you can run getForestHistogram.ipynb to get a histogram_forest.csv.

Train & Test

You can train and test the model performance using the following command.

python train.py
python trainDA.py

In order to compare with LW-NN, we reproduced its code. You can run the train.py training model under the LW-NN folder, and test the model effect with test.py.

cd LW-NN
python train.py
python test.py

If you want to compare with traditional PostgreSQL, you can run get_cardinality_estimate_actual.py in the get-postgresql-cardinality folder, and then you will get a csv result file, in which you can see the estimated cardinality, actual cardinality, q-error, etc. information.

cd get-postgresql-cardinality
python get_cardinality_estimate_actual.py

Code References:

ceda's People

Contributors

donny-350 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.