Slide 1

Slide 1 text

Snowpipeの良さを5分で語るよ Snowflake女子会#3 2024.12

Slide 2

Slide 2 text

2 庵原 崚生(Takaki Ihara) 株式会社primeNumber シニアデータエンジニア primeNumber1人目のデータエンジニア → JTC SIerのフロントエンドエンジニア 先週ジムでぎっくり腰になって療養中 ポケポケのやりたい

Slide 3

Slide 3 text

会社概要 3 株式会社primeNumber 代表取締役CEO 田邊 雄樹 2015年11月 約105名 約34億円 東京都品川区上大崎3丁目1番1号 JR東急目黒ビル5F 会社名 代表 創業 メンバー数 累計調達額 オフィス © primeNumber Inc.

Slide 4

Slide 4 text

あらゆるデータを、 ビジネスの力に変える。 人とAIが共存する時代に。 知の源泉となるデータを、 誰もがすばやく、自由に使えるように。 primeNumberは、テクノロジーの力で データ活用における不自由をなくし、 あらゆるデータを、ビジネスの力に変えていく。 そして、それまでの常識や産業の枠を超えて、 さまざまな人や企業、技術、アイデアとつながり、 まだない価値を共に生み出していく。 私たちは、人とデータの開かれた関係を築くことで、 人の創造力を解放し、 世界中のビジネスと社会全体の可能性を拡げます。 VISION 4 © primeNumber Inc.

Slide 5

Slide 5 text

5 さてみなさん、 Snowpipe。使ってますか?

Slide 6

Slide 6 text

6 もしかしてご存知ない?

Slide 7

Slide 7 text

7 伝授しましょう

Slide 8

Slide 8 text

8 Snowpipeとは? 例えば、CSVファイルをSnowflakeに入れたい時にどうするか? SnowSQL Snowsight

Slide 9

Slide 9 text

9 Snowpipeとは? 例えば、CSVファイルをSnowflakeに入れたい時にどうするか? SnowSQL Snowsight 手動でファイル連携するのは結構面倒!! とはいえOSS採用するにもSaaS契約するにも大変!!

Slide 10

Slide 10 text

10 そんな時のSnowpipe

Slide 11

Slide 11 text

11 改めて、Snowpipeとは? Snowflakeに対して、継続的なデータロードを行える仕組み → S3やGoogle Cloud Storageなどのクラウドストレージ(外部ストレージ)にファイル が格納されたら、Snowflakeに通知が飛び、勝手にテーブルにファイルデータが格納され る Continuous ingestion, and data streaming

Slide 12

Slide 12 text

12 ざっくりいうと データ取り込みを“勝手に” やってくれるヤツです

Slide 13

Slide 13 text

13 何が嬉しいの? ● 管理が必要最低限になる ○ データロードのコンピューティングリソース ■ サーバレス ○ 転送タイミングの調整が不要 ■ メッセージングキューの利用 ■ ニアリアルタイム連携 ■ SimpleIngestManager(後述) ● データパイプラインとしての堅牢性 ○ 冪等性の担保 ○ 1度ロードしたファイルは14日間ロードできない ● コストの納得感 ○ ベストプラクティスに則ればコストを最小限にできる ■ ファイルサイズ

Slide 14

Slide 14 text

14 働きすぎなデータエンジニアの 強い味方

Slide 15

Slide 15 text

15 Snowpipeを使っていない世界線(おおげさ) またエラー出た... クリスマスに残業か… 毎日バッチジョブの 結果を見て手動で修正... 疲れた...

Slide 16

Slide 16 text

16 Snowpipeを使っている世界線(おおげさ) Snowpipeが 働いてる間に一服 データをS3にあげたら あとは勝手にやってくれる

Slide 17

Slide 17 text

17 Snowpipe、使いたくなりません?

Slide 18

Slide 18 text

18 私が組んだ実例も授けましょう

Slide 19

Slide 19 text

19 Snowpipeを使った実際の例 Excelのダウンロードを画面上でしか行えないサービスを スクレイピングツール(Selenium)を用いて開発した話

Slide 20

Slide 20 text

20 Snowpipeを使った実際の例 Excelのダウンロードを画面上でしか行えないサービスを スクレイピングツール(Selenium)を用いて開発した話 ⭐Point⭐ ● 後続処理の起動タイミング に合わせるために、あえて 自動データロード機能を 不採用 ● SimpleIngestManagerとい うPythonライブラリを用い てSnowpipeを制御 ● 諸々のデプロイメントは Terraformを利用

Slide 21

Slide 21 text

21 とはいえ注意点もあります

Slide 22

Slide 22 text

22 Snowpipeを使う上での注意点 便利だけではないよ、Snowpipe ● 監視は必要 ○ COPY_HISTORYなどを用いた監視 ○ エラー時はNOTIFICATION INTEGRATIONを用いた通知管理(メール・Slack) ● ファイルサイズの最適化が必要 ○ 1ファイルあたり100MB ~ 250MBが最適 ○ 同じデータ量でもファイルサイズが小さいとコストが跳ね上がる 出展: Snowflake Snowpipe: The Definitive Guide (2024)

Slide 23

Slide 23 text

23 正しく使って 良いデータエンジニアリングライフを

Slide 24

Slide 24 text

24 参考記事 めっちゃ助かる。Snowflakeコミュニティの成熟度に感謝。 ● Snowpipe によるファイル取り込みを AWS Lambda から動かしてみる ○ LambdaからSimpleIngestManagerを用いてSnowpipeを制御方法の指南書 ○ Terraformでのデプロイ前提なのが嬉しい ● Snowflake Snowpipeを本番導入する前に読むやつ ○ 「At least once」との付き合い方について説いている ○ 本番導入に際して、気をつけるべき点がどこかを包括的に説明

Slide 25

Slide 25 text

25 最後に宣伝 一緒に働いてくれる方、探しています!👀 ● データエンジニア ● データストラテジスト ● その他の職種について(全ての求人一覧) ● primeNumberリクルートサイト

Slide 26

Slide 26 text

Thank you!