Snowflake

【Snowflake】ストアド ~ EXECUTE IMMEDIATE ~

■ はじめに EXECUTE IMMEDIATE文についてメモしておく。 目次 【1】EXECUTE IMMEDIATE 1)使いどころ 【2】サンプル 【3】その他のTips 1)二重ドル記号($$) 【1】EXECUTE IMMEDIATE * 指定されたSQL文の文字列を即時実行する https://docs.snowflak…

【Snowflake】ストアド ~ 基本編 / ループ ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/12/11/202904 の続き。 ストアド で ループする処理を学ぶ。 今回で、大分便利に使えるようになりそう、、、 目次 【1】Snowflakeのストアドのループ操作 1)FOR 2)WHILE 3)REPEAT 4)LOOP 【…

【Snowflake】ストアド ~ 入門編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/12/09/152837 で、Snowflakeには、Timerみたいに疑似的な処理がなさそうで その代替え案としてストアドプロシージャを軽く触ったのを きっかけに調べてみた。 目次 【1】ストアドプロシージャ (Stor…

【Snowflake】Snowflake ~ クエリの中断 ~

■ はじめに 小ネタ、、、 だと思ったが、実験などして意外と実りがあった。 クエリを中断(Abort; アボート)する必要があり 長時間掛かるクエリの場合、 Web UI上でできないこともあるので調べてみた 目次 【1】クエリの中断の仕方 1)実行クエリがWebUI…

【Snowflake】Snowflake ~ ネットワークポリシー ~

■ はじめに Snowflake の ネットワークポリシー(Network policy)について 触れたので、メモ。 難しいのかなっと思ったが、シンプルで結構簡単に理解できた。 目次 【1】ネットワークポリシー 【2】SQL文 1)CREATE NETWORK POLICY 2)ALTER ACCOUNT 3…

【Snowflake】Snowflakeのパフォーマンス改善 ~ データロードの改善 ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/11/15/221245 の続き。 データロードが時間が掛かるので、 データロードのパフォーマンスについて調べてみた。 目次 【0】データロードのパフォーマンス 補足:公式ドキュメントより 【1】ウェアハ…

【Snowflake】Snowflake ~ ウェアハウス負荷監視 ~

■ はじめに Snowflake で時間が掛かる処理があるため そのボトルネックの原因を知りたいのだが そもそも、どう調査していいものかが分からず そっから調査したのでメモ。 目次 【1】ウェアハウス負荷監視 1)ドキュメントについて 補足:リソースモニター…

【Snowflake】Snowflake ~ ウェアハウス / Warehouse ~

■ はじめに Snowflake の ウェアハウス(Warehouse、仮想ウェアハウスも同じ意味) について、こつこつまとめていく 目次 【1】ウェアハウス (Warehouse) 【2】SQL文 / コマンド 1)CREATE WAREHOUSE 2)ALTER WAREHOUSE 3)DROP WAREHOUSE 4)SHOW WA…

【Snowflake】Snowflake ~ リソースモニター ~

■ はじめに Snowflake における リソースモニター(Resource monitor)について メモしておく 目次 【1】リソースモニター(Resource monitor) 補足:Snowflakeクレジット 【2】SQL文 / コマンド 1)CREATE RESOURCE MONITOR 2)SHOW RESOURCE MONITORS…

【Snowflake】【トラブル】エラー「Error assuming AWS_ROLE」時の対応

■ はじめに 長い間、よくわからなかったSnowflakeの接続問題について やっと原因が理解できたので、メモする。 目次 【1】トラブル概要 【2】エラー内容 【3】原因 1)確認方法 【4】解決案 【5】別ケースでの同じエラー 【1】トラブル概要 Snowflake…

【Snowflake】Snowflake ~ テーブルの簡易バックアップを考える ~

■ はじめに 念のために、Snowflakeの既存のテーブルをバックアップとる って作業が発生しそうなので、簡単な方法でできないか調べてみた => 結論としては、原始的にSQLでやることになりそうだが その経過で調べた「CREATE CLONE」についても触れる => あと、…

【Snowflake】Snowflake ~ ユーザ/ロールあれこれ ~

■ はじめに ユーザ操作について、 今までコマンド実行は知っていて使っていたのだが、 Web UIでのGUI操作(DROPなど)があるのを 知ったのでメモ。 目次 【1】コマンド操作 1)SHOW ROLES/USERS 2)DESCRIBE USER 【2】GUI操作 1)ユーザ削除の場合 2…

【Snowflake】Snowflake ~ Partition構成のデータを取り込む ~

■ はじめに パーティション (Partition) のようなパス構成 (e.g. s3://your-s3-bucket/test/demo/date=20221028/)のデータを Snowflake で取り込む必要がでてきそうだったので その方法についてまとめる。 後日談 * 色々調べてみると、同じようなことを公…

【Snowflake】【トラブル】エラー「Failure using stage area. ... AccessDenied」時の対応

■ はじめに Snowflake で エラー「Failure using stage area. ... AccessDenied」が 発生したので、メモ。 目次 【1】トラブル概要 【2】エラー内容 【3】原因 【4】解決案 【1】トラブル概要 以下の「エラーになったSQL文」を実行したところ、 以下の…

【Snowflake】Snowflake ~ SHOW GRANT ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/02/24/231532 を分冊。 SnowflakeのDBアクセス権限に関する調査において、 「SHOW GRANTS TO USER <user_name>」や 「SHOW GRANTS TO ROLE <role_name>」を使った。 個人的に結構よく使うので、まとめておく。 目次 【0】S</role_name></user_name>…

【Snowflake】Snowflake ~ 基本編 / View ~

■ はじめに Snowflake の View を調べたので、メモっとく。 目次 【1】View 【2】関連するSQL文 1)CREATE VIEW 【3】その他コマンド 1)SHOW VIEWS 2)DESCRIBE VIEW 【4】おまけ:Secure View 1)使用上の注意 【1】View https://docs.snowflake.…

【Snowflake】Snowflake ~ Dynamic masking ~

■ はじめに 個人情報の扱いが厳しくなった昨今。 そこで、Snowflake におけるデータをマスキングする方法を 調べてみた。 目次 【1】ダイナミックマスキング 【2】適用方法 1)使用上の注意 【3】サンプル 例1:Hello world 例2:条件付きのマスキング…

【Snowflake】Snowflake ~ Replication ~

■ はじめに Snowflake の レプリケーション (Replication) について扱う。 なお、レプリケーション 自体については、 以下の関連記事を参照のこと 【DB】 レプリケーション https://dk521123.hatenablog.com/entry/2014/03/09/000100 目次 【0】公式ドキュ…

【SQL】SQLでマスキングを実装

■ はじめに SQLで個人情報保護のためのマスキングを実装する 可能性がでてきたので、予習。 なお、実行環境は、PostgreSQL。 目次 【1】電話番号をマスキング 【2】Emailをマスキング 【1】電話番号をマスキング -- 出力結果:01-2345-**** SELECT RPAD(S…

【Snowflake】Snowflake ~ 文字列操作関連 ~

■ はじめに Snowflake の 文字列操作関連 の関数を少しづつ書いていく。 目次 【1】RPAD / LPAD 【2】SUBSTR / SUBSTRING 【3】LEN / LENGTH 【4】REPLACE 【5】CHARINDEX 【6】SPLIT_PART 【1】RPAD / LPAD * RPAD = Right PADding? / Left PADding …

【Snowflake】Snowflake ~ Removeコマンド ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/07/04/172738 の続き。 Snowflakeで実行に失敗した場合、 再度実行するのに、冪等性(べきとうせい)を保ちたい。 で、Data Unload する際に、前の実行結果を削除するために 使用する Removeコマンド…

【Snowflake】Snowflake ~ 基本編 / テーブル ~

■ はじめに Snowflake の Table定義 (具体的には default値を変更) を変更する 必要ができたので、予習をしておく。 => 調べた結果、SnowflakeのALTER TABLEでは、 default値を変更は対象外だった、、、(後述参照) => OR REPLACE 使ってお茶を濁そうかなっ…

【Snowflake】Snowflake ~ 日時関連 / 日時取得関数 ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/06/17/113003 の続き。 上記で、Snowflakeに 日時について扱ったが、 current_date() / sysdate() で結構、色々ハマったので、 復習も兼ねて情報を整理する。 目次 【1】現在日時を返す関数 1)CUR…

【Snowflake】Snowflake ~ 基本編 / ステージ ~

■ はじめに いまさらだが、Snowflake の ステージ (Stage) を取り扱う 目次 【1】ステージ (Stage) 1)内部ステージ 2)外部ステージ 【2】ステージに関する主なSQL文 1)CREATE IF NOT EXISTS 2)CREATE OR REPLACE 3)SELECT 4)COPY INTO - SELEC…

【Snowflake】権限トラブル時のTips

■ はじめに https://dk521123.hatenablog.com/entry/2022/08/02/090439 https://dk521123.hatenablog.com/entry/2022/08/18/120935 で、Snowflakeの権限周りのトラブルについて扱ったが、 今後も同じようなトラブルがありそうで、 その際に原因を調べるため…

【Snowflake】【トラブル】エラー「<Object> does not exist or not authorized」時の対応

■ はじめに Snowflake で権限周りのエラーに遭遇したのでメモ。 原因が別の2ケースについて、あげておく。 目次 【1】例1:エラー「Table does not exist or not authorized」時の対応 1)トラブル概要 2)エラー内容 3)原因 4)解決案 【2】例2:…

【Snowflake】Snowflake ~ GET_DDL ~

■ はじめに 小ネタ。 Snowflakeにおいて、開発環境のテーブル定義が古かったが、 DDLが管理されてなかった。 そのため、Snowflake でテーブルをExportするやり方を調べた。 今後も使いそうだし、 テーブル以外にもFile Formatなどにも使えるので メモってお…

【Snowflake】【トラブル】エラー「Insufficient privileges to operate」時の対応

■ はじめに Snowflake で、DROPなどのSQLを実行した際に ~~~~ SQL access control error: Insufficient privileges to operate on xxxx ~~~~ が表示することが何度かあり、対応方法を結構忘れてしまうので、 備忘録としてメモしておく。 目次 【1】エラー内…

【Snowflake】Snowflake ~ MERGE INTO ~

■ はじめに Snowflake の Merge Into について扱う。 目次 【1】Merge Into 【2】構文 【3】使用上の注意 【4】サンプル 例1:Hello world 例2:INSERT OR UPDATE 【1】Merge Into * 2番目のテーブルまたはサブクエリの値に基づいて、 テーブルの値を…

【Snowflake】Snowflake ~ File Format ~

■ はじめに Snowflake で File Format (ファイルフォーマット) を 扱うことになったので、メモしておく 目次 【1】CREATE FILE FORMAT 1)サンプル 2)補足:一時的なファイルフォーマットについて 【2】確認 方法1)SHOW FILE FORMATS 方法2)DESCRIB…