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.6) 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.6-py312-none-win_amd64.whl (25.4 MB view details)

Uploaded Python 3.12Windows x86-64

tabsdata-0.9.6-py312-none-manylinux1_x86_64.whl (44.3 MB view details)

Uploaded Python 3.12

tabsdata-0.9.6-py312-none-macosx_11_0_arm64.whl (23.7 MB view details)

Uploaded Python 3.12macOS 11.0+ ARM64

tabsdata-0.9.6-py312-none-macosx_10_15_x86_64.whl (25.7 MB view details)

Uploaded Python 3.12macOS 10.15+ x86-64

File details

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

File metadata

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

File hashes

Hashes for tabsdata-0.9.6-py312-none-win_amd64.whl
Algorithm Hash digest
SHA256 02a2551adc2bb0b9528a3a235a57ecddab157bc6ea33c75579c074a8135ea995
MD5 88f097ddc57ec686db391e3263da76b3
BLAKE2b-256 5cdb03ab1087a3639a16be7eacc63c68ab807ed99bd09849ec2cd9e5c6f8764d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tabsdata-0.9.6-py312-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9bf53deca8c89a9481b0cd1fb93c0475bd112592a8236c9b82b488a0fcf4cf4f
MD5 3bba710bbe4f88bffc982971b14b4689
BLAKE2b-256 e572c9d2441ae4313aa29e599667f7b17b7924dd80bf9995d28e3d6e66bc7566

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tabsdata-0.9.6-py312-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e3e594d63de4f01ff7fc800c4240d363e18bfbc6aad9290ccd4cf11073b9eea4
MD5 c21cf64af1947fb5e7d9a0e12d4a2c72
BLAKE2b-256 a9c031564450d174a35951ba0139791b32ed31424f5be48e75f70c3d4183f059

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tabsdata-0.9.6-py312-none-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 aa4baf40f110447039a12bd39727a2d1b018404ca177cb4cd3df71a6822a66c4
MD5 6dd4e95ba0c1b6fa36b1f45538bff5db
BLAKE2b-256 8c0a6df03c17f9010f7df690fbd044422be9893afc54c77a04b122b6289f2571

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