Overview
Snowflake Proxy
Proxy
The proxy is an haproxy instance that will route traffic to snowflake
Variable | Description |
---|---|
SNOWFLAKE_ACCOUNTID |
The account id of the snowflake account |
SNOWFLAKE_REGION |
The region of the snowflake account |
Test Client
The test client is a simple golang script that will connect to the proxy and run a query. It configures the connection to use the local proxy. It prints each row
Flag | Env Variable | Description |
---|---|---|
snowflake_accountid |
SNOWFLAKE_ACCOUNTID |
The account id of the snowflake account |
snowflake_region |
SNOWFLAKE_REGION |
The region of the snowflake account |
snowflake_user |
SNOWFLAKE_USER |
The user to connect as |
snowflake_password |
SNOWFLAKE_PASSWORD |
The password to connect with |
proxy_host |
127.0.0.1 |
The host of the proxy |
proxy_port |
8080 |
The port of the proxy |
Running
To run this we need to build the docker image and then run it.
docker build -t snowflake-proxy .
Now that it is built we will need to run it
docker run -it -p 8080:8080 -e SNOWFLAKE_ACCOUNTID=12345 -e SNOWFLAKE_REGION=us-east-1 snowflake-proxy
Replace the account id and region with your own. You can also change the port if you want to run it on a different port.
Now that the proxy is running we can run the test client. Replace the user and password with your own.
go run main.go -snowflake_accountid 12345 -snowflake_region us-east-1 -snowflake_user test -snowflake_password test -proxy_host 127.0.0.1 -proxy_port 8080
This should print something like the following if it connected properly
[INFO] 2023/09/28 21:46:27 main.go:45: ONE
[INFO] 2023/09/28 21:46:27 main.go:46: ---
[INFO] 2023/09/28 21:46:27 main.go:54: 1
That is it! You are now connected to snowflake through the proxy.