Aginity Proを利用してSnowflakeに接続してみた

Snowflakeのログイン認証では、ユーザ名とパスワードでの認証に加えてMulti-Factor Authentication (MFA)を利用することができます。 今回はこのMFAを有効化してログインするところを試してみました。
2020.01.21

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

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

Snowflakeに接続を行うには、基本となるウェブブラウザ経由での接続や、CLIクライアントであるSnowSQL (CLI Client)の他に、下記のコネクターやドライバが提供されています。

  • Snowflake Connector for Python
  • Snowflake Connector for Spark
  • Snowflake Connector for Kafka
  • Node.js Driver
  • Go Snowflake Driver
  • .NET Driver
  • JDBC Driver
  • ODBC Driver

Connectors & Drivers — Snowflake Documentation

今回はJDBC Driverを利用するクライアントツール「Aginity Pro」を利用して、Snowflakeへの接続を試してみました。

前提条件

Java

JDBCを利用するので、Java(8以上)が必要となります。私はAmazon Correto 8をインストールしました。

Amazon Corretto(本番環境に対応したOpenJDKディストリビューション)| AWS

詳細な要件は下記ドキュメントを参照ください。

Java Requirements for the JDBC Driver — Snowflake Documentation

Snowflake

Snowflake側で接続可能なユーザが作成済みであるものとします。

Aginity Proとは?

Aginity Proは複数のデータプラットフォーム(データベース等)に対応したクライアントツールです。2020年1月現在では、以下に対応しています。

  • Amazon Redshift
  • Amazon RDS (PostgreSQL, SQL Server)
  • Amazon Aurora (PostgreSQL)
  • Snowflake
  • Apache Hive
  • Microsoft SQL Server
  • Azure SQL Server
  • Pivotal Greenplum
  • Apache Spark
  • Azure Data Warehouse
  • PureData for Analytics
  • IBM DB2
  • PostgreSQL

(※名称は製品紹介ページに記載されている名称に合わせています)

また、よく利用するSQLのカタログ化などにも対応しています。詳細は下記ページを参照ください。

Aginity Pro - Aginity

ダウンロードとインストール

今回はフリー版をダウンロード、インストールします。下記ページからダウンロードできます。なお、OSはWindows/Mac共に対応しています。

Pricing - Aginity

ダウンロード後は、インストーラの指示に従ってインストールするのみです。

接続設定

インストールが完了したら早速起動します。まずは「Connections」の右側の「+」ボタンから「Snowflake」を指定して接続設定を開きます。

JDBCドライバがまだインストールされていないので、「download them」のリンクからダウンロードするか、「edit drivers panel」から個別に設定します。今回試したところ、私の環境では「download them」でうまくダウンロードできなかったので「edit drivers panel」を開きました。

JDBCドライバのパネルでは、各JDBC毎にJDBCドライバの設定が出来るようです。

「JDBC Driver file(s)」の「Provided」を選択し「Select and download」をクリックするとダウンロード可能なバージョンリストが表示されダウンロードが可能なようです。

今回は手動で対応するので、まずはSnowflakeのサイトからJDBCドライバをダウンロードします。下記のリンク先のドキュメントに記載の通り、Mavenリポジトリからダウンロードします。

Downloading / Integrating the JDBC Driver — Snowflake Documentation

今回は2020/01/21時点で最新バージョンの「snowflake-jdbc-3.9.2.jar」をダウンロードしました。

Central Repository: net/snowflake/snowflake-jdbc/3.9.2

ダウンロードしたら、適宜適当なパスにファイルを配置して、Aginityの画面に戻ります。「Custom JDBC driver」を選択し、「Add file(s)」ボタンからjarファイルを指定しましょう。

リストに「snowflake-jdbc-3.9.2.jar」が表示されたら「Save changes」で保存します。

これでJDBCドライバの設定はできたので、あとはSnowflakeへの接続情報を指定するだけです。任意の「Connection name」を指定し、ホスト名やユーザアカウント情報なども指定して「Save」します。

試してみる

では、早速接続してみます。画面左側の作成した「CM_Snowflake」というConnectionをクリックして展開します。

すると、DB接続が行われて各種オブジェクトがツリー表示されます。ツリー表示だと分かり易いですね。

まずは「SNOWFLAKE_SAMPLE_DATA」のデータベースから「TPCH_SF1.CUSTOMER」テーブルを右クリックして、100件レコードを確認してみます。

うまくSELECTできました。画面上部には3つの情報がプルダウンで表示されており、それぞれ「Connection」、「Schema」、「Warehouse」が切り替えられるようになっています。

これで、クライアントツールからもSnowflakeが操作できるようになりました。

まとめ

以上、DBクライアントツール「Aginity Pro」でSnowflakeへの接続を試してみた結果でした。

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