TECHSCORE BLOG

クラウドCRMを提供するシナジーマーケティングのエンジニアブログです。

Data Polaris Bootcamp 参加報告

ご縁があって、「Data Polaris Bootcamp」というSnowflakeを学ぶ企画に参加しました。この記事では、企画の概要を紹介するとともに、参加して得られた知見、感想について書き留めます。

桂川 大輝(カツラガワ ダイキ)
プロダクトのバックエンドや機械学習を扱う機能の開発を担当しています。


Snowflakeとは?

SnowflakeとはSnowflake株式会社(以下、Snowflake社)が提供するクラウドサービスです。

www.snowflake.com

Snowflakeはデータクラウドというグローバルネットワークを提供しています。データクラウドはデータを管理するプラットフォームとデータとして取り扱われるコンテ ンツで構成されます。当社では、データウェアハウスとして活用し、当社のCRMシステムであるSynergy!と組み合わせて、データドリブンな施策を実施するソリューションの開発をしています。

Data Polaris Bootcamp

概要

Data Polaris Bootcamp(旧SnowCamp)とは、Snowflake社が主催の企画です。以下3つの力を得ることを目的としています。

  1. 環境や技術(Snowflake)の特性を正しく理解しているスキル
  2. データドリブンな世界のビジョン
  3. 同じ理想をもった人たちの強力なネットワーク

期中、指定された条件を満たすと「Data Polaris」と認定されます。以後、Snowflakeが主催するイベントやネットワーキング企画などに優先的に招待していただけるようです。

コンテンツ

Data Polaris Bootcampのコンテンツは大きく以下の要素で構成されています。

  • 講義
  • ディスカッション
  • 社内外へのアウトプット

以下の日程で講義、ディスカッションが実施されました。

日程 講義 ディスカッション
2022/8/10(水) データ利活用に関する技術の歴史〜データクラウドの誕生
マイクロパーティション
あらゆるワークロードが1箇所で完結できる意義
データウェアハウス
セキュリティ・ガバナンス
パフォーマンスチューニング演習
2022/8/17(水) データウェアハウス(続き)
データエンジニアリング
Snowflakeにおけるコスト最適化
理想のデータプラットフォーム(その1)
2022/9/7(水) データレイク
データサイエンス &機械学習
コラボレーション
卒業生による特別講演
理想のデータプラットフォーム(その2)
みんなのデータをかけ合わせて新たなビジネスを創出
2022/9/13(火) サイバーセキュリティ
アプリケーション
ユニストア卒業生による特別講演
アプリケーション共有で新たなビジネスを創出
データがモビライズされた世界の姿
2022/9/30(金) 成果発表(自社内で使用しているワークロードは何か?
また、今未使用のワークロードを実行したらどんなビジネスインパクトがあるか?/今後のSnowflake利用の展開についてのプラン
どんなデータがあったら自分の組織の意思決定をよりよくできるか?)

他社の参加者とオンラインもしくはオフラインで集まり講義を受講し、議論をします。今回の参加者は、様々な業種、職種のSnowflakeの利用者が12名でした。また、参加者の方々が扱っているデータの内容や形式、データ分析基盤における課題などは多岐にわたります。そのため、業界や職種で共通する部分や特徴となる部分を整理したりと、社内ではできない有意義な議論となりました。

社内外へのアウトプットについて、例えば以下に挙げるようなことを各人で実施します。

  • Snowflake関連イベントに登壇
  • 社内勉強会の開催
  • 社内報の配信

アウトプットにより自身の理解が深まり、周囲の方にとっての先導役(Polaris)になるわけです。

それに加え、参加者が交流できるコミュニティを提供していただいています。そこでは、上述したコンテンツについてやSnowflakeについての相談等ができます。

以上の企画への参加により、Snowflake自体やデータ分析基盤についての理解を深めることができました。また、社内でのSnowflakeの活用の現状についても、さらに理解を深めることができました。

コミュニティで得られた知見

Snowflake自体やデータ分析基盤、社内でのSnowflakeの活用の現状について理解が深まったことにより、改めて、現状で改善できそうな点、今後のために把握しておきたい疑問点などを社内のメンバーと整理することができました。それに加え、相談できる場としてコミュニティが提供されているので、他社の参加者に質問し、様々な意見をいただき、当社における改善や今後の検討につなぐきっかけとできました。当社では未経験のことでも、コミュニティでは経験がある参加者がおりまして、私にとっての先導役(Polaris)になって頂きました。以降、印象に残っている知見を以下に書き留めます。

TerraformによるSnowflakeのInfrastructure as Code(IaC)の実現

Snowflakeのリソースの定義や設定は設定は基本的にGUIの操作により実施します。それに加えて、構成管理ツールの一種であるTerraformでは、Snowflakeのproviderが存在しており、IaCの実現も可能です。これにより、構成に関する情報をGitで管理し、コマンドによるデプロイも可能です。

registry.terraform.io

Snowflakeを含むデータ分析基盤全体の改善事例

Snowflakeでは、タスクによりDAG(有向非巡回グラフ)で表現できるようなワークフローの定義が可能です。しかし、一部のSnowflake利用者における共通の課題として、タスク数が多くなると管理が困難になるという点が挙げられました。そこで、タスクを他の製品へ代替するといった選択肢などが考えられます。要件によって選択は様々ですが、その中でも、データの取り込みとしてfivetran、データの加工としてdbtが比較的多く採用されていることが分かりました。以下は、コミュニティの参加者から共有してもらった記事で、様々な組織におけるデータ分析基盤の構成が紹介されています。こちらからも、fivetranやdbtはデータ分析基盤の多くで使われているようです。

dev.classmethod.jp

Snowflakeのステージング環境の実現方法

Snowflakeの契約1件に対して、本番環境およびステージング環境の実現が可能です。具体的には、1件の契約に対して複数のアカウントの作成が可能です。つまり、ステージング環境と本番環境とで異なるアカウントを割り当てることが可能です。この時、先に紹介したTerraformを使うことで、2つのアカウントで同じ環境を構築することが簡単にできます。

この時、「ステージング環境でも本番と同様のデータで検証したい」という要望が考えられます。これは、Snowflakeの機能であるSecure Data Sharingにより、本番環境のデータをステージング環境に共有することで実現が可能です。アカウント間で共有されるデータベースは読み取り専用なので、本番環境への影響はありません。また、データベースへの書き込みや削除、定義自体の変更を検証したい場合は、別途クエリにより共有したデータをコピーすることで実現が可能です。

感想

Data Polaris Bootcampに参加したことで、様々な知見を得ることができました。最大の成果は、相談できるコミュニティに参加できたことだと感じています。社内の今後に活かせそうな知見を得るきっかけになったためです。

期中、Snowflakeが「データをモビライズした世界」を目指していることを教わりました。これは、データの民主化、つまり、誰もがデータを主体的に使える状態を実現することで、より多くの意思決定をデータドリブンなものにすることを意味します。シナジーマーケティングにおいては、データに基づき、より良いマーケティングの施策の設計や実施が可能になります。今回の学び自体や本記事も、主にデータ分析基盤についてですが、これらの先には、より多くの「データドリブンな意思決定の実現」が存在することを意味します。そんな世の中に貢献するために、今後も、期間中に得た知見を社内で共有し、データドリブンな意思決定につなげていきたいと思います。

シナジーマーケティング株式会社では一緒に働く仲間を募集しています。