Skip to main content

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

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_ibis-0.4.7.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

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

superduper_ibis-0.4.7-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file superduper_ibis-0.4.7.tar.gz.

File metadata

  • Download URL: superduper_ibis-0.4.7.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for superduper_ibis-0.4.7.tar.gz
Algorithm Hash digest
SHA256 08906c9eff258a4d1a3750546731d5f73a2957c48092cf8f6ced65f24139af08
MD5 8388c4c3f49b273e41fb7b6d26f27127
BLAKE2b-256 e8a15b010219090a8405c7e2ba4dc9c872db868f4b30a579834df6d54f4c3ce7

See more details on using hashes here.

Provenance

The following attestation bundles were made for superduper_ibis-0.4.7.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_ibis-0.4.7-py3-none-any.whl.

File metadata

File hashes

Hashes for superduper_ibis-0.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 24c161b2b7db1e012fbc7c4c3a5564a26fbfb5bb30bc57b7cb1a0a1babbadcec
MD5 9d178728c27403ee4ec8f70a1a4f73ef
BLAKE2b-256 5a9bca0d5c587a9b4c739f4653e141ae317068b81e714658a4dcaf1c81e383b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for superduper_ibis-0.4.7-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