Skip to main content

Apache beam mysql and postgres io connector in pure python

Project description

pysql-beam

This package is still under development but has been used in few projects in production. This has been tested with dataflow Runner and Direct runner

This package aim to provide Apache_beam io connector for MySQL and Postgres database.

This package provides apache beam io connector for postgres db and mysql db. This package wil aim to be pure python implementation for both io connector

FYI: This does not uses any jdbc or odbc connector

Requirements:

1. Python>=2.7 or python>= 3.5
2. Apache beam >= 2.10
3. pymysql[rsa]
4. psycopg2-binary

Installation:

1. pip install git+git@github.com:MediaAgility/pysql-beam.git

Current functionality:

1. Read from MySQL database by passing either table name or sql query
2. Read from Postgres database by passing either table name or sql query

Reference Guide:

  1. Java IO connector for the same: https://github.com/spotify/dbeam

  2. How to write io connector for Apache Beam: https://beam.apache.org/documentation/io/developing-io-overview/

    https://beam.apache.org/documentation/io/developing-io-python/

Usage Guide:

from pysql_beam.sql_io.sql import ReadFromSQL

....
ReadFromSQL(host=self.options.host, port=self.options.port,
        username=self.options.username, password=self.options.password,
        databse=self.options.database,
        query=self.options.source_query,
        wrapper=PostgresWrapper,
        batch=100000)

Examples:

For mysql:
`python cloud_sql_to_file.py --host localhost --port 3306 --database SECRET_DATABASE --username SECRET_USER --password SECRET_PASSWORD --table YOUR_TABLE --output YOUR_OUTPUT_FLLE`

For postgres:
`python cloud_sql_to_file.py --host localhost --port 5432 --database SECRET_DATABASE --username SECRET_USER --password SECRET_PASSWORD --table YOUR_TABLE --output YOUR_OUTPUT_FLLE`

contribution: You can contribute to this package by raising bugs or sending pull requests

Project details


Release history Release notifications | RSS feed

This version

0.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysql-beam-0.2.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

pysql_beam-0.2-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file pysql-beam-0.2.tar.gz.

File metadata

  • Download URL: pysql-beam-0.2.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.8

File hashes

Hashes for pysql-beam-0.2.tar.gz
Algorithm Hash digest
SHA256 ec887acb65104f44e990710d78b1222a144210d651dcabca0a6bdb1cd6eefcee
MD5 c8dfe1e10f33dd020a6e384450b0fcae
BLAKE2b-256 02e60455b9e8af19df175e966dbe6bac01232a3a742e4732a73b8c1345330e4c

See more details on using hashes here.

File details

Details for the file pysql_beam-0.2-py3-none-any.whl.

File metadata

  • Download URL: pysql_beam-0.2-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.8

File hashes

Hashes for pysql_beam-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7875d9552c67228945a1eed3b47b3fe1dca77444c8a543b0aee0c50cfe3768e0
MD5 32397825cdf7f228f1e027d49eaf7667
BLAKE2b-256 cbbcac9e6b9c8887045f71c3857407c38d7b888a51bf1e6afaba9bd6d670165a

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