1) Installation
Open a terminal and install pymy package
pip install pymy
2) Use
Be sure that you have set environment variables with Redshift credentials like this:
export MYSQL_{INSTANCE}_DATABASE=""
export MYSQL_{INSTANCE}_USERNAME=""
export MYSQL_{INSTANCE}_HOST=""
export MYSQL_{INSTANCE}_PORT=""
export MYSQL_{INSTANCE}_PASSWORD=""
Be also sure that your IP address is authorized for the mysql cluster/instance.
Prepare your data like that:
data = {
"table_name" : 'name_of_the_redshift_schema' + '.' + 'name_of_the_redshift_table'
"columns_name" : [first_column_name,second_column_name,...,last_column_name],
"rows" : [[first_raw_value,second_raw_value,...,last_raw_value],...]
}
Send your data (use the same {INSTANCE} parameter as environment variables):
import pymy
pymy.send_to_redshift(instance, data, replace=True, batch_size=1000, types=None, primary_key=(), create_boolean=False)
replace (default=True) argument allows you to replace or append data in the table
batch_size (default=1000) argument also exists to send data in batchs
types, primary_key and create_boolean are explained below
3) First Example
You have a table called dog in you animal scheme. This table has two columns : ‘name’ and ‘size’. You want to add two dogs (= two rows) : Pif which is big and Milou which is small. data will be like that:
import pymy
data = {
"table_name" : 'animal.dog'
"columns_name" : ['name','size'],
"rows" : [['Pif','big'], ['Milou','small']]
}
pymy.send_to_redshift({INSTANCE},data)
4) Function create_table
pymy has a create_table function with this signature:
import pymy
pymy.create_table({INSTANCE}, data, primary_key=(), types=None)
This function is automatically called in the send_to_redshift function if the table is not created. You can also call it with the “create_boolean” parameter of the send_to_reshift function or by setting “primary_key” or “types” parameters.
primary_key : if you have 3 columns (ie: columns_name=[a,b,c]) and you want to set b as primary key, set primary_key=(b)
types: create_table function guesses types of each column. But you can set a “types” argument. It is a dictionary like {‘b’: ‘VARCHAR(12)’} or {‘b’: ‘INTEGER NOT NULL’} to set types of b column.
Release files for pymy 0.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pymy-0.0.8.tar.gz | 6.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pymy-0.0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:16.2 kB
Release files / pymy-0.0.8.tar.gz
| Download URL | pymy-0.0.8.tar.gz |
|---|---|
| Size | 6.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
36d7fb0e68f266b26294855b8d0eed70668b1f6c1907dca42184a334bfc24d03
|
|
BLAKE2b-256 checksum How to use checksums |
15a4d10cdd86d4e63dd1c9cf696a070ffd86b3a1e50bd067f122b876c432f9f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.6
|
Release files / pymy-0.0.8-py3-none-any.whl
| Download URL | pymy-0.0.8-py3-none-any.whl |
|---|---|
| Size | 10.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d2ec690da0c8aa34dd356c3077175030154be05ea1839e3eeb2d42ad0b0acf9
|
|
BLAKE2b-256 checksum How to use checksums |
62d7ce31a8917aaa6273066a29ac4a46ae135a42f554b0cada35bc3494273b3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.6
|