Skip to main content

Popsink transformer

Project description

Transformer Library

This library provides a set of tools to transform Avro schemas into various formats such as JSON schema, SQL for Apache Flink, and PostgreSQL SQL. Additionally, it can transform data from these formats back into Avro schemas. Whether you're working with Avro schemas in your data pipeline or database schema, this library aims to simplify the conversion process for you.

Features

  • Convert Avro schema to JSON schema.
  • Generate SQL statements for Apache Flink based on Avro schema.
  • Generate PostgreSQL SQL statements based on Avro schema.
  • Generate SQLSERVER SQL statements based on Avro schema.
  • Generate CLICKHOUSE SQL statements based on Avro schema.
  • Convert a single avro type to SQL type.

Usage

Here's a quick guide on how to use the library:

1. Convert an Avro Schema to JSON schema

from popsink_transformer.transformer import Transformer

transformer = Transformer(from_source=avro_schema)
json_schema = transformer.avro_to_json.convert()
print(json_schema)

2. Generate SQL for Apache Flink from an Avro schema

from popsink_transformer.transformer import Transformer
from popsink_transformer.avro_to_sql.utils.type_converter import SqlEngine

transformer = Transformer(
    from_source=avro_schema,
    sql_engine=SqlEngine.FLINK,
)
flink_sql = transformer.avro_to_sql.convert()
print(flink_sql)

3. Generate PostgreSQL SQL from an Avro schema

from popsink_transformer.transformer import Transformer
from popsink_transformer.avro_to_sql.utils.type_converter import SqlEngine

transformer = Transformer(
    from_source=avro_schema,
    sql_engine=SqlEngine.POSTGRES,
)
postgres_sql = transformer.avro_to_sql.convert()
print(postgres_sql)

4. Convert an Avro type to SQL type

from popsink_transformer.avro_to_sql.utils.type_converter import (
    SqlEngine,
    convert_avro_type_to_sql_type,
)

postgres_sql_type = convert_avro_type_to_sql_type(
    avro_field_type="float",
    sql_engine=SqlEngine.POSTGRES
)
print(postgres_sql_type)
output: 'REAL'

5. Generate SQLSERVER SQL from an Avro schema

from popsink_transformer.transformer import Transformer
from popsink_transformer.avro_to_sql.utils.type_converter import SqlEngine

transformer = Transformer(
    from_source=avro_schema,
    sql_engine=SqlEngine.SQLSERVER,
)
sqlserver_sql = transformer.avro_to_sql.convert()
print(sqlserver_sql)

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

popsink_transformer-2.2.1.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

popsink_transformer-2.2.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file popsink_transformer-2.2.1.tar.gz.

File metadata

  • Download URL: popsink_transformer-2.2.1.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.1 CPython/3.10.5 Darwin/23.4.0

File hashes

Hashes for popsink_transformer-2.2.1.tar.gz
Algorithm Hash digest
SHA256 d3de47addaba2c0c5f169e69761ef091a679a46f6e7be9336ff964a2a4c72005
MD5 e6c895bab2d8f0a0f99b52d2b49d42d1
BLAKE2b-256 04462cc17886c615cc7be58f0d426d8dc74e90f3cc302e8595658072b2e4bfc7

See more details on using hashes here.

File details

Details for the file popsink_transformer-2.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for popsink_transformer-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b4d43a45742d0cfe4ee94e9a2f7dc670e9205850b5b3ebed5bf3c18e6d069beb
MD5 507534991889fe66dfa70ae010787d1f
BLAKE2b-256 995138852c9be4e67ad871f9e6db39a0b70f18600f127292ef9d0dc15011dc60

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