見出し画像

TableauからSnowflakeへの接続について


はじめに

こんばんは!Hirokiと申します。

今回はTableauからSnowflakeへの接続手順をまとめました。
SnowflakeとTableauを組み合わせる場合に活用できればと思っています。

Snowflake側で必要な作業

今回は以下3オブジェクトを作成します。

  1. ウェアハウスの作成

  2. ロールの作成

  3. ユーザの作成

なおSnowflakeでは基本的には大文字でオブジェクトが作成されます。
ダブルクォーテーションで囲うことで大文字・小文字を区別することができますが、毎回囲う必要があります。今回は簡略化のため、オブジェクト名は大文字で統一しています(TABLEAU_XXという名前でオブジェクトを作成)

ウェアハウスの作成

まず最初にウェアハウス(※)を作成します。
(※)データ処理やクエリ実行を行う仮想的な計算リソース

今回は最小スペックのXSMALLで作成しています。

CREATE WAREHOUSE IF NOT EXISTS TABLEAU_WAREHOUSE WAREHOUSE_SIZE=XSMALL INITIALLY_SUSPENDED=TRUE AUTO_SUSPEND=60;

ロールの作成

次にロール(※)を作成します。
(※)ユーザーやオブジェクトへのアクセス権限を束ねて管理

ロールにはTableau側で実行を許可する権限を付与します。

今回は事前に作成したウェアハウスに関する権限及びSnowflake内のサンプルデータに関する権限を付与しています。

CREATE ROLE TABLEAU_ROLE;
GRANT USAGE ON WAREHOUSE TABLEAU_WAREHOUSE TO ROLE TABLEAU_ROLE;
GRANT OPERATE ON WAREHOUSE TABLEAU_WAREHOUSE TO ROLE TABLEAU_ROLE;
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE_SAMPLE_DATA TO ROLE TABLEAU_ROLE;
GRANT ROLE TABLEAU_ROLE TO ROLE SYSADMIN;

ユーザの作成

最後に接続用のユーザを作成します。「TYPE = SERVICE」を指定することで、
サービス接続用のユーザが作成できます。

これにより、以下2点のメリットがあります。セキュリティを保ちながら、サービス利用できると考えています。

  • Snowflakeの管理コンソールであるSnowsightには接続できない(万が一ユーザ情報が漏洩しても、管理コンソールには接続できない)

  • Snowflake全体にMFAを強制する認証ポリシー(AUTHENTICATION POLICY)が設定されていても、MFAなしでログイン可能なユーザを作成できる

CREATE USER IF NOT EXISTS TABLEAU_USER
TYPE = SERVICE,
DEFAULT_ROLE = TABLEAU_ROLE,
DEFAULT_WAREHOUSE = TABLEAU_WAREHOUSE,
RSA_PUBLIC_KEY = "{公開鍵}";

なお鍵の作成はSnowflakeの以下マニュアルに記載があります。
https://docs.snowflake.com/ja/user-guide/key-pair-auth

最後に作成したユーザにロールを付与して、Snowflake側の準備は完了です。

GRANT ROLE TABLEAU_ROLE TO USER TABLEAU_USER;

Tableau側で必要な作業

注意事項

キーペア認証は、Tableauバージョン 2024.3から可能となった機能です。
2024/11/26時点だといくつか制約があるようでした。

以下のような制約があるので今回の作業はTableau Desktopから実施しています。

Snowflake キーペア認証を使用したワークブックのパブリッシュは、Web 作成ではサポートされていません。Tableau Desktop を使用してワークブックを作成し、それを Tableau Cloud にパブリッシュする必要があります。

https://help.tableau.com/current/pro/desktop/ja-jp/snowflake_key_pair_auth.htm

注: キーペア認証は、バージョン 2024.3 以降の Tableau Desktop および Tableau Cloud で利用できます。Tableau Server では、今後のリリースで利用可能になる予定です。

https://help.tableau.com/current/pro/desktop/ja-jp/examples_snowflake.htm

ドライバのインストール

まずはTableau Desktopを開き、Snowflakeのコネクタを選択します。

Tableau Desktop

初回はドライバーが必要となるので、以下からドライバーをダウンロード・インストールします。
https://www.tableau.com/ja-jp/support/drivers?edition=pro&lang=ja-jp&platform=mac&cpu=64&version=2024.3&__full-version=20243.24.1112.0850#snowflake

ドライバダウンロード

接続情報の入力

ドライバの準備ができると、以下画面が表示されるので接続に必要な情報を入力します。

  • 「サーバー」欄は接続したいSnowflakeアカウントのURLを指定

  • 「認証」欄は「キーペアを使用したサインイン」を指定

  • 「ユーザ名」欄は事前にSnowflakeで作成したユーザ名を指定(今回はTABLEAU_USER)

  • 「秘密キーファイル」欄はユーザ作成時に準備した秘密鍵を指定

接続情報の入力画面

接続が完了すると以下のような画面が表示されます。

接続完了

データ接続

後はウェアハウス・データベース・スキーマを選べば、データが表示されます。ここまでくれば、必要な情報を選びTableauで可視化が可能となります。

可視化対象データの選択

まとめ

直近Tableauが鍵認証に対応したということもあり、Snowflake側のサービスユーザと組み合わせて接続ができました。
Tableau CloudのWeb作成で利用できれば、より便利になるので今後のアップデートに期待しています!


いいなと思ったら応援しよう!