Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BigQuery+RedShiftの経験から見るSnowflakeの真価

 BigQuery+RedShiftの経験から見るSnowflakeの真価

このスライドは以下のイベントの登壇資料です。

SNOWFLAKE TECHNICAL ROUNDTABLE
What’s NEW in Global Technologies
〜グローバルにおけるデータ変革のトレンドをご紹介〜

Shu Murakami

December 13, 2023
Tweet

More Decks by Shu Murakami

Other Decks in Programming

Transcript

  1. BigQuery+RedShiftの経験から見る Snowflakeの真価 SNOWFLAKE TECHNICAL ROUNDTABLE What’s NEW in Global Technologies

    〜グローバルにおけるデータ変革のトレンドをご紹介〜 村上 柊 @shu22203 CARTA HOLDINGS, fluct
  2. 自己紹介 • しゅう ◦ 村上 柊 ◦ @shu22203 ◦ 新卒入社5年目

    • 好きなもの ◦ Celeste ◦ ずっと真夜中でいいのに ◦ スノボー • 嫌いなもの ◦ データがズレること ◦ CASE式で頑張ってるSQL
  3. 今まで BigQuery • 生のログ • 調査用途・速報データ用 • 雑に加工したデータを置いておける便利な場所 ◦ Looker

    Studio 便利だよね RedShift • ウェアハウス・マート層 • レポーティング・分析用途
  4. とにかくまずロード • ELT rather than ETL ◦ https://www.getdbt.com/blog/etl-vs-elt ◦ とにかくまず1箇所にデータを集めて

    からデータ加工がしたい ▪ ETL だと加工ロジックの変更で不要な再ロードが発生する • 一度ロードしてしまえば、加工は dbt に任せられる ◦ https://www.getdbt.com
  5. AWS -> BigQuery へロードする面倒さ • S3 -> GCS へインターネットを経由したファイル転送 ◦

    ネットワークコストがかかる ◦ ストレージコストも倍 • GCS のファイルを BigQuery へ MECE にロードする仕組み ◦ ロック、リトライ機構の整備 • クラウドサービスを跨いだ権限管理 ◦ GCP の IAM, みなさんうまく扱えていますか ...? • (我々の場合) BigQuery -> RedShift へレポートデータとして集計する仕組み → 管理するものが増えて辛いんじゃ〜
  6. Snowflake だと? • Snowflake 自体が AWS (GCP / Azure) で動く

    • Snowpipe ◦ https://docs.snowflake.com/ja/user-guide/data-load-snowpipe-intro • S3 へファイルが置かれると、自動的に Snowflake にロード ◦ 計測サービスは、S3 へ正しいログを置くことだけ考えればよい • ロード時にメタデータも付与 ◦ ファイル名 ◦ パーティション ◦ ロード時刻 ◦ etc • どのファイルが入ったのかも明確
  7. Redshift • 結局クラスターにデータが依存する ◦ コンピューティングとストレージが真に分離されていない • 誰かが重いクエリを投げると他のサービスへの影響が出る • Redshift Serverless

    ◦ Datashare 周りの体験があまり良くない ◦ 作り直すと共有が消えたり • system update で予期せぬ問題が発生したりする... ◦ タイムゾーンがバグでズレたこともありました ◦ https://zenn.dev/mur0jas0n/articles/b00ec06b7f45b0 • UI が Snowflake に比べてつらい(後述)
  8. Snowflake だと? • Warehouse の概念 ◦ https://docs.snowflake.com/ja/user-guide/warehouses-overview • 役割(ロール)ごとにコンピューティングリソースを確保 ◦

    loader ◦ dbt (transform) ◦ reporting ◦ developer, etc… • 使うときだけ立ち上がって勝手に落ちる ◦ サイズ x 利用時間 単位の課金でシンプル • 使う側の関心で欲しいサイズ(パワー)を決めるだけ