sling CLI is a free tool that allows data extraction and loading from / into many popular databases / storage platforms. Follow the instructions below to install it on your respective operating system.
Installation
Brew on Mac
brewinstallslingdata-io/sling/sling# You're good to go!sling-h
Scoop on Windows
scoop bucket add sling https://github.com/slingdata-io/scoop-sling.gitscoop install sling# You're good to go!sling -h
Linux
curl-LO'https://github.com/slingdata-io/sling-cli/releases/latest/download/sling_linux_amd64.tar.gz' \&&tarxfsling_linux_amd64.tar.gz \&&rm-fsling_linux_amd64.tar.gz \&&chmod+xsling# You're good to go!./sling-h
sling CLI is designed to be easy to use. Say we want to load a CSV file into a PostgreSQL database. We could run the following command:
export MY_PG='postgresql://user:mypassw@pg.host:5432/db1'slingrun--src-streamfile:///path/to/myfile.csv--tgt-connMY_PG--tgt-objectpublic.my_new_data# OR pipe it incat/path/to/myfile.csv|slingrun--tgt-connMY_PG--tgt-objectpublic.my_new_data
export MY_PG='postgresql://user:mypassw@pg.host:5432/db1'slingrun--src-streamfile:///path/to/myfile.csv--tgt-connMY_PG--tgt-objectpublic.my_new_data# OR pipe it incat/path/to/myfile.csv|slingrun--tgt-connMY_PG--tgt-objectpublic.my_new_data
# using windows Powershell$env:MY_PG ='postgresql://user:mypassw@pg.host:5432/db1'sling run --src-stream file://C:/path/to/myfile.csv --tgt-conn MY_PG --tgt-object public.my_new_data# OR pipe it incat C:\path\to\myfile.csv | sling run --tgt-conn MY_PG --tgt-object public.my_new_data
export MY_PG='postgresql://user:mypassw@pg.host:5432/db1'docker run --rm -i -e MY_PG -v /path/to/myfile.csv slingdata/sling run --src-stream file:///path/to/myfile.csv --tgt-conn MY_PG --tgt-object public.my_new_data
Notice how we didn't need to specify table columns / data types. sling automatically detects those and creates the appropriate columns. We can also notice that we are using an environment variable MY_PG for connecting to our PostgreSQL server.
See here for configuration details and lots of examples!
With Python
If you have Python pip installed, you can simply run:
pipinstallsling
You call also check out the Python wrapper library on github.
from sling import Slingconfig ={'source':{'conn':'MY_PG','stream':"select * from my_table",},'target':{'conn':"MY_AWS_S3",'object':"s3://my_bucket/my_folder/new_file.csv",},}Sling(**config).run()