Snowflake

【Snowflake】Snowflake ~ IDENTIFIER / SET ~

■ はじめに 小ネタ。 https://dk521123.hatenablog.com/entry/2024/02/19/152927 の作業時に、Snowflake の IDENTIFIER を習ったのでメモ。 ついでに、SET に関してもメモっておく。 (小ネタだったが、書いていく内に思った以上に書く量が多くなってしまっ…

【Snowflake】Snowflake ~ Data Sharing ~

■ はじめに 業務で、Snowflake の Data Sharing (データ共有)について 扱う機会がでたので、ちょこっと調べてみた。 目次 【1】Snowflake Data Sharing 【2】主な操作 1)CREATE SHARE 2)SHOW SHARES 【3】共有方法 1)共有へのデータベースロールの…

【Snowflake】Snowflake ~ Pythonでクエリ実行 ~

■ はじめに Python で Snowflake の 非同期クエリを実行することになったので これを機にPython用Snowflakeコネクタを学んでみる 目次 【1】Python用Snowflakeコネクタ 【2】環境設定 【3】同期クエリ実行 1)サンプル 2)関連するAPI 【4】非同期クエ…

【Snowflake】Snowflakeのパフォーマンス改善 ~ 基礎知識編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/04/222610 の続き。 今回は、Snowflakeのパフォーマンスのキーとなる 「プルーニング」、「マイクロパーティション」、「スピル」 について扱う 目次 【1】プルーニング(Pruning) 1)どうやっ…

【Snowflake】Snowflakeのパフォーマンス改善 ~ クエリプロファイル / 実行計画 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/09/05/161817 において、Mergeでパフォーマンス悪化した際に クエリプロファイルの「JoinFilter」と「JoinKey」とか学んだので 徐々にメモしていく 目次 【1】クエリプロファイル 【2】実行計画 1…

【Snowflake】Snowflake ~ MERGE の使用上の注意 ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/08/01/132611 の続き。 SnowflakeのMerge文において、 使用した際に文法的に制約があったので、 そのことと回避案をメモしておく 目次 【1】「一致する値」と「一致しない値」で指定できる更新文が…

【Snowflake】指定した日付分アンロードするSQLを生成するPythonコード

■ はじめに テーブル内のデータをアンロードして テストデータを作るって作業をしていて 大分、久しぶりに、 Snowflakeスクリプトを書いたのだが 仕様とか色々大幅にかかりそうな予感を感じているので Pythonコード化して対応しておく 【1】前提条件 * スト…

【Snowflake】Snowflake ~ TAG ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/08/03/000817 で紹介した、Snowflakeのタグ付けについて、 掘り下げてみる 目次 【0】Snowflake のタグ 1)公式ドキュメント 2)用途 【1】タグ作成 【2】使用上の注意 【3】タグを付加させる…

【Snowflake】Snowflake ~ 統計情報 ~

■ はじめに パフォーマンステストで、システムのトータル処理時間を測定する際に Snowflakeの完了時刻を知る必要がある。 そこで、完了時刻などの統計情報について、分かったことを 少しづつだが、まとめていく 目次 【1】GUIから確認するには 【2】コマン…

【Snowflake】Snowflake ~ ストレージ統合の作成手順 ~

■ はじめに 久しぶりに、業務で https://dk521123.hatenablog.com/entry/2022/06/29/221037 でやったSnowflake の ストレージ統合 を使って、 アンロードをやったのだが、結構、ハマったので メモっておく なお、ハマった箇所の一部としては、以下の ステッ…

【Snowflake】Snowflake ~ SEQUENCE ~

■ はじめに 小ネタ。 Snowflake の SEQUENCE について扱う 目次 【1】SEQUENCE 【2】SQL文 1)CREATE 文 2)SHOW 文 3)ALTER 文 【3】使用上の注意 1)シーケンス作成後、初期値変更不可 2)連続した値は保証されない 3)作成後に初期値は変更でき…

【Snowflake】【トラブル】エラー「Ownership restriction violation」時の対応

■ はじめに https://dk521123.hatenablog.com/entry/2022/08/02/090439 https://dk521123.hatenablog.com/entry/2023/04/14/151140 に近いのだが、別エラーがでたので、メモ。 【1】トラブル概要 テーブルの所有権を変更するために 以下「実行したSQL」した…

【Snowflake】Snowflake ~ Materialized View ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/10/10/000000 で、Snowflakeのビューをやったが、 Materialized View (マテリアライズドビュー; マテビュー) が ちょくちょくキーワードとしてでてくるので、この機会に 徐々にまとめていく。 ちなみ…

【Snowflake】Snowflake ~ 見積もり・コスト ~

■ はじめに Snowflake のコストの見積もりについて分かったことを纏める 目次 【1】見積もり算出ツール 【2】公式ドキュメント 【3】クレジット 【4】コストを決める3要素 1)コンピューティング 2)ストレージ 3)データ転送 【1】見積もり算出ツー…

【Snowflake】Snowflake ~ キーペア認証 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/06/07/144114 で、Kafka用Snowflakeコネクタ について扱ったが 必須で「snowflake.private.key (必須)」って項目があり 以下のような説明だった https://docs.snowflake.com/ja/user-guide/kafka-con…

【Kafka】Kafkaコネクタ ~ Kafka用Snowflakeコネクタ ~

■ はじめに 業務で、 Kafka用Snowflakeコネクタ を試すことになったのでメモ。 徐々に書き足していく、、、 目次 【1】Kafkaコネクタ 【2】仕様 【3】設定 1)Kafkaコネクタの種類 2)設定手順 【4】Kafka構成ファイル 1)構成ファイル例 2)Kafka構…

【Snowflake】Snowflake ~ Task ~

■ はじめに Snowflake の タスク(Task) に調べてみた 目次 【1】タスク(Task) 【2】使用上の注意 【3】SQL文 1)CREATE TASK 2)ALTER TASK 3)SHOW TASKS 【4】サンプル 例1:Hello world 【1】タスク(Task) * Snowflakeにおいて、以下を実…

【Snowflake】Snowflake ~ Snowpipe ~

■ はじめに 仕事で、Snowflake の Snowpipe を試しそうなので 予習しておく 目次 【1】Snowpipe 1)公式ドキュメント 【2】SQL文 1)CREATE PIPE 2)SHOW PIPES 【3】使用上の注意 1)推奨ロードファイルサイズ 2)日時関数の使用 3)ファイルの削…

【Snowflake】【トラブル】所有権変更後にエラー「current role has no privileges on it」

■ はじめに Snowflakeでトラブったので、 自戒の意味を込めてもメモ、、、 目次 【1】トラブル内容 1)エラーまでのSQL文 【2】エラー内容 【3】原因 【4】解決案 【5】Tips 1)SHOW GRANTS 2)GRANT 【1】トラブル内容 テーブルの普及作業でゴミが…

【Snowflake】SparkからSnowflakeへの接続について考える

■ はじめに AWS Glue(Spark) から Snowflake へ接続する必要がでてきたので 方法について、調べてみた 目次 【0】単純にSQLを実行する 【1】Sparkコネクタ 【2】全体構成 【3】転送モード 1)内部転送 2)外部転送 【4】Snowflakeコネクタの設定 1…

【Snowflake】Snowflakeのパフォーマンス改善 ~ クラスタリングキー ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/12/07/111847 https://dk521123.hatenablog.com/entry/2023/02/27/120943 の続き。 今回は、クラスタリングキーおよび その周辺に関わるマイクロパーティションについて 自分なりにまとめてみる なお…

【Snowflake】Snowflakeのパフォーマンス改善 ~ 検索最適化サービス ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/12/07/111847 の続き。 Snowflakeで、大きいデータを扱っているのだが、 Selectなどのクエリでパフォーマンスがでないとのこと。 以下の関連記事で扱ったウェアハウスを上げる以外で調べてみたところ…

【Snowflake】ストアド ~ ステージ内でデータ0件の場合エラーにする ~

■ はじめに ステージからS3にファイルを読み込んで、 そのファイルデータをSnowflakeにロードするって処理がある。 その際にファイルがなかったら、意図的にエラーにして処理を 中断させることを考える (なんかオプションがあればいいんだけど、探したけど…

【Snowflake】ストアド ~ S3内にパーティション構成でUnloadする ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/12/11/202904 https://dk521123.hatenablog.com/entry/2022/12/16/143349 https://dk521123.hatenablog.com/entry/2022/12/26/211349 などで、何回か渡って、 Snowflake の ストアドプロシージャにつ…

【Snowflake】ストアド ~ 基本編 / 条件分岐 ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/12/23/223345 で、IF文を使ったが、 どうせなら、Snowflake の 条件分岐 をまとめておけば ストアドの基本的なことは、網羅されると思うので 今回でメモっておく。 目次 【0】Snowflake での条件分…

【Snowflake】ストアド ~ クエリ結果を受け取る ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/12/23/223345 のサンプルで、 ストアド内で Countの結果を使って処理したが 詳細は、あんまりよく分からず作った。 そこで、今回は、クエリ結果を受け取り処理することを 深堀りしてみた。 目次 【0…

【Snowflake】ストアド ~ 例外 / EXCEPTION ~

■ はじめに Snowflake でデータがなかったら エラーを発生させる必要が出てきたので ストアドの例外について調べてみた 目次 【1】例外の宣言 【2】例外発生 【3】EXCEPTION ブロック 使用上の注意 【4】サンプル 例1:0件だったら独自の例外を発生さ…

【Snowflake】【トラブル】COPY INTO したがデータが格納されていない

■ はじめに Snowflake でCOPY INTO <TABLE> した際のトラブルをメモっておく。 目次 【1】トラブル概要 1)SQL文例 【2】原因 【3】解決案 案1:データロードの際に「FORCE=TRUE」を指定 案2:Tempテーブル経由でINSERTする 【1】トラブル概要 COPY INTO <TABLE> で</table></table>…

【Snowflake】Snowflake ~ トランザクション ~

■ はじめに 業務作業で、でかいデータを使っていて、 途中で止めなくてはいけない(Abort)場合に、 トランザクションを張っていたら、 ちゃんとロールバックしているかが気になったので Snowflake の トランザクションについて調べてみた。 => 結論からいう…

【Snowflake】ストアド ~ デバッグログについて ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/12/11/202904 https://dk521123.hatenablog.com/entry/2022/12/16/143349 https://dk521123.hatenablog.com/entry/2022/12/17/000217 で、 Snowflake の ストアドプロシージャ(Stored Procedure) …