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.0.5.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

superduper_ibis-0.0.5-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: superduper_ibis-0.0.5.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for superduper_ibis-0.0.5.tar.gz
Algorithm Hash digest
SHA256 86b28597dadebb095ca255002068b0862656117a7a36e78f4c91f98096bbb065
MD5 37913a88e65f40779717172b4195db11
BLAKE2b-256 1095bfc3dc1ab9326959fba1a9b9e7628536d9b7e376637241dda2b646d8d2ee

See more details on using hashes here.

File details

Details for the file superduper_ibis-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for superduper_ibis-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4512ef76836805cfa5e1e527ef7d2dba67bd98cdc36fe29f404727fa67f31b6c
MD5 547afc386ade7db183a2fac9fd10bf57
BLAKE2b-256 6da85d2b078dc7c1403660061688e67dfc1c515d8d17e6e7fea2f50c6c88fc94

See more details on using hashes here.

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