Snowflakeを使い始めるマーケティングエンジニアの皆さん、こんにちは!
ビッグデータの時代において、データを効果的に管理し分析することは、ビジネスにおける競争力を高める重要な要素です。その中でもSnowflakeは、クラウド上でのデータウェアハウスとして高い評価を受けています。
しかし、Snowflakeを使い始める際には、データのスケジューリングや可視化ツールとの接続方法など、さまざまな課題に直面するかもしれません。
この記事では初心者マーケティングエンジニアのために、Snowflake上でのデータマートの出力方法から、スケジューリング、人気の可視化ツールであるTableauへの接続方法まで、一気通貫で解説します。Snowflakeを効果的に活用し、ビジネスの成果につなげるためのスキルを身につけましょう。
はじめに
Snowflakeの基本概念の復習
Snowflakeは、クラウドベースのデータウェアハウスプラットフォームです。仮想データウェアハウスとして動作し、計算とストレージを分離しています。
また、メンテナンスや管理も自動化されており、柔軟性、拡張性、セキュリティ性に優れています。
検証環境の準備
本稿はSnowflakeのトライアルアカウントを使用して進めて行きます。ツールをお持ちでない場合、SnowflakeとTableauそれぞれ下記リンク先に沿ってトライアル環境を整備いただけます。
- Snowflakeトライアル版(クラウドプロバイダーはAWSを選択ください)
- Tableau トライアル版
Snowflakeでのデータマートの作成
データマート作成の前に
トライアル環境には今回の検証に使えるデータベースが存在しません。データマート作成の前に、トライアル環境内に「TEST」というデータベースを作成します。
- 手順1. データベースタブをクリック
- 手順2. +データベースをクリック
- 手順3. TESTを作成
データマートの作成
作成したSQL文を元に「CREATE TABLE」という命令文でテーブルを作成します。ここではサンプルとして日付カレンダーテーブル(CALENDAR)をTEST配下のPUBLICスキーマに作成してみます。
CREATE TABLE TEST.PUBLIC.CALENDAR AS
SELECT
DATEADD('DAY', value, DATE('2023-09-01')) AS DATE
FROM
TABLE(FLATTEN(INPUT =>
(
SELECT
ARRAY_GENERATE_RANGE(0, DATEDIFF('DAY', '2023-09-01', DATEADD('DAY', -1 ,CURRENT_DATE) + 1)
))))
;
テーブルの作成が成功すると結果に「テーブルが正常に作成されました」と表示されます。
PUBLIC配下に「CALENDAR」というテーブルが作成されていることが確認できます。これでテーブルは完成です。
データマート更新・処理のスケジューリング
データマートの構築が完了したら、次は定期的なデータ更新や処理のスケジューリングが重要です。スケジューリングを行うことで、データマートの内容が常に最新であり、分析やレポート作成に使用するデータの正確性を保つことができます。
以下では、スケジューリングの重要性や利点、そしてSnowflakeでのスケジューリング方法について説明します。
スケジューリングの重要性と利点
下記の利点を活用することで、データマートのスケジューリングプロセスを効果的に管理し、ビジネスの意思決定に必要な、正確で最新のデータを提供できます。
・データの最新化
定期的なスケジュールに基づいてデータの更新や再処理を行うことで、データマート内の情報が常に最新であることが保証されます。これにより、ユーザーは常に最新のデータを利用して意思決定を行うことができます。
・自動化
スケジューリングにより、手動でデータ更新や処理を行う手間が省けます。定期的なスケジュールに基づいて処理が自動的に実行されるため、ユーザーは定型的な作業から解放され、作業効率が向上します。また、人為的なエラーが減少し、データの品質が向上します。
・リソースの最適化
データの処理をオフピーク時にスケジュールすることで、システムリソースを効率的に活用できます。これにより、システムの負荷が分散され、処理時間が短縮されます。さらに、システム全体のパフォーマンスが向上し、ユーザー体験が向上します。
Snowflakeでスケジューリングを設定する方法
スケジュール実行するには”タスク”という機能を使用します。
タスクはSQL文、ストアドプロシージャ、または外部スクリプトを実行するために使用されます。今回はSQL文によるタスクの作成・スケジュール方法を解説します。
手順1. タスクの作成
Snowflakeの管理者または権限を持つユーザーが、SnowflakeのコンソールやSQLインターフェイスを使用してタスクを作成します。タスクは必要なクエリやストアドプロシージャを含め、実行すべき内容を定義した宣言文を作成します。
CREATE OR REPLACE TASK スキーマ.タスク名
WAREHOUSE=ウェアハウス名
SCHEDULE=スケジューリング時刻
USER_TASK_TIMEOUT_MS=タスク実行時間のタイムアウト制限時間
AS
SQL文またはストアドプロシージャ名
;
実際にパート②で作成したSQL文を用いてタスクを設定してみましょう!
下記タスク宣言文を実行します。
CREATE OR REPLACE TASK TEST.PUBLIC.CALENDAR--スキーマ.タスク名
WAREHOUSE=COMPUTE_WH--ウェアハウス名
SCHEDULE='USING CRON 05 23 * * * Asia/Tokyo'--スケジューリング時刻
USER_TASK_TIMEOUT_MS=7200000--タスク実行時間のタイムアウト制限時間(7200000ミリ秒=2時間)
AS
--SQL文の場合
CREATE OR REPLACE TABLE PUBLIC.CALENDAR AS
SELECT
DATEADD('DAY', value, DATE('2023-09-01')) AS DATE
FROM
TABLE(FLATTEN(INPUT =>
(
SELECT
ARRAY_GENERATE_RANGE(0, DATEDIFF('DAY', '2023-09-01', DATEADD('DAY', -1 ,CURRENT_DATE) + 1)
))))
;
実行を行うと「正常に作成されました。」という結果が返ってきます。これでタスクの作成は完了です。
手順2. タスクの起動
手順1でタスクの作成を行いましたが、これだけではスケジュール通り実行されません。
現状どんなステータスなのか「SHOW TASKS」と記述し実行で確認してみます。すると作成したタスクのステータスが「suspended」となっていることがわかります。これはタスクが停止中になっていることを示します。
タスクを起動するには「ALTER TASK タスク名 RESUME」の実行が必要です。
実行後、再度「SHOW TASKS」でステータスを確認します。すると「started」に変わっていることがわかります。これでタスクのスケジュールが起動しました。
なお、スケジュールを待つことなくタスクを即時実行する場合は「EXECUTE TASK タスク名;」を実行することで可能です。
タスクの実行状況はデータベースタブからタスクの実行履歴で確認できます。定期的にタスクの実行ログや実行結果を監視し、問題が発生した場合には適切な対処を行います。必要に応じてタスクの再設定や修正を行い、スケジュールの正常な運用を確保します。
TableauとSnowflakeを接続する方法
ここからはTableauとSnowflakeの接続方法を説明します。
手順1. Snowflakeコネクタの選択
Tableauの接続画面を開き「サーバーへ」タブからSnowflakeを選択します。
もし接続用のドライバーがインストールされてない場合は、下記リンクの手順に従いインストールが必要となります。
手順2. 認証情報の入力
認証に必要な情報の入力を行います(上画像③)。基本的にはSnowflakeコンソール画面左下のアカウント情報から各要素を確認できます。
- サーバー名:<ロケーター.地域等の情報>.snowflakecomputing.com
- ユーザー名:アカウント作成時の物
- パスワード:アカウント作成時の物
手順3. 接続
認証が完了すると「ウェアハウス」「スキーマ」「テーブル」の選択を行い抽出を行います。抽出が完了すればTableauでの接続は完了です。
Snowflakeは実行時間に伴う従量課金制です。 ダッシュボード上でのデータ参照のたびにコストが発生しますので、よほどのことがない限り抽出を選択しましょう。
まとめ
本記事では、Snowflake上でのデータマートの出力方法から、スケジューリング、Tableauへの接続方法まで、一気通貫で解説しました。
スケジューリングはデータの最新化や作業の効率化といったメリットがあります。またSnowflakeとTableauを組み合わせることで、リアルタイムなデータ分析や洞察の深化、効率的なレポート作成などのメリットを享受できます。本記事の内容が分析やレポーティング等でお忙しいマーケターの方々、Snowflakeを勉強中のエンジニアの方々、皆様の一助となりますと幸いです。
弊社のTableauコンサルティングサービスでは、お客様のダッシュボードのご相談に対し、ヒアリング・要件整理からデータの設計・開発、ダッシュボード実装まで一貫してサポートいたします。ぜひお気軽にお問い合わせくださいませ。ここまで記事を読んでいただき本当に有難うございました。