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 disconnected databases and data warehouses. You can now simply unload a CSV, turn that CSV into SQL statements creating a temp table and inserting data with a CLI command, and copy those SQL statements into your query editor so you can start using the data in a different warehouse.
Why did I build this? I often need to move data between disconnected warehouses. E.g. when I need to join data in my finance warehouse with data in my operational warehouse to see how a feature is linked to customer spend. I can use excel to convert a CSV to SQL statements...but it's a PITA.
With generate_temp_table_sql, I can now move the data in seconds. I simply download the CSV, run generate-tt-sql csv_name.csv in my terminal, and copy it into my query editor. It's immediately available to query so I can go straight to analysis.
If you have the same problem, this will save you a ton of time!
Also available in PyPi.
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.
--batch_size: Specify the number of rows inserted per insert statement. If present, it creates multiple insert statements based on the batch size specified.
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');
All arguments are optional except the csv
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
GitHub
LinkedIn
Metadata
Release files for generate-temp-table-sql 0.4.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| generate_temp_table_sql-0.4.5.tar.gz | 6.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| generate_temp_table_sql-0.4.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.2 kB
Release files / generate_temp_table_sql-0.4.5.tar.gz
| Download URL | generate_temp_table_sql-0.4.5.tar.gz |
|---|---|
| Size | 6.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
69f0ae7366ac1536f799e100de4bd30d3f3536a95ad0be4d5884d20abcb905f7
|
|
BLAKE2b-256 checksum How to use checksums |
4fe2f9fd28dd9edbdf6fb46f3b49ba2c38ab1857cba6ded6ea0bc4a4f2cd535c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.9.6
|
Release files / generate_temp_table_sql-0.4.5-py3-none-any.whl
| Download URL | generate_temp_table_sql-0.4.5-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7579a60fb55ac0713b0898e3015d858dda693569f5b8866344e25eb7a800fd66
|
|
BLAKE2b-256 checksum How to use checksums |
ca4024435ad67dee12d56340bcd7412ac22186c66054337427aef8bdce31abaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.9.6
|