Skip to main content

TopMind ETL converter

Project description

ETL table converter and creator

The Python Toolkit for converting table from one database to another

Databases types

Supported databases. You have to use short name of database short_name:type of database

  • ch:clickhouse
  • pg:postgresql
  • mysql:mysql
  • vertica:vertica
  • exasol:exasol

Supported database conversions

  • mysql to pg
  • mysql to vertica
  • mysql to exasol
  • ch to vertica
  • pg to vertica

Credentials

sql_credentials = {
    "pg": {
        "database": os.getenv("PG_DATABASE"),
        "schema": os.getenv("PG_SCHEMA"),
        "user": os.getenv("PG_USER"),
        "host": os.getenv("PG_HOST"),
        "port": os.getenv("PG_PORT"),
        "password": os.getenv("PG_PASSWORD"),
        #additional params bellow (optional) 
        "executemany_mode": "values",
        "executemany_values_page_size": 10000,
        "executemany_batch_page_size": 500,
    },
    "ch": {
        "database": os.getenv("CH_DATABASE"),
        "user": os.getenv("CH_USER"),
        "host": os.getenv("CH_HOST"),
        "port": os.getenv("CH_PORT"),
        "password": os.getenv("CH_PASSWORD"),
        #additional params bellow (optional) 
        "connect_args": {
            "alt_hosts": "{},{}:{}".format(
                os.getenv("CH_HOST_B"), os.getenv("CH_HOST_C"), os.getenv("CH_PORT")
            )
        },
    },
    "vertica": {
        "database": os.getenv("VERTICA_DATABASE"),
        "schema": os.getenv("VERTICA_SCHEMA"),
        "user": os.getenv("VERTICA_USER"),
        "host": os.getenv("VERTICA_HOST"),
        "port": os.getenv("VERTICA_PORT"),
        "password": os.getenv("VERTICA_PASSWORD"),
        #additional params bellow (optional) 
        "connect_args": {
            "connection_load_balance": True,
            "backup_server_node": json.loads(os.getenv("VERTICA_CONFIGS"))[
                "backup_server_node"
            ],
        },
    },
    "mysql": {
        "database": os.getenv("MYSQL_DATABASE"),
        "user": os.getenv("MYSQL_USER"),
        "host": os.getenv("MYSQL_HOST"),
        "port": os.getenv("MYSQL_PORT"),
        "password": os.getenv("MYSQL_PASSWORD"),
    },
}

Usage

pip3 install etl-converter-talenttech
import os
from converter.fields_converter import FieldsConverter

tables = [
    "directions",
    "users"
]
from_db = "mysql"
to_db = "pg"
converter = FieldsConverter(sql_credentials, from_db, to_db, tables=tables)

print(converter.get_columns(tables[0]))
print(converter.get_columns(tables[0], table_from=False))
print(converter.create_list_of_tables(tables, to_create=False, dir=None))

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

etl-converter-talenttech-1.2.6.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

etl_converter_talenttech-1.2.6-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file etl-converter-talenttech-1.2.6.tar.gz.

File metadata

  • Download URL: etl-converter-talenttech-1.2.6.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.8.0 tqdm/4.48.0 CPython/3.6.11

File hashes

Hashes for etl-converter-talenttech-1.2.6.tar.gz
Algorithm Hash digest
SHA256 b30af50ecb2e6f1fb153662c8bb29717121e7b3c1f846105c9539c3fed4473a5
MD5 ddea8b0b336c7aa0d7405cc31e73756b
BLAKE2b-256 dd1d1df492d1c221176497342241e061882d76fc4c5d08a80105e4caf36ca8c0

See more details on using hashes here.

File details

Details for the file etl_converter_talenttech-1.2.6-py3-none-any.whl.

File metadata

  • Download URL: etl_converter_talenttech-1.2.6-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.8.0 tqdm/4.48.0 CPython/3.6.11

File hashes

Hashes for etl_converter_talenttech-1.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a6d79fe4aeae0cbf4bff95e7622b9097b907df2afbf9cae0bf14072d5a76d683
MD5 1857f3a40e863740551e2465a01de764
BLAKE2b-256 c6c983b1c9ea5a66e33af898be1bac4d79c0a74d6c58a4bb924b9767c09b084c

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