[小ネタ]SnowSQLで複数環境に簡単に接続できるように設定してみた

2020.11.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!DA(データアナリティクス)事業本部 インテグレーション部の大高です。

SnowflakeのCLIクライアントツール「SnowSQL」では、configファイルに接続情報を設定しておくと簡単に複数環境に接続することができます。今回3環境を設定して試してみたので残しておきます。

前提条件

SnowSQLはインストール済みの環境を前提としています。また、今回の検証ではWSL(Ubuntu)を利用しています。

設定方法

SnowSQLをインストールすると、設定ファイルが ~/.snowsql/config として作成されているので、このファイルに以下のように追記します。

accountnameにはSnowflakeのログインURLに表示されているアカウント名を指定します。usernamepasswordはそのままユーザ名とパスワードです。 ※パスワードが平文で保存されるのでファイルの権限には注意が必要です。

[connections.aws]
accountname = foo.ap-northeast-1.aws
username = foo
password = bar

[connections.gcp]
accountname = foo.us-central1.gcp
username = foo
password = bar

[connections.azure]
accountname = foo.southeast-asia.azure
username = foo
password = bar

この設定のconnections.xxxxxx箇所を利用して接続先を指定することができます。

接続方法

接続時には以下のように-cオプションで接続先を指定して接続します。

$ snowsql -c xxx

または、以下のオプションでも接続できます。

$ snowsql --connection xxx

それぞれ3環境試してみました。

$ snowsql -c aws
❄ SnowSQL ❄ v1.2.10
Type SQL statements or !help
foo#COMPUTE_WH@(no database).(no schema)>SELECT CURRENT_REGION();
╒════════════════════╕                                                          
│ CURRENT_REGION()   │
╞════════════════════╡
│ AWS_AP_NORTHEAST_1 │
╘════════════════════╛
1 Row(s) produced. Time Elapsed: 0.156s
foo#COMPUTE_WH@(no database).(no schema)>!quit
Goodbye!
$ snowsql -c gcp
❄ SnowSQL ❄ v1.2.10
Type SQL statements or !help
foo#COMPUTE_WH@(no database).(no schema)>SELECT CURRENT_REGION();
╒══════════════════╕                                                            
│ CURRENT_REGION() │
╞══════════════════╡
│ GCP_US_CENTRAL1  │
╘══════════════════╛
1 Row(s) produced. Time Elapsed: 0.181s
foo#COMPUTE_WH@(no database).(no schema)>!quit
Goodbye!
$ snowsql -c azure
❄ SnowSQL ❄ v1.2.10
Type SQL statements or !help
foo#COMPUTE_WH@(no database).(no schema)>SELECT CURRENT_REGION();
╒═════════════════════╕                                                         
│ CURRENT_REGION()    │
╞═════════════════════╡
│ AZURE_SOUTHEASTASIA │
╘═════════════════════╛
1 Row(s) produced. Time Elapsed: 0.312s
foo#COMPUTE_WH@(no database).(no schema)>!quit
Goodbye!

ちゃんと切り替えられていますね。

まとめ

この設定は複数環境を利用している場合には、簡単に切り替えて接続できるのでとても便利な設定かと思います。

どなたかのお役に立てば幸いです。それでは!

参考