Skip to main content

`superduper_sql` is a plugin for SQL databases that allows you to use these databases as databackends for Superduper.

Project description

superduper_ibis

Superduper ibis is a plugin for ibis-framework that allows you to use Superduper as a backend for your ibis queries.

This plugin cannot be used independently; it must be used together with superduper_ibis.

Superduper supports SQL databases via the ibis project. With superduper, queries may be built which conform to the ibis API, with additional support for complex data-types and vector-searches.

Installation

pip install superduper_ibis

API

Class Description
superduper_ibis.data_backend.IbisDataBackend Ibis data backend for the database.
superduper_ibis.query.IbisQuery A query that can be executed on an Ibis database.
superduper_ibis.db_helper.DBHelper Generic helper class for database.
superduper_ibis.db_helper.ClickHouseHelper Helper class for ClickHouse database.
superduper_ibis.field_types.FieldType Field type to represent the type of a field in a table.

Connection examples

MySQL

from superduper import superduper

db = superduper('mysql://<mysql-uri>')

Postgres

from superduper import superduper

db = superduper('postgres://<postgres-uri>')

Other databases

from superduper import superduper

db = superduper('<database-uri>')

Query examples

Inserting data

Table data must correspond to the Schema for that table. Either create a Schema and Table or use an auto-detected Schema. Once you've got a Schema, all data inserted must conform to that Schema:

import pandas

pandas.DataFrame([
    PIL.Image.open('image.jpg'), 'some text', 4,
    PIL.Image.open('other_image.jpg'), 'some other text', 3,
])

t.insert(dataframe.to_dict(orient='records'))

Selecting data

superduper supports selecting data via the ibis query API. For example:

db['my_table'].filter(t.rating > 3).limit(5).select(t.image).execute()

Vector-search

Vector-searches are supported via the like operator:

(
    db['my_table']
    .like({'text': 'something like this'}, vector_index='my-index')
    .filter(t.rating > 3)
    .limit(5)
    .select(t.image, t.id)
).execute()

Vector-searches are either first or last in a chain of operations:

(
    db['my_table']
    t.filter(t.rating > 3)
    .limit(5)
    .select(t.image, t.id)
    .like({'text': 'something like this'}, vector_index='my-index')
).execute()

Updating data

Updates are not covered for superduper SQL integrations.

Deleting data

db.databackend.drop_table('my-table')

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

superduper_sql-0.6.0.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

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

superduper_sql-0.6.0-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file superduper_sql-0.6.0.tar.gz.

File metadata

  • Download URL: superduper_sql-0.6.0.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for superduper_sql-0.6.0.tar.gz
Algorithm Hash digest
SHA256 b97bcbc1b9ee4941e020668bc89f14bdd3cc16a24121c07f952e29a2095c8dc0
MD5 c7c5f4a7862a53c86e00b5822ae865a0
BLAKE2b-256 43b00c96709b8ef97e2d41b0d5f412fda699dc2393ea5b3ef8fbc9c449821fc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for superduper_sql-0.6.0.tar.gz:

Publisher: release_plugins.yaml on superduper-io/superduper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file superduper_sql-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: superduper_sql-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for superduper_sql-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e76ed8f74b350400237fa8f86e8a0c38cdcfc7554bdef4852cc5942f76942cf8
MD5 8f1a4f8a49e001963fd2481d5b66576e
BLAKE2b-256 03f43f693ff6f9901544a317e11e3a4f3e1feee22727f9d7cb69c0e76b07d8f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for superduper_sql-0.6.0-py3-none-any.whl:

Publisher: release_plugins.yaml on superduper-io/superduper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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