技術 4 課の宮本です。最近電動式のスタンディングデスク(の脚)を購入し、意味もなく上げ下げして満足感に浸っています。さて、今回は Data Warehouse-as-a-Service として最近注目を集めている Snowflake を触ってみました。
Snowflake とは
クラウド向けに構築されたデータウェアハウスで、以下の特徴があります。
- Instant Elasticity (瞬間的な弾力性)
- 必要なパフォーマンスと実行可能なインサイトを得るため、任意の数のユーザーに必要な量のコンピューティングパワーを提供します。
- セキュリティ
- 管理性、セキュリティを担保しながら、リアルタイムにデータ共有を実現することにより、部門間や外部パートナーとの協業を推進します。
- 秒単位課金
- ワークロードを支えるコンピューティングパワーの量を自動的に縮小することで、ウェアハウスのコストを削減します。
- クラウド向けに設計
- 既存データ・アプリをそのまま残しながらも、地域やクラウドプロバイダーの垣根を超えてデータレプリケーションを実現することにより、フェイルオーバー・継続性面でも自信を持って運用。
早速触ってみる
ものは試しですね。まずはアカウントを作って試してみます。
https://www.snowflake.com/?lang=ja にアクセスしてみましょう。
SNOWFLAKEを試す
を選択します。
トライアルで 30 日間 \$400 分の利用が無料でできるようです。全て入力して CONTINUE
を選択します。
エディションは Enterprise
を選択しました。トライアルの時点ではクレジットカードなどの登録は行わないため、ご安心ください。クラウドプロバイダーは AWS
、リージョンは Asia Pacific (Tokyo)
を選択しました。Phone Number も入力して GET STARTED
を選択します。
尚、Asia Pacific (Tokyo)
リージョンの他は、以下のリージョンが選択できるようです。
YOU'RE NOW SIGNED UP!
が表示されるまで待ちましょう。
登録したメールアドレス宛に確認用のメールが届いているはずです。
CLICK TO ACTIVATE
を選択します。
アクティベーションが成功しました。作成したい任意のユーザー名とパスワードを入力して Get Started
を選択します。
Web インターフェースにログイン出来ました。
クエリを実行する
初期で用意されているサンプルデータがあるので、早速SQLを実行してみましょう。画面上部のメニューで Worksheets
を選択します。
画面左側のオブジェクト一覧を展開してみましょう。存在するテーブルが確認できます。
Database
-> Schema
-> Table
という構成になっています。ここはデータベース製品ごとに用語が変わってくるので抑えておきたいところです。
スキーマ TPCH_SF1
、テーブル CUSTOMER
を取得するクエリを実行してみます。画面右上部分を選択し、現在のセッション状態を変更出来ます。
スキーマまで選択しておきましょう。選択しない場合、SQLのFROM句に スキーマ名.テーブル名
の形式で指定しなければなりません。
エディタ部分にSQLを入力し、Run
ボタンを選択します。
画面下部に結果が表示されます。Snowflake で使えるSQL構文についてはドキュメントを参照してみてください。
クエリの履歴を確認する
続いてクエリの履歴を確認してみましょう。画面上部の History
を選択します。直近に実行したクエリが一覧表示されます。
任意の行の Query ID
を選択してみましょう。実行したSQLとその結果が表示されます。
その他のメニューについて
Databases
既存のデータベース一覧が確認出来ます。
データベース名を選択すると、配下のオブジェクトも一覧で確認出来ます。
Shares
他の Snowflake アカウントとデータを共有できる機能のようです。長くなりそうなので次回以降、試してみることにします。
Warehouses
Warehouse の一覧が確認出来ます。
Warehouse とは
仮想ウェアハウスは、顧客によるクエリの実行、データのロード、他の DML 操作の実行を可能にする1つ以上のコンピュートクラスタです。
クエリ性能、請求に関わってくる部分の様なので、実運用する際は押さえておきたい部分ですね。
Partner Connect
Snowflake のパートナーのサービスにデータを連携できる様です。データの可視化、分析、加工が必要な際に使えそうです。
まとめ
アカウントの登録からクエリの実行まで、30分程度で試すことが出来ました。実際に導入するまでには、抑えておかなければならないことが沢山ありますが、簡単に試せるのは良いことですね。
次回以降、Web インターフェース以外からのアクセスや、アーキテクチャーについてもご紹介出来ればと思います。