Skip to main content

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

Project description

Tabsdata

License

Your use of this product is subject to the terms of use available at https://tabsdata.com/license.

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)
  • macOS (Apple silicon/x86 - latest)
  • Ubuntu, Debian & RedHat - (x86 - latest)
pip install tabsdata

This version (1.7.1) 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 --coll 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-1.7.1-cp312-abi3-win_amd64.whl (39.9 MB view details)

Uploaded CPython 3.12+Windows x86-64

tabsdata-1.7.1-cp312-abi3-manylinux1_x86_64.whl (51.7 MB view details)

Uploaded CPython 3.12+

tabsdata-1.7.1-cp312-abi3-macosx_11_0_arm64.whl (37.9 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

File details

Details for the file tabsdata-1.7.1-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: tabsdata-1.7.1-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 39.9 MB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for tabsdata-1.7.1-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4a35af8beaeee9b0ae6ac29d3c4b6b4d6a13791d8ae73feabed4afd2810b3cc3
MD5 90b70766abcb43c458a7ded985bab7a0
BLAKE2b-256 409c74a26ce38c085c1fcaefeab66b0a4f2d7a86fe0394e993c7b31029399ccd

See more details on using hashes here.

File details

Details for the file tabsdata-1.7.1-cp312-abi3-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for tabsdata-1.7.1-cp312-abi3-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 94771a0c5a6b73553f9f867599fc8132ff5bb60b41cb9764abcf48c7691b28a4
MD5 acea1274fddda703e560a36bdb9ace8a
BLAKE2b-256 cf8c142409bb9494f1386063ca668e6b64d5c66ab8dbc44a0d46337d85f7f791

See more details on using hashes here.

File details

Details for the file tabsdata-1.7.1-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tabsdata-1.7.1-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec86f807cc8de57e224ee21c1082d88a73113c2941ee5b4a8f13c5fdc11e3492
MD5 9d37591a5d8da77fea62476079e8cc51
BLAKE2b-256 5ccb9b9483663d1a7609dced64af27bb92a453eb74bb44c9abbd7e9a61c97aee

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