SnowflakeとLooker Studioのデータ連携 #Snowflake #LookerStudio
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
目的
クラウド型データウェアハウスSnowflakeに保存されたデータをGoogleが提供するBIツールLooker Studioへデータ連携する方法について解説します。
目次
- Snowflakeとは
- エディション・料金形態
- コンピューティングリソース
- ストレージリソース
- データ転送リソース
- Looker Studioとは
- 料金形態
- SnowflakeとLooker Studioのデータ連携方法
- Snowflakeの接続設定
- Looker Studioの接続設定
- まとめ
Snowflakeとは
クラウド上に構築されたSaaS型のデータウェアハウス(DWH)です。他のクラウド型DWHとしてはAmazon RedshiftやGoogle BigQueryが有名です。
エディション・料金形態
Snowflakeには以下の三つのリソースに対して料金が発生します。
- コンピューティングリソース
- ストレージリソース
- データ転送リソース
コンピューティングリソース
Snowflake内でコンピューティングリソースを使用すると、「クレジット」が消費されます。クレジットとはSnowflakeのリソース使用量の単位のことです。クレジットはウェアハウスの実行中、クラウドサービスレイヤーの作業中、サーバーレス機能の使用時に消費されます。
具体的な使用料金についてはこのページで調べることができます。
クラウドプラットフォーム、リージョンの選び方によってエディションごとの料金は変化しますが、例えばAWSでTokyoリージョンを選択した場合の料金形態は以下のようになります。
また、コンピューティングリソースの中でも、一般には大部分をウェアハウスの実行による消費が占めることが多いようです。
一時間あたりのウェアハウスの消費クレジットが下表に記載されています。
ストレージリソース
Snowflakeにデータを格納するための月額コストであり、上記同様このページで調べることができます。AWSでTokyoリージョンを選択した場合の料金形態は以下のようになります。
データ転送リソース
Snowflakeから外向きへデータを出力する際にのみデータ転送料金が発生しますが、具体的な料金についてはクラウドプロバイダーに依存しますが、一般的には上記二つのリソースに比べると割合は小さいです。
Looker Studioとは
Looker Studioとは、Google Cloudが提供するクラウドベースのBIツール(旧称データポータル)です。さまざまなデータソースへの接続が可能であり、SQLの知識がなくても高機能な分析を行えることが特徴です。
料金形態
Looker Studioは基本的に無料で使用できます。Looker Studio Proにアップグレードした場合には料金が発生します。
SnowflakeとLooker Studioのデータ連携方法
Snowflake上のデータをLooker Studioに取り込むための具体的な手順を解説します。大まかな流れは以下の通りです。
- Snowflake上にLooker Studio用のロールを作成し、そのロールに連携したいデータベースへのアクセス権限を与える。
- Looker StudioのレポートからSnowflakeに連携するボタンを押し、必要な情報を入力する。
Snowflakeの接続設定
Snowflake側では、Looker Studio用のロール、ウェアハウスを作成する必要があります。(Looker StudioとLookerは異なるサービスですが、Lookerとの接続用の公式ドキュメントが参考になります。)
まず、Snowflakeでコマンドを実行するために、ワークシートを作成します。
ワークシート内でコマンドを貼り付け、実行していきます。コマンドを実行するには、コマンドの行にカーソルが乗った状態で、右上の実行ボタンを押します。
まずは、以下のコマンドで自分をACCOUNTADMINロールに切り替えます。
use role ACCOUNTADMIN;
次に、下記のコマンドで、looker_roleという名前のロールを作成し、SYSADMINロールにlooker_roleを継承させます。
create role if not exists looker_role; grant role looker_role to role SYSADMIN;
looker_userという名前のユーザーを作成し、作成したユーザにlooker_roleを与えてから、デフォルトロールとデフォルトウェアハウスの設定をします。コマンド実行前に、パスワードは任意のものに置き換えてください。
create user if not exists looker_user password = '<enter password here>'; grant role looker_role to user looker_user; alter user looker_user set default_role = looker_role default_warehouse = 'looker_wh';
自分の権限をSYSADMINに変更します。
use role SYSADMIN;
Looker用のウェアハウスlooker_whを作成します。ウェアハウスのサイズやタイプ等は適宜変更しても問題ありません。
create warehouse if not exists looker_wh warehouse_size = medium warehouse_type = standard auto_suspend = 1800 auto_resume = true initially_suspended = true;
looker_roleに、looker_whでの全ての権限を与えます。
grant all privileges on warehouse looker_wh to role looker_role;
looker_roleに、接続したいデータベースとスキーマの使用権限を与えます。コマンドを実行する前にデータベース名とスキーマ名を適宜変更してください。
grant usage on database <database> to role looker_role; grant usage on schema <database>.<schema> to role looker_role;
データベースの全てのテーブルへのselect 権限をlooker_role に与えます。
grant select on all tables in schema <database>.<schema> to role looker_role;
もしくは、select 権限を特定のテーブルのみに与えたい場合は以下のようなコマンドを実行します。
grant select on future tables in schema <database>.<schema> to role looker_role;
以上でSnowflake側の設定は終了です。
Looker Studioの接続設定
データ連携したいレポート上で「データを追加」ボタンを押します。
データソースの一覧が表示されます。検索欄に「Snowflake」と入力すると、Snowflakeが一覧に表示されるので、クリックします。
Looker StudioからSnowflakeへデータをアクセスすることを許可するよう求められるので、「承認」に進みます。
Snowflakeのユーザ名とパスワードの入力欄が表示されますので、ユーザ名とパスワードを入力し、送信します。
次に、Snowflakeの画面上でアカウントURLをSnowflakeの以下のボタンからクリップボードにコピーします。
Looker Studioの画面に戻ります。ユーザ名とパスワードの入力が完了すると、以下のようにSnowflakeのアカウントURLを入力するよう求められます。この欄にクリップボードに貼り付けておいたアカウントURLを入力します。ただし先頭の「https://」は取り除いてください。
接続用のロールの選択欄が表示されるので、先ほど用意した「looker_role」を選択します。
ウェアハウスの選択欄が表示されるので、先ほど用意した「looker_wh」を選択します。
データ連携したいデータベースの選択欄が表示されるので、該当データベースを選択します。
データ連携したいスキーマの選択欄が表示されるので、該当スキーマを選択します。
実際に連携するデータを取得するためのSQLクエリの入力欄が表示されるので、クエリを入力します。今回の例では「MYTABLE」というテーブルから全ての行を取得しています。
ここまで進むと、「追加」を押すことができるようになるので、ここをクリックして次に進みます。
以下のような確認画面が表示されるので、「レポートに追加」をクリックします。
以上でデータ連携の手続きは終了です。このようにデータを連携することができました。
まとめ
- Snowflake上にLooker Studio用にロール、ウェアハウスを作成します。
- Looker Studioからの連携は「データを追加」から手順に従って行えば連携が可能です。