Snowflake

TableauとSnowflakeを接続する方法

こんにちは、中村です。

SnowflakeとTableauの接続に戸惑ったので今回、記事にすることにしました。

同じように躓いている方、何を選ぼうか迷っている方はぜひ参考にしていただけると幸いです。

目次

  • 設定
  • 認証方法
  • まとめ
  • 設定

    まずはSnowflake上でTableau用のシステムユーザーを作成しましょう

    SnowsightのSQLで以下を実行してください。

    -- 1. ユーザー作成
    CREATE USER tableau
     Type = SERVISE
      PASSWORD = '************'
      DEFAULT_ROLE = 'tableau_role'
      COMMENT = 'Tableau専用ユーザー';
    
    -- 2. ロール作成
    CREATE ROLE tableau_role;
    
    -- 3. ユーザーにロールを付与
    GRANT ROLE tableau_role TO USER tableau;
    

    続いてTableau接続用のODBCドライバーをこちらからダウンロードしましょう

    Tableauを起動して、データソース画面からサーバーへ>その他を選択

    ここで接続先一覧が表示されるのでSnowflakeを選択しましょう。

    すると下の画像のような画面が表示されるので、各項目を入力していきます。役割(ロール)とウェアハウスはオプションなので、今回は入力をパスします。

    サーバー欄にはSnowflakeのURL(*******.snowflakecomputing.com)を入力します。
    Snowsightから自分のアカウントをクリック、アカウントからアカウントの詳細を表示するをクリック

    アカウント/サーバーURLをコピーして入力しましょう。

    認証方法

    認証方法は4種類あります。
    ・OAuth
    ・ユーザー名とパスワード(非推奨)/PAT
    ・Oktaのユーザー名とパスワード
    ・キーペア

    今回はOkta以外の3つを紹介します。

    OAuth

    SnowflakeのSQLワークシートから次を実行してください。

    USE ROLE ACCOUNTADMIN;
    
    --Tableau Desktopの場合
    CREATE OR REPLACE SECURITY INTEGRATION tableau_desktop_oauth
      TYPE = OAUTH
      ENABLED = TRUE
      OAUTH_CLIENT = TABLEAU_DESKTOP
    ;
    
    --Tableau Server/Cloudの場合
    CREATE OR REPLACE SECURITY INTEGRATION tableau_Server_oauth
      TYPE = OAUTH
      ENABLED = TRUE
      OAUTH_CLIENT = TABLEAU_SERVER
    ;

    実行が確認出来たら、Tableauで認証をOAuthにしてサインイン

    Webブラウザが起動してユーザー名とパスワードが求められるので、設定通り入力してください

    入力できたら許可を選択して接続完了です。

    ユーザー名とパスワード

    設定したユーザー名とパスワードを入力したら接続完了です。

    ユーザー名:tableau
    パスワード:******** 

    注意!実行のたびにユーザー名とパスワードの入力が求められるので、この方法はあまり推奨できません!

    PAT

    SnowsightのSQLワークシートで以下を実行

    --tableau_net_policyというポリシーと、tableau_tokenというトークンを作成する
    
    USE ROLE SECURITYADMIN;
    
    --許可するIPアドレスを入力
    CREATE NETWORK POLICY IF NOT EXISTS tableau_net_policy
        ALLOWED_IP_LIST = ('127.0.0.1','xx.xx.xx.xx');  
    --ユーザーにネットワークポリシーを適用
    ALTER USER tableau SET NETWORK_POLICY = tableau_net_policy;
    
    --トークンの作成と有効期限の設定
    ALTER USER tableau ADD PROGRAMMATIC ACCESS TOKEN  tableau_PAT_token
      days_to_expiry = 365 -- アクセストークンの有効期限:最大365日
      role_restriction = 'tableau_role'; 

    すべて実行すると最後の実行で下のような結果が出力されるので、赤枠内のトークンをコピー

    認証でユーザー名とパスワードを選択してユーザー名と先ほどのトークンをパスワードに入力すると接続完了

    ユーザー名:tableau
    パスワード:eyJraWQi******** (PATで発行されたトークンの値)

    キーペア

    ターミナルから以下を実行

    #秘密鍵の作成(パスワード作成を求められる)
    openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out snowflake_rsa_key.p8 
    
    #公開鍵の作成
    openssl rsa -in snowflake_rsa_key.p8 -pubout -out snowflake_rsa_key.pub

    作成された秘密鍵、公開鍵は実行したディレクトリに作成されます。

    続いてSnowsightのSQLワークシートで以下を実行

    --tableauというシステムユーザーがすでにあると仮定
    
    --Snowflakeユーザーに公開キーを割り当てる(公開鍵snowflake_rsa_key.pubの中身を入れる)
    ALTER USER tableau SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';
    
    --ユーザーの公開キーのフィンガープリントを検証する
    DESC USER tableau;
    SELECT SUBSTR((SELECT "value" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
      WHERE "property" = 'RSA_PUBLIC_KEY_FP'), LEN('SHA256:') + 1);

    もう一度ターミナルに戻って下のコマンドを実行

    openssl rsa -pubin -in snowflake_rsa_key.pub -outform DER | openssl dgst -sha256 -binary | openssl enc -base64

    検証で出力されたものと一致していれば成功です。

    Tableauに戻って認証でキーペアを選択し、ファイルの選択と秘密鍵のパスワードを入力して完了

    まとめ

    今回はTableauとSnowflakeの接続方法について解説しました。

    個人的には特定のIPだけで接続するならPAT、そうでなければOAuthを使うのが良いのではないかと思いました!

【dbts25】Snowflake×PostgreSQLのニュースを読む!登壇資料前のページ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Tableau

    【TC19ブログ】エクスチュアの海外カンファレンス参加支援制度

    こんにちは、エクスチュアの渡部です。いよいよ明日の11/12(…

  2. Tableau

    Tableauで長い文字列データをシート上で折り返す方法

    こんにちは。今回はTableauの小技を紹介します。ビジュア…

  3. Snowflake

    【速報】Snowflake Summit Platform Keynote Keynote 要約

    こちらの記事はSnowflake Summitで行われたプラットフォ…

  4. Snowflake

    [Snowflake Summit 2025] Snowflake × Crunchy Dataの発…

    こんにちは、喜田です。エクスチュアでSr. Data Evangel…

  5. Tableau

    Tableauのテスト自動化を実現する Wiiisdom Ops for Tableau

    こんにちは、エクスチュアの松村です。エンタープライズ系でTab…

  6. Tableau

    Tableauで強調円グラフを作ってみた〜特殊チャート①〜

    はじめにこんにちは!インターン生の與那覇(ヨナハ)です今回は、長谷…

カテゴリ
最近の記事
  1. TableauとSnowflakeを接続する方法
  2. 【dbts25】Snowflake×PostgreSQLのニ…
  3. TROCCO dbt連携編
  4. KARTEの「フレックスエディタ(β)」登場!ノーコードでこ…
  5. dbt Projects on Snowflake使ってみた…
  1. Google BigQuery

    Treasure DataからBigQueryにデータを移動させる方法
  2. Amazon Web Services

    System Managerを利用したVPC内Redshiftへの接続
  3. Adobe Analytics

    Adobe Analytics 3つの主要指標
  4. 未分類

    ThoughtSpotとSnowflakeを使ってセルフBIの世界を体験してみた…
  5. Adobe Analytics

    Adobe Analytics-分析ワークスペースの使い方
PAGE TOP