Snowflake data source support


#1

Hi,

I launched AWS instance with latest Redash AMI ami-0c654c3ab463d22f6.
Anyone can guide me (exact all steps) how to make Snowflake to be available as a new data source?

Thanks!


#2

Hello.

Just managed to get it to work on my end.

So I first installed redash using the standard setup (using the setup.sh script).
But this version did not activate the snowplow connector because of some conflicts.

So I had to do the following:

First clone the redash git repo and checkout the last release

git clone git@github.com:getredash/redash.git
git checkout v6.0.0

Then you need to update the dependencies of redash to activate the snowflake connector.
For this you need to uncomment this line (which is at the end of the requirements_all_ds.txt file:
snowflake_connector_python==1.6.10

However, the snowflake connector needs a higher version of oauthlib-common

So you need to upgrade the Flask-OAuthLib version to 0.9.5 in the requirement.txt file.

Once it is done, you need to rebuild the docker image

docker build -t redash:redash-snowflake

Once it is finished, go to the directory where redash was installed by the setup, and edit the docker-compose.yml file and replace the standard redash docker image with the one you created above.

x-redash-service: &redash-service
  image: redash:redash-snowflake
  depends_on:
    - postgres
    - redis
  env_file: /opt/redash/env
  restart: always

Then you just have to docker-compose up -d and the snowflake connection should be here.

btw @arikfr , was this dependency the one creating the problem with snowflake?


#3

A more future proof option is just to create a Dockerfile that inherits from our Docker image:

FROM redash/redash:...specify the version you want to use...
RUN pip install snowflake-connector-python==1.6.10
ENV REDASH_ADDITIONAL_QUERY_RUNNERS redash.query_runner.snowflake

It’s similar to what you did except that you don’t need to build our image all over again.

Yes. Although I think recent versions they released solves whatever dependency issues we had, it just that I couldn’t get a confirmation from anyone who used it for a long period of time…


#4

Agreed, inheritance would have been smarter.

Anyway, the instance has been running for several days with regular use of the Snowflake datasource, no problem until now. (and we’re using google oauth, means the Flask OAuth lib is working correctly in combination with the snowflake connector.)
If you need more information about the way the instance is behaving, feel free to ask.


#5

Thanks for the update! I think in one of the upcoming releases we will enable Snowflake by default again.