Skip to main content

DBgen (Database Generator) is an open-source Python library for connecting raw data, scientific theories, and relational databases

Project description

DBgen

DBgen

---

Documentation: https://dbgen.modelyst.com

Github: https://github.com/modelyst/dbgen


DBgen (Database Generator) is an open-source Python library for connecting raw data, scientific theories, and relational databases. These are some of the main features:

  1. Very easy to work with
  2. Integration with the PostgreSQL databases.

DBgen was initially developed by Modelyst.

What is DBgen?

DBgen was designed to support scientific data analysis with the following characteristics:

  1. Transparent

    • Because scientific efforts ought be shareable and mutually understandable.
  2. Flexible

    • Because scientific theories are under continuous flux.
  3. Maintainable

    • Because the underlying scientific models one works with are complicated enough on their own, we can't afford to introduce any more complexity via our framework.

DBGen is an opinionated ETL tool. ETL tools exist but they rarely give the tools necessary for a scientific workflow. Opinionated aspect: it really cares about what the end product is (ID columns on all the tables). We're dealing with a much more restricted ETL problem (extracting and ).

Comparison to

  1. Airflow

    • Has a priority for ETL scalability
  2. Fireworks

  3. AiiDA or Atomate

    • We don't focus on the actual submission of computational science workflows.

What isn't DBgen?

  1. An ORM tool (see Hibernate for Java or SQLAlchemy for Python)

    • DBgen operates at a higher level of abstraction, not exposing the user to low level SQL commands like SELECT or INSERT.
  2. A database manager (see MySQLWorkbench, DBeaver, TablePlus, etc.)

  3. An opinionated tool with a particular schema for scientific data / theories.

Getting DBgen

Via Github

Currently, the only method of installing DBgen is through Github. This is best done by using the poetry package manager. To do this, first clone the repo to a local directory. Then use the command poetry install in the directory to install the required dependencies. You will need at least python 3.7 to install the package.

# Get DBgen
git clone https://github.com/modelyst/dbgen
cd ./dbgen
# Get Poetry
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3 -
# Install Poetrywhich ma
poetry install
poetry shell
# Test dbgen
dbgen serialize dbgen.example.main:make_model

Via Pip

pip install modelyst-dbgen

API documentation

Documentation of modules and classes can be found in API docs </modules>.

Reporting bugs

Please report any bugs and issues at DBgen's Github Issues page.

License

DBgen is released under the Apache 2.0 License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

modelyst-dbgen-0.4.8.tar.gz (115.6 kB view hashes)

Uploaded Source

Built Distribution

modelyst_dbgen-0.4.8-py3-none-any.whl (164.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page