Snowflake

TableauとSnowflakeを接続する方法

こんにちは、中村です。

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

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

目次

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

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

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

    -- 1. ユーザー作成
    CREATE USER tableau
     Type = SERVISE
      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

    注意:今回作成したサービスタイプのユーザーでは接続できません、MFA認証をした通常のユーザーでの接続方法になります。

    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の接続方法について解説しました。

    個人的にはサービスタイプのユーザーは基本的にPAT、こだわりがあればキーペアを使うのが良いのではないかと思いました!

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

AWS発のAIエージェントIDE「Kiro」を使用した仕様駆動開発を触ってみた。次のページ

ピックアップ記事

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

関連記事

  1. Tableau

    Tableau Viz紹介 : 10.4新機能を使ってダッシュボードを作ってみた

    ----・17/10/10(火)追記本ブログで紹介しているVi…

  2. dbt

    Snowflake Summit 2025 参加レポート【Day3】

    こんにちは、エクスチュアの黒岩です。Snowflake Su…

  3. Snowflake

    Snowflakeとは?Data Cloud World Tour から見る2023年の現在地

    こんにちは、エクスチュアの喜田です。2023年の初めからSnowfl…

  4. IT用語集

    BIツール(Business Intelligence Tool)って何?

    はじめにBIツールって聞いたことあるようなないような〜って単語ですよ…

  5. Cortex

    コンポーザブルCDPにおけるSnowflakeのマルチモーダルLLMの期待

    こんにちは、喜田です。本記事ではコンポーザブルCDPとは何か…

  6. Tableau

    【図解】Tableau Desktop 2020.3で「計算式」「予測機能」など大幅アプデ!

    Tableau Desktop 2020.3の7つの新機能【注目度順】…

カテゴリ
最近の記事
  1. Adobe WebSDK クロスドメイン計測【第2部】FPI…
  2. Adobe WebSDK クロスドメイン計測【第1部】ECI…
  3. Adobe Target Recommendations:g…
  4. Conversational Analytics APIでお…
  5. Looker Studioで日付フィルターの開始日・終了日の…
  1. Snowflake

    【dbts25】Snowflake×PostgreSQLのニュースを読む!登壇資…
  2. Amplitude

    Amplitudeで何が分かる?
  3. IT用語集

    カーネル(Kernel)って何?
  4. Data Clean Room

    忘年会シーズンに「DCRごっこ」のご提案
  5. Adobe Analytics

    Adobe Analyticsのモバイルアプリが意外と便利
PAGE TOP