Skip to main content

Distributed SQL Engine

Project description

archaeopteryx

A query engine for your data, no database required

Documentation | Examples | Contributing | Blog


NOTE Opteryx is an alpha product. Alpha means different things to different people, to us, being alpha means:

  • Some features you may expect from a Query Engine may not be available
  • Some features may have undetected bugs in them
  • Some features may not be tuned for performance
  • Some previously working features may break

Opteryx has no server component, Opteryx just runs when you need it making it ideal for deployments to platforms like Kubernetes, GCP Cloud Run, AWS Fargate and Knative.

Status Regression Suite Static Analysis PyPI Latest Release opteryx Downloads Code style: black commit_freq last_commit

How Can I Contribute?

All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome.

If you have a suggestion for an improvement or a bug, raise a ticket or start a discussion.

Want to help build mabel? See the contribution guidance.

What Opteryx is

How is it different to SQLite or DuckDB?

Opteryx is solving a different problem in the same space as these solutions. Opteryx avoids loading the dataset into memory unless there is no other option, as such it can query petabytes of data on a single, modest sized node.

This also means that queries are not as fast as solutions like SQLite or DuckDB.

How is it different to MySQL or BigQuery?

Opteryx is an ad hoc database, if it can read the files, it can be used to query the contents of them. This means it can leverage data files used by other systems.

Opteryx is read-only, you can't update or delete data, and it also doesn't have or enforce indexes in your data.

How is it differnt to Trino?

Opteryx is designed to run in a serverless environment where there is no persistent state. There is no server or coordinator for Opteryx, the Engine is only running when it is serving queries.

When you are not running queries, your cost to run Opteryx is nil (+). This is particularly useful if you have a small team accessing data.

This also means the Query Engine can scale quickly to respond to demand, running Opteryx in an environment like Cloud Run on GCP, you can scale from 0 to 1000 concurrent queries within seconds - back to 0 almost as quickly.

(+) depending on specifics of your hosting arrangement.

Security

See the project security policy for information about reporting vulnerabilities.

License

License

The foundational technologies in Opteryx are:

  • Apache Arrow memory model and compute kernels for efficient processing of data
  • Parts of PyArrow_Ops by Tom Scheffers has been integrated into the codebase to support handling Arrow structured data
  • sqloxide is used to parse SQL queries to syntax trees
  • cython
  • numpy
  • orjson
  • [cityhash] is used for non-cryptographic hashing

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

opteryx-0.0.0a58.tar.gz (330.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

opteryx-0.0.0a58-cp39-cp39-win_amd64.whl (294.8 kB view details)

Uploaded CPython 3.9Windows x86-64

opteryx-0.0.0a58-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (939.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

opteryx-0.0.0a58-cp39-cp39-macosx_10_15_x86_64.whl (300.1 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

opteryx-0.0.0a58-cp38-cp38-win_amd64.whl (294.7 kB view details)

Uploaded CPython 3.8Windows x86-64

opteryx-0.0.0a58-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (944.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

opteryx-0.0.0a58-cp38-cp38-macosx_10_14_x86_64.whl (295.4 kB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

File details

Details for the file opteryx-0.0.0a58.tar.gz.

File metadata

  • Download URL: opteryx-0.0.0a58.tar.gz
  • Upload date:
  • Size: 330.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for opteryx-0.0.0a58.tar.gz
Algorithm Hash digest
SHA256 36027c7285a6c39675b711aab8455240c2eacf20347090f5a165c3515643a6d6
MD5 34d6779a85c3240773c3b5d7820a77d2
BLAKE2b-256 10fdb16ecbf7551a2e8cb53f4ed73ed91d37f91889673bcb0cc4ab799dd3e2d1

See more details on using hashes here.

File details

Details for the file opteryx-0.0.0a58-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: opteryx-0.0.0a58-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 294.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for opteryx-0.0.0a58-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cd2414b7e4904f9057d6618c23ba2d2fccb85920acda19466b4f2bcfef9259bc
MD5 789a15e4f876e14d25ab3cd6ce87f772
BLAKE2b-256 4fa1421c31c512483e3b8d1a08b9ccb5e04f358bfb49f4484fc50f87cdffe60c

See more details on using hashes here.

File details

Details for the file opteryx-0.0.0a58-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opteryx-0.0.0a58-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3dd366ed22aa3c28de33952e5bf0d47e982cc2f1ab7166d63cdc071445aab7b8
MD5 887aec3c64f632ebc5e2a78ac60238ba
BLAKE2b-256 7dd2b62af75915f11cf40eb21411acc463c82ba251d642749517bd2011107efd

See more details on using hashes here.

File details

Details for the file opteryx-0.0.0a58-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for opteryx-0.0.0a58-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 11bbd0e8a2335f574f3033543a70252a7ddc4380ac329737505e310aec16aa42
MD5 b7ed5b8b86f36fac3a1027c5f4f731f8
BLAKE2b-256 5cc4aa43d2c806cce434768f3a905b7dc01462eda74cafafad3fa5c7f480e9db

See more details on using hashes here.

File details

Details for the file opteryx-0.0.0a58-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: opteryx-0.0.0a58-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 294.7 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for opteryx-0.0.0a58-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 68de8c747e051ae9f8f9ec426f73f6f827bf5541da86349b35cbe0c28d320c8d
MD5 957466dbcb96a66c203811def40f8b4b
BLAKE2b-256 3e8e0cd90fd1e6518eadcae79edae99b1f4018eddbef77d78468780544ccd255

See more details on using hashes here.

File details

Details for the file opteryx-0.0.0a58-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opteryx-0.0.0a58-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c06a246c9bbc1fa5fa1215c246302dca851625a52d617fb8715709f4a41643c
MD5 fe77e56a2f58f402e53e4a00a300ebb9
BLAKE2b-256 994d40c41174956b832fb19564ec3e5e362de1e658dd42cb384435a558bad9a3

See more details on using hashes here.

File details

Details for the file opteryx-0.0.0a58-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for opteryx-0.0.0a58-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 86ef8cbb891f5bde1f356baca2b2d5869db6230615b64d2cd9ce47ad6d133f09
MD5 926adcdbc40886976c404029361b58b1
BLAKE2b-256 fcc01800ac93810d23f3c8e8b6b93601f922622cf4040d6106efe2aabd67ed3b

See more details on using hashes here.

Supported by

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