Skip to main content

Tabsdata is a publish-subscribe (pub/sub) server for tables.

Project description

Tabsdata

Tabsdata Pub/Sub for Tables

Tabsdata is a publish-subscribe (pub/sub) server for tables.

Tabsdata has connectors to publish and subscribe tables from local files, S3, Azure Storage, MySQL/MariaDB, Oracle, PostgreSQL. It also provides a Connector Plugin API to write custom connectors.

Tables can populated with external data or using data from other tables already existing in the Tabsdata server.

Tables can be manipulated using a TableFrame API (internally Tabsdata uses Polars) that enables selection, filtering, aggregation and joins operations.

For more details refer to Tabsdata Getting Started (latest) or the Tabsdata User Guide (latest).

Installation

Supported platforms:

  • Windows (x86 - latest)
  • OSX (Apple silicon/x86 - latest)
  • Ubuntu, Debian & RedHat - (x86/ARM - latest)
pip install tabsdata

This version (0.9.3) Documentation

How Does Tabsdata Work?

The following snippets show how to publish and subscribe to tables in Tabsdata.

Publishing data from a MySQL Database

@td.publisher(
    td.MySQLSource(
        "mysql://127.0.0.1:3306/testing",
        ["select * from CUSTOMERS"],
        td.UserPasswordCredentials("admin", td.EnvironmentSecret("DB_PASWORD"))
    ),
    tables=["customers"]
)
def customers_publisher(customers: td.TableFrame) -> td.TableFrame:
    return customers

Subscribing, transforming and publishing data within Tabsdata

@td.transformer(
    input_tables=["persons"],
    output_tables=["spanish"]
)
def tfr(persons: td.TableFrame):
    return persons.filter(td.col("nationality").eq("spanish")).select(
        ["identifier", "name", "surname", "language"]
    )

Subscribing to data in an S3 Bucket

@td.subscriber(
    "spanish",
    td.S3Destination(
        "s3://my_bucket/spanish.parquet",
        td.S3AccessKeyCredentials(
            td.EnvironmentSecret("AWS_ACCESS_KEY_ID"),
            td.EnvironmentSecret("AWS_SECRET_KEY")
        )
    ),
)
def sub(spanish: td.TableFrame):
    return spanish

Executing the Publisher

To publish data to Tabsdata run the following command:

$ td fn trigger --collection examples --name pub

Every time the pub publisher is executed, the tfr transformer and the sub subscriber will also be executed.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

tabsdata-0.9.3-py312-none-win_amd64.whl (25.1 MB view details)

Uploaded Python 3.12Windows x86-64

tabsdata-0.9.3-py312-none-manylinux1_x86_64.whl (43.2 MB view details)

Uploaded Python 3.12

tabsdata-0.9.3-py312-none-macosx_11_0_arm64.whl (23.4 MB view details)

Uploaded Python 3.12macOS 11.0+ ARM64

tabsdata-0.9.3-py312-none-macosx_10_15_x86_64.whl (25.3 MB view details)

Uploaded Python 3.12macOS 10.15+ x86-64

File details

Details for the file tabsdata-0.9.3-py312-none-win_amd64.whl.

File metadata

  • Download URL: tabsdata-0.9.3-py312-none-win_amd64.whl
  • Upload date:
  • Size: 25.1 MB
  • Tags: Python 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for tabsdata-0.9.3-py312-none-win_amd64.whl
Algorithm Hash digest
SHA256 2fe2feb18d8005e608dc8fbf0889dc54f521dce4f442e23ee7e204eb44afdf55
MD5 5c98740e231c32e7c2146284450ab990
BLAKE2b-256 1830aa26397f6e7cacc1f67889e297e45ef91cab0ed625c71a729add5849b3a8

See more details on using hashes here.

File details

Details for the file tabsdata-0.9.3-py312-none-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for tabsdata-0.9.3-py312-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c5f3bd9af32656039c1de54c211e627748d1bca1a39b806a97d09aeac4801ab6
MD5 7032ab41a558f5c4ff50a01ecab1b036
BLAKE2b-256 dca4da15dd2ca184ce6ec95aac1f95dfefb8a0cf606537f3291d9be5e0d63f9b

See more details on using hashes here.

File details

Details for the file tabsdata-0.9.3-py312-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tabsdata-0.9.3-py312-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41bf1cf5ab1612fe1a83ea7fdd57760ded5995d528dea4cdd0fd48f7cb447b6a
MD5 a1e348c554b769cf86aafea9a0c00133
BLAKE2b-256 02df75b0e505345088688655f5c032acea06cf7007b07eca675e81ec4dcd5444

See more details on using hashes here.

File details

Details for the file tabsdata-0.9.3-py312-none-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for tabsdata-0.9.3-py312-none-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0ff33211fa749183024cb3b95dca631dbf677ab9afa096ddf78248b7772d4aa5
MD5 38414943c68339a67ae82bb304cf7503
BLAKE2b-256 1d172b302c9347086c56a850d28b7f2765bf8c67cac44b98bbb15af3f4976bad

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