Snowflakeを使ってみた ~無料トライアルのやり方をわかりやすく解説!~(vol.10)

  • 公開日:2023年05月22日(月)

「Snowflakeに興味はあるけど、説明文や紹介文を読んでも、なかなかイメージがつかない」とお悩みの場合、まずは無料トライアルでSnowflakeを使ってみることをお勧めします。難しく感じるしれませんが、Snowflakeはクラウドベースのサービスなので、利用開始のハードルはあまり高くありません。

本ブログ記事では、筆者が実際にSnowflakeを使ってみた記録をご紹介、Snowflakeの無料トライアルのはじめ方基本的な利用方法について、わかりやすく解説します。
本ブログ記事が、読者の皆様がSnowflakeを使ってみる、その一歩を踏み出すきっかけとなれば幸いです。

Snowflakeを使ってみた ~まずはアカウントを作ろう!~

まずは、無料トライアルの申し込みページを開きます。
無料トライアルは、30日間で400ドル分のSnowflakeを利用することができます。

Step1:トライアル申し込みページで、名前、メールアドレス、会社名、役職を入力し、次へ進みます。

Step2:利用するSnowflakeのEdition、クラウドプロバイダー、クラウドリージョンを選択し、最後に「はじめる」をクリックします。

SnowflakeのEditionは、スタンダード/エンタープライズ/ビジネスクリティカル の3つを選択できます。
Editionごとに利用可能な機能が異なるため、実際にビジネスで利用する想定のEditionを選択することをお勧めします。ちなみに、我々が担当するプロジェクトでは、セキュリティ・ガバナンスの観点から、ビジネスクリティカルを選択される企業様が多いです。
アジア太平洋地域の場合、Snowflakeをホスト可能なクラウドプラットフォーム・リージョンは次の通りです。ここで選択したクラウドプラットフォームのリージョン上に、Snowflakeがプロビジョニングされます。

クラウドプロバイダー クラウドリージョン
Amazon Web Services(AWS) アジア太平洋(東京) or アジア太平洋(大阪)
Google Cloud Platform(GCP) ※アジア太平洋地域へのホストをサポートしていません。
Microsoft Azure(Azure) 日本 東部(東京)

Step3:Step1で登録したメールアドレス宛に、Snowflakeからアクティベーションメールが届きます。72時間以内に、メール内の「CLICK TO ACTIVATE」リンクを押します。

Step4:Snowflakeの初回ログイン画面がブラウザで開きます。ログインユーザー名・パスワードを設定し、「はじめる」をクリックします。

Step5:SnowflakeのWeb管理コンソールにログインできました。これで、Snowflakeの利用が可能となりました。

Step1~5まで、たった5分程の時間で、Snowflakeのアカウントを作成することができました。

Snowflakeを使ってみた ~クエリを発行してみよう!~

アカウントを作成してログインすると、既にチュートリアル用のワークシートとサンプルデータベースが用意されおり、すぐにSnowflakeのデータベースを操作可能な状態となっています。
サンプルデータベースには数億規模のサンプルデータも用意されていて、簡単に性能を検証することができます。

ここでは、「Tutorial1」のワークシートを開いてみます。

ワークシート上のSQLを選択し、ブラウザ右上の実行ボタンを押すと、選択していたSQLが実行されます。
すると、「アクティブなウェアハウスがありません」、というエラーが出ました。

ウェアハウスとは、Snowflakeのコンピュートを担うコンピュートリソースです。
SnowflakeでSQLクエリを実行する際には、“どのウェアハウス(コンピュートリソース)を利用するか”を指定する必要があります。
*Snowflakeでは、データを保管するストレージ層と処理を実行するコンピュート層が分離独立しており、コンピュートをつかさどるクラスタを「ウェアハウス」と呼びます。この独自のアーキテクチャにより享受できるメリットについては、「Snowflakeとは? ~機能・特徴・データクラウドの意味をわかりやすく解説~(vol.1)」をご覧ください。

このエラーを解消するため、ワークシート上部のウェアハウスの選択バーから、利用するウェアハウスを選択します。

ウェアハウスを指定し、再度SQLを実行すると、無事にSQLクエリの結果が取得できました。

操作が簡単なので、他にも様々なSQLクエリを発行してみました。
すると、データ量の多いスキーマのテーブルに対して相応のクエリを発行してしまい、2分近く待っても結果が戻ってこない状態に陥ってしまいました。仕方ないので、「Cancel」をします。

このような時は、Snowflakeの本領発揮です。
ワークシートの上部に、ウェアハウスの選択バーから、利用しているウェアハウスのサイズ(コンピュートリソースの性能)を変更します。
ここでは、「X-Small」から「Large」に変更してみました。サイズ変更により、処理性能は8倍になります。

ウェアハウスのサイズを「Large」にした直後にSQLを発行すると、わずか16秒で無事に結果が返ってきました。

ここでのポイントは、Webブラウザ上で簡単に処理性能の変更ができること、そして、その変更が即時反映されることです。

以上の一連の操作から、ウェアハウスの起動・停止、コンピュートリソースのスケールアウト・スケールアップが簡単に行えることが実感できました。

Snowflakeを使ってみた ~データをロードしてみよう!~

次に、自社で保持するオリジナルデータをSnowflakeにロードする方法を解説します。

最初に、WebのUIを利用して、ローカルにあるファイルをロードする方法を解説します。

Classic Consoleの「データベース」メニューから、対象のテーブルを開きます。
「テーブルをロード」ボタンを押します。

次に、ロードに利用するウェアハウスを選択します。

ロードするファイルを選択します。

ファイル形式を選択し、ロードします。
ここまで、SQL等のコマンドは不要で、すべてWebUIを使って操作ができました。

サンプルではファイル形式でCSVを選択していますが、TSVやJSON、圧縮済みファイル等のファイル形式を定義可能です。
ただし、WebUIを使たローカルファイルのロードについては、50MBのサイズ上限があります。テストデータ等であれば問題ありませんが、PoCでレスポンスを検証したい場合、それなりのボリュームのデータをロードする必要があります。

50MB以上のデータをロードする場合は、クラウドストレージにデータファイルを用意し、クラウドストレージを介してSnowflakeにデータをロードしましょう。その手順を簡単に解説します。

  1. Snowflakeにロードするデータファイルを、Amazon S3やAzure Strageなどのクラウドストレージに配置します。
  2. 1.のストレージを、Snowflakeの外部ステージとして登録します。
    例えば、ストレージがAWS S3であった場合、下記コマンドで外部ステージを登録することができます。

    CREATE STAGE my_ext_stage
    URL=’s3://xxx
    CREDENTIALS=(AWS_ROLE=’arn:aws:iam:: xxx:role/ xxx role’)

    ※S3のバケットやIAMロールの「xxx」には、クラウドストレージの設定を記載します。

  3. COPY文を使って、②のストレージ上のデータファイルをテーブルに読み込みます。
    例えば、下記コマンドで外部ステージ上のデータファイル(CSV)をテーブルにロードすることができます。

    COPY INTO TBL1 from @my_ext_stage/xxxx.csv file_format=(type=csv);

なお、データ量が多くなってきた場合は、複数に分割されたデータファイルを並列で取り込むことをおすすめします。処理の並列度が上がることで、データ取込がより高速になるためです。

まとめ

さてここまで、筆者が実際にSnowflakeを使ってみた記録や、Snowflakeの利用手順を解説して参りました。
一連の流れから、次のような印象を受けたのではないでしょうか?

  • Snowflakeの無料トライアル環境は、簡単に作成できる
  • Snowflakeの環境には、あらかじめサンプルデータベースやチュートリアルが用意されていて、トライアルであってもすぐに学習をはじめられる
  • ローカルやクラウドストレージ上のデータファイルを、簡単にSnowflakeにロードできる

是非、皆さまも一度、無料トライアルをお試しください。実際に触ってみることで、Snowflakeの特徴やメリット、操作性などを実感していただければと思います。

弊社では、Snowflake導入前のPoC(Proof of Concept)をご支援するサービスをご提供しております。
・PoC支援サービス:https://itsol.dentsusoken.com/snowflake/service/poc/

データ分析基盤の構築において、データ量と処理性能は、ソリューションの選定における非常に大きなポイントとなりますので、パフォーマンス検証などをご検討の場合は、お気軽にお声掛けください。

◆ お問い合わせページ:https://itsol.dentsusoken.com/snowflake/inquiry/

*本記事は、2023年5月1日時点の情報を基に作成しています。
 製品・サービスに関する詳しいお問い合わせは、電通総研のWebサイトからお問い合わせください。