Open6
Snowflake学習メモ
学習コンテンツ
Udemy: Snowflakeによるデータエンジニアリング基礎
理解するコンテンツ:
- Snowflakeの概要を理解する
- 実際に動かして、Snowflakeの動作を理解する
- アクセスコントロール
データウェアハウスとは
大量のデータを長期保存するために最適化されたデータサーバ
- データ処理の流れ:
データはすべて入れる(非構造化・構造化等、形式は問わない。ローデータのまま格納する)
データソース・データレイク
↓
データウェアハウス
↓
データマート
↓
可視化ツール
メタデータ
格納するデータの管理目的、利用目的を明確にするためにメタデータを管理する。
- データ定義:テーブル名・列名・型等を整理
- データリネージ:データの生成場所やデータの流れを整理
- データ鮮度:いつどの断面なのかを整理
- データセキュリティ:アクセス権限を整理
- データオーナー:データ生成・管理部門は誰なのかを整理
Snowflakeの特徴
処理性能
コンピューティングリソースの柔軟性がある
運用
タイムトラベル、マルチクラウド対応、サードパーティツールとの連携
データ
共有、プロバイダとの連携
コスト
従量課金、ウェアハウスのサイズで課金
無料枠あり
shared nothing
分散システムにおいて、各ノードが個別にストレージにアクセスして計算を行う方法。ノード・ストレージの対応が決まっている
マイクロパーティション
小さい単位でデータに分割して保存されてているため、高速処理できる。
データを細かくすることで、不要な読み込みを発生させないで高速で処理する。
キャッシュ
- クエリキャッシュ
- メタデータキャッシュ
- データキャッシュ
トライアル登録
400ドルの無料クレジットあり。
エディションごとにクレジットの利用量が違うので注意すること。
Snowflakeの日本語化
アカウントアイコンをクリックしSettings
を選択 > Preferences
を選択すると、Language
のプルダウンから日本語を選択できる。
Snowflakeの構造
データ構造
Organization
↓
Account
↓
データベース
↓
スキーマ
↓
テーブル
データロードの考え方
- バッチ処理…定期バッチ。COPY INTOコマンドによりバルクロード
- ストリーム処理…リアルタイム処理。Kafka、Snowpipe Streamingを用いて行単位で取り込む
データベース作成>スキーマ作成してインポートできる。
インポート時にカラム情報も設定できる。
コンピュート
データ分析を行うWHを作成できる。タイプとサイズを指定して作成する。
※このタイプとサイズの選択で利用されるクレジットが変わってくるので注意。
また、自動停止機能がデフォルトでオン(5分)になっているので、一度起動したからずっと起動しっぱなしということはない。
操作
標準SQLをつかって 操作できる。
WHを作成
-- WH Create
CREATE WAREHOUSE PRACTICE_WH WITH
WAREHOUSE_SIZE = 'X-SMALL'
AUTO_SUSPEND = 180
AUTO_RESUME = TRUE
INITIALLY_SUSPENDED = TRUE;
データベース作成
CREATE OR REPLACE DATABASE PRACTICE_DB;
OR REPLACE
はもしすでに同様のDBがあったら置き換える処理を実施。
スキーマ作成
CREATE SCHEMA SAMPLE_SCHEMA;
アクセスコントロール
- 任意のアクセス制御…オブジェクトに対して、ユーザーのアクセス権を付与
- ロールベースのアクセス制御…ロールにアクセス権を付与>ユーザーにロールを付与(認可)
アクセス制御対象
- ウェアハウス
- データベース
- スキーマ
参考URL
Snowflake AI/ML実践ハンズオン(Udemy)
SnowflakeでAI/MLをやるメリット
- Snowflake上のデータをそのまま活用できる
- スケーラブルな仮想ウェアハウス
- サーバーレスML機能とフルコードを一つの基盤で選択実行できる
Snowflake ML
Snowflake Cortex