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.0a70.tar.gz (331.8 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.0a70-cp39-cp39-win_amd64.whl (297.2 kB view details)

Uploaded CPython 3.9Windows x86-64

opteryx-0.0.0a70-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (941.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

opteryx-0.0.0a70-cp39-cp39-macosx_10_15_x86_64.whl (302.5 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

opteryx-0.0.0a70-cp38-cp38-win_amd64.whl (297.1 kB view details)

Uploaded CPython 3.8Windows x86-64

opteryx-0.0.0a70-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (946.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

opteryx-0.0.0a70-cp38-cp38-macosx_10_14_x86_64.whl (297.8 kB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: opteryx-0.0.0a70.tar.gz
  • Upload date:
  • Size: 331.8 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.0a70.tar.gz
Algorithm Hash digest
SHA256 3ea5a951053d1f993467cec132dbadb73657610bd2d48e6e06c9def6f703711b
MD5 5dd118cb16d09ed9898a463b9cff919f
BLAKE2b-256 1ce6b0365ab44fbe636f14518ffec79974f60bf2cebb5cb4071dda4d2b849373

See more details on using hashes here.

File details

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

File metadata

  • Download URL: opteryx-0.0.0a70-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 297.2 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.0a70-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 704f5e3846dbb2e2bf7bc21010aebe225a1eaa8dd880173d2d95a8917d727c98
MD5 08aa300149de4a1fd2cb59e790ba5ed3
BLAKE2b-256 af51de9d47f3bb8d19a228ad3afb48d648d75f58d9e3a45750a5aecab075f146

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for opteryx-0.0.0a70-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a8a0d624d0202f85391a3ebb6b7c3dcd8dc62627321b62fff1b57ab92c109374
MD5 97e3d808a310547f7ab063e23d74011d
BLAKE2b-256 3351098b2779c8ce24b570a7e4270d73686530287e26e2ab8b380d529ebaa194

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for opteryx-0.0.0a70-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 33757551ec199227aba927c5b44fff632dc3f4c9055b25b02653cacbcc29c80c
MD5 0fd7cfc15d7aae97aecea04688339295
BLAKE2b-256 7436cb26a55fa1817e61a7b65c02f6c48f6ee4477eb76f1bd8e5d220e40a4042

See more details on using hashes here.

File details

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

File metadata

  • Download URL: opteryx-0.0.0a70-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 297.1 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.0a70-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 77496869dd957af63404c77b9d0798690825bc6f4e0f35ed21b9d22d4905da69
MD5 b1d88bddc5fba6de175a5933eaede0bf
BLAKE2b-256 17fa19af91fe224e9e0490aac78fc8a4b3596981bd9124ce4f1c6e7f281d7c3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for opteryx-0.0.0a70-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 11a81053d88df64122ec5be862abe6dfb805fdf73e4854d028b7ddf5a8bf487d
MD5 450d8c36dd4ed41287fae659b9825b64
BLAKE2b-256 37d61addd4fe84d915c90b45355a9ced6d55976a7d7fc03e6cf258eecf2816e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for opteryx-0.0.0a70-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 fefdd2b1525458d486f4540cea7a75633106ac4c7fd04be1fb8560cdeeb0a90b
MD5 2e64818ffccb0cca09cf5233a926c4de
BLAKE2b-256 938c0fb5e3ba1a12269549a8d745b56f271cf5841adeb4c9c4e7df4e433b086f

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