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.4.0) 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.4.0-cp312-abi3-win_amd64.whl (33.0 MB view details)

Uploaded CPython 3.12+Windows x86-64

tabsdata-1.4.0-cp312-abi3-manylinux1_x86_64.whl (48.1 MB view details)

Uploaded CPython 3.12+

tabsdata-1.4.0-cp312-abi3-macosx_11_0_arm64.whl (31.1 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

tabsdata-1.4.0-cp312-abi3-macosx_10_15_x86_64.whl (33.2 MB view details)

Uploaded CPython 3.12+macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: tabsdata-1.4.0-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 33.0 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.4.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 eb0424ad057cc69d40237f4a397d45a21df8659932b37be6a72843fa95898417
MD5 f0a6e35e4556d8ea47454002fcb716bb
BLAKE2b-256 b4f25c0b486ea18cdfa879a1acb6a1f29805b170e737b96857b99add3b8a019b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tabsdata-1.4.0-cp312-abi3-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9fd14b46476d13c1af0a808366ff753980dd2f005adb423a70bfccb08562844a
MD5 202a936a4ff73f667d0650eaad93cfc0
BLAKE2b-256 17dfe57334ee114bac0e44e47f7eaa7076d59b2149d5ae9799943e19b0b20c4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tabsdata-1.4.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8b769a9209064fd11d6a65f4c12dce278bdad1d6a22bb80154ef690c2f24072
MD5 09f0326dd620300d67b51bbdc44f5a89
BLAKE2b-256 71f27e25e70e3b609afdfc2a3a748fec7add8a0b2a983db3b128b793b54389f4

See more details on using hashes here.

File details

Details for the file tabsdata-1.4.0-cp312-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for tabsdata-1.4.0-cp312-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 df381c68021fc8a15e1d9fd04c4a3207e6948d5fbb45daa52ac34c41b56fe7c3
MD5 e6e08687edc0c2eed4b8feec56a1d0eb
BLAKE2b-256 167e665ac0e5eeddd741566cd92b284d08cb0eb0cfdbd74951ef48ae303af3be

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