Skip to main content

Tool for conversion of MySQL dumps to TSV format

Project description

About

This module provides the mysqltotsv.Splitter class and a CLI tool to allow conversion of large MySQL dumps to the TSV format.

The module assumes the MySQL dump to be encoded in UTF-8 format.

This is primarily intended for large MySQL dumps where opening them with a text editor is impractical and handling them is easier through a tool.

Install

To install from pypi:

pip3 install --user mysqltotsv

Usage

The following command takes a MySQL dump and creates a separate TSV file for each table found inside (the output directory needs to be present):

python3.7 mysql-to-tsv.py --file dump.sql --outdir out1

There is also a switch to only process certain tables and skip the rest. Example:

python3.7 mysql-to-tsv.py --file dump.sql --outdir out1 --table-filter=updates,updates_edited

More details about the CLI switches:

usage: mysql-to-tsv.py [-h] --file FILE --outdir OUTDIR
                       [--table-filter TABLE_FILTER] [--only-schema]
                       [--strip-quotes] [--debug] [--ignore-errors]
                       [--estimate1] [--estimate2]

Tool for conversion of large MySQL dumps to TSV format

optional arguments:
  -h, --help            show this help message and exit
  --file FILE           mysql dump file
  --outdir OUTDIR       output directory
  --table-filter TABLE_FILTER
                        filtered tables
  --only-schema         write the schema to the output directory
  --strip-quotes        strip quotes from values
  --debug               print debug information
  --ignore-errors       ignore processing errors
  --estimate1           estimate row counts for each table inside the sql file
  --estimate2           estimate row counts for each table inside the sql file

Ideas

  1. Rewrite the module to parse the entire INSERT INTO statement instead of the hybrid ad-hoc + grammar-based approach.
  2. Write a better estimator that samples a few records, measures their size, for each table, then measures the entire file size and computes an estimate based on that.

Support

For questions or requests please send an e-mail to stefan.petrea@gmail.com

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

mysqltotsv-0.1.4.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

mysqltotsv-0.1.4-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file mysqltotsv-0.1.4.tar.gz.

File metadata

  • Download URL: mysqltotsv-0.1.4.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for mysqltotsv-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f6d1e760a429bfafa184b786fdc241fb7a0afc66120c9b1b9ec681568c5da489
MD5 4618101c7fc19f517c50ec708f661b8c
BLAKE2b-256 2536508f1f8396b768182aea651dcda98efb8d626761164dffad47d996293c26

See more details on using hashes here.

File details

Details for the file mysqltotsv-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: mysqltotsv-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for mysqltotsv-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9001bc8e3df3b413c575246f76799cd5e5b1e8a98abc202920ec2f33794b9f07
MD5 b02b87ff0de33f27838dc1a35ce686ef
BLAKE2b-256 8df519754bc02d6e1a86659134915fc05a728779f057c0c8244828b02be4abfe

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