A package to generate SQL statements from CSV files
Project description
Generate Temp Table SQL
Generate Temp Table SQL is a Python package that generates SQL statements for creating a temporary table and inserting data from a CSV file. It's useful when you need to move data between data warehouses that are otherwise not connected, so you can download a CSV and recreate the data in the other warehouse as a temporary table from the CSV.
Features
- Load data from a CSV file
- Generate a
CREATE TEMP TABLESQL statement - Generate
INSERT INTOSQL statements for the data - Command-line interface (CLI) for easy usage
Installation
Prerequisites
- Python 3.6 or higher
pandaslibrary
Installing
-
Clone the repository:
git clone https://github.com/rywaldor/generate_temp_table_sql.git cd generate_temp_table_sql
-
Install the package locally:
pip install -e .
Usage
Command-Line Interface (CLI)
After installing the package, you can use the generate-tt-sql command to generate SQL statements from a CSV file.
Basic Usage
To generate SQL statements and save them to a file:
generate-tt-sql path/to/your/file.csv
Additional Options
--o The path to the output SQL file. Defaults to the director you call the command in.
--overwrite: Allow overwriting the output file if it exists.
--table_name: Specify the name of the temporary table to create.
--column_type: Specify the data type of the columns in the temporary table. Defaults to TEXT which works for Redshift and Snowflake. Use STRING for BigQuery.
Example
Assume you have a CSV file example.csv with the following content:
name,age,city
John,30,New York
Jane,25,Los Angeles
Run the following command to generate SQL statements:
generate-tt-sql example.csv -o output.sql --table_name my_temp_table --column_type STRING
The output.sql file will contain:
CREATE TEMP TABLE my_temp_table (
name STRING,
age STRING,
city STRING
);
--Insert Data SQL:
INSERT INTO my_temp_table (name, age, city) VALUES
('John', '30', 'New York'),
('Jane', '25', 'Los Angeles');
Running Tests
To run the tests, use the following command:
python -m unittest discover -s tests
Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a new branch (git checkout -b feature-branch)
- Commit your changes (git commit -am 'Add new feature')
- Push to the branch (git push origin feature-branch)
- Create a new Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Ryan Waldorf - ryan@ryanwaldorf.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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file generate_temp_table_sql-0.3.tar.gz.
File metadata
- Download URL: generate_temp_table_sql-0.3.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9bb4bb58a21d2c9f37ecb6c734cdda8f0bf28186b6383e2a7975f8e9b7e4e8a
|
|
| MD5 |
2c8a7556b369178303070d2a6027705e
|
|
| BLAKE2b-256 |
20a41fb8bd97d2f40c2f155f9a05ee64987d107c649391441658c2f5be324efe
|
File details
Details for the file generate_temp_table_sql-0.3-py3-none-any.whl.
File metadata
- Download URL: generate_temp_table_sql-0.3-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3faa9682169ead3b16657a04955bff15231b8329b3e57ad605a19ee93e70ad4
|
|
| MD5 |
f9d309d38f37ba91b7b2cb44188e7d7d
|
|
| BLAKE2b-256 |
939c336a517b3c20af800f95c08acb6d3dc49fdc2afae6d3b8ae003a936e8249
|