自分探しの旅へ…SnowflakeとTableauを連携させ、いいねしたツイートからワードクラウドを作成する – Snowflake Advent Calendar 2019 #SnowflakeDB

2019.12.19

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

突然ですが、皆さんは自分が何を好きなのかわからなくなったことはありますか?

私はあります。つい先日、「オフィスの会議室に名前をつけるならどうする?」という会話になり、メンバーが「サッカーの選手」「プロレスラー」などと自分の好きなものに絡めた名づけを提案する中、私は何も出せませんでした。

長い間生きてきて、何が好きなのかさえもはっきりしない……なんて空虚な人生なのだろうと落ち込み、その日以来、自分自身との対話を始めました。好きってなんだ…?好きと言えばいいね…いいねと言えば……Twitter!

というわけで、このエントリではTableauとSnowflakeを連携させてワードクラウドを作り、自分の好きなものを探した記録をご紹介します。

前置きが長くなりましたが、本エントリはSnowflake Advent Calender 2019の19日目のエントリです。

もくじ

前提条件

本エントリの検証にあたって、以下の環境を使用しました。

  • Windows 10 pro
  • Tableau Desktop 2019.4
  • Snowflake(2019/12/17時点での最新版)

前処理

今回のゴールはTableauとSnowflakeを連携させてワードクラウドをつくることです。その前段階として、以下の作業を実施しています。

  • CDataのODBCドライバを使用し、Twitter上でいいねしたツイートをAlteryxで取得
  • Alteryxでツイートを単語に分解、加工
  • 加工したデータをSnowflakeに投入

このあたりのデータ加工については以下エントリをご確認ください。(2019/12/23更新)

SnowflakeのODBCドライバをセットアップする

TableauとSnowflakeを連携させるには、ODBCドライバが必要となります。SnowflakeのODBCドライバをインストールしていない状態でTableauからSnowflakeに接続しようとすると、以下のように下部分にURLが表示されます。

クリックするとTableau社が提供するODBCドライバのダウンロードガイドのサイトに遷移します。

この手順に従ってSnowflakeのODBCドライバのインストーラをダウンロードします。

Snowflakeにログインし、Helpから「Download...」を選択します。

ODBCドライバのタブにて、「Snowflake Repository」クリックするとダウンロードサイトに遷移します。

今回はWindows 10を環境として使用しているため、Win64を選択します。お使いの環境に合わせて適切なドライバを選択してください。

Latestを選択して最新版のダウンロードページに遷移します。

msiのファイル名をクリックするとダウンロードが始まります。

インストーラを起動し、画面にしたがってインストールを進めていきましょう。インストール先のディレクトリを指定します。デフォルトで進める場合はこのままNextをクリックします。

インストールが完了すると以下の画面が表示されます。

インストールが完了したら、ODBCデータソースアドミニストレーターにSnowflakeの接続先を追加します。

SnowflakeDSIIDriverを選択します。

Snowflake Configuration Dialogが表示されます。以下の通り項目を記述します。

項目 設定値
Data Source 任意の名前
User Snowflake上でのユーザー名(Snowflakeログイン後、画面右上から確認可能) 
Server http://抜きのSnowflakeのURL ~.snowflakecomputing.com

設定はこれで完了です。

Tableau DesktopとSnowflakeを連携させる

ODBCドライバのセットアップさえ完了していればTableauとの連携方法は非常にシンプルです。 接続「サーバーへ」から「その他」→「Snowflake」を選択します。

Snowflakeへの接続設定画面が表示されます。以下の通り項目を設定します。

項目 設定値
Server http://抜きのSnowflakeのURL ~.snowflakecomputing.com
認証 Snowflakeへログインする際の認証方法を選択※今回使用している環境ではSnowflakeへの認証にユーザー名とパスワードを使用しています。
ユーザー名 Snowflake上でのユーザー名(Snowflakeログイン後、画面右上から確認可能)
パスワード Snowflakeのログインパスワード

サインインをクリックするとSnowflakeと接続できました。ウェアハウス・データベース・スキーマをそれぞれ指定し、データが格納されている表を選択します。

Tableauでワードクラウドを作る

Snowflakeと接続してデータをTableau Desktop上で取得できるようになりました。自分探しの旅もゴールに近いです。ワードクラウドを作成していきましょう。

Tableauでのワードクラウドの作成は以下の手順で簡単にできます。

Snowflakeに格納されているデータは以下の通り。いいねしたツイートの中に含まれる単語と、単語の登場回数が格納されています。Tableauが単語をカウントしてくれるため、本来であれば単語のみでワードクラウドが作成できるのですが、今回は単語をグループ化して登場回数を前処理で集計済みです。

あまり使用頻度の少ないワードを出すとビューが見にくくなるため、一定の登場回数のみの単語に絞りましょう。登場回数が10以上のデータを集めた動的なセットを作成します。

データペインのディメンションにある単語(Surface)を右クリックし、「作成」→「セット」をクリックします。

条件タブで登場回数(Count)が10回以上となるよう設定します。

無事にセットを作成できたので、ワードクラウドを作っていきましょう。新しいシートを開き、先ほど作成したセットを「マーク」の「テキスト」にドラッグ&ドロップします。このままではIn/Outとしか表示されないので、ピルの下矢印をクリックして「セットのメンバーを表示」を選択します。これで単語がテキストで表示されるようになりました。

登場回数が多い単語は大きく表示させましょう。ワードクラウドっぽいですね。Countを「マーク」の「サイズ」にドラッグ&ドロップします。ドロップダウンリストにはデフォルトで「自動」が指定されていますが、「テキスト」を選びます。

単語ごとに色をつけておきましょう。セットを「マーク」の「色」にドラッグ&ドロップします。ピルの下矢印をクリックして「セットのメンバーを表示」を選択します。

ワードクラウドができました!(自分自身にメンションされているツイートをよくいいねするので自分のアカウントIDが含まれてしまいましたが、恥ずかしいので右クリック→「除外」でワードクラウド上に見えないようにしました。)

前処理の段階で除外しておけばよかったのですが、「する」が一番大きいですね。「自分」「自己」といった言葉もそこそこ大きいです。私は……私が好き…?ちょっと自信がありません。いまいち自分が何が好きなのか、手間をかけてワードクラウドを作った割にまだよくわからないまま………

ん?

………プリパラだ~! 2019年に5周年を迎えたTVアニメ、プリパラ。2019年12月の期間限定で2ndシーズンをYoutubeにて好評配信中!

まとめ

ODBCドライバのセットアップは必要となりますが、SnowflakeとTableauの連携は非常に簡単にできました。Snowflakeはクラウドベースのデータウェアハウスなので、思い立ったらすぐにトライアルをできるのもいいところですね。

自分の好きなものも見つかり、安心して今日12/19という誕生日を過ごせそうです。最高のプレゼント for me…そんなバースデーブログでした。

参考資料