RAKSUL TechBlog

ラクスルグループのエンジニアが技術トピックを発信するブログです

Snowflakeの紹介とSnowCamp参加報告

こんにちは。ノバセル事業部システム開発部エンジニアの山中です。RAKSUL Advent Calendar 21日目を担当します。

今回はノバセルで導入しているSnowflakeについての紹介と、Snowflake主催のブートキャンププログラムSnowCampの参加報告をします。

「データクラウド」Snowflakeとは

Snowflakeとは、データウェアハウジング機能を中心としたデータプラットフォームで、あらゆる規模のデータを1か所に集約し、データに対する様々なタスクを優れたパフォーマンスで実施することができます。

ここでいうデータの様々なタスクには、例えば以下のものが含まれます。

  • データロード(データをウェアハウス内に蓄積する)
  • データクレンジング(データを整え、利用しやすいようにする)
  • データ分析(ウェアハウス内のデータを分析してビジネス示唆を出す)
  • データの蓄積(データを1箇所に集中管理する)
  • データの公開・共有

このように、データにまつわる多様なワークロードに対するマネージドサービスを提供しているため、Snowflakeは「データクラウド」を自称しています。

ラクスル社内ではノバセル事業部のデータ基盤として昨年より導入しています。Google BigQueryやAmazon Redshiftと比較されがちな製品ですが、Snowflakeの優れた点をいくつかご紹介したいと思います。

数億行のデータの複製が一瞬

Snowflakeでは、ゼロコピークローンという機能を利用することができ、データを複製することなく、テーブルのクローンを作成できます。

例えば、target_tableを、source_tableからデータを含めて複製したい場合、

CREATE TABLE target_table CLONE source_table

と書くと、source_tableと全く同じテーブルtarget_tableを作成できます。データを複製しないため、レコード数が億単位の巨大なテーブルであっても数秒のうちにクローンを作成できます。

この機能により、開発環境の構築・破棄がスピーディに行えたり、ロールバックが容易に行える(後述)ようになります。

任意の地点のデータへのロールバックが容易

Snowflakeでは、タイムトラベル機能というものがあります。これは、あるテーブルの任意の地点の状態を確認することができる機能です。

例えば昨日正午のテーブルの状態を確認したい場合には、

SELECT * FROM table_a AT(timestamp => '2021-12-20 12:00:00'::timestamp);

とクエリすると確認することができます。また、任意の地点でのデータを別のテーブルにクローンすることも可能なので、テーブルに対して誤った操作などをしてしまった際のロールバックにも利用することができます。例えば、

CREATE TABLE backup_table CLONE source_table AT(timestamp => '2021-12-20 12:00:00'::timestamp);
ALTER TABLE backup_table SWAP WITH source_table

と書くことで、source_tableテーブルを実質的にロールバックしたように見せることができます。タイムトラベル機能もゼロコピークローンと同じ仕組みで実現されています。

これらの機能は、マイクロパーティションと呼ばれる技術の上に成り立っており、マイクロパーティションについて詳しく知りたい方は以下のドキュメントを是非見ていただければと思います。

マイクロパーティションとデータクラスタリング - Snowflake Documentation

データの共有ができる

また、Snowflakeには、データシェアリング機能が備わっています。この機能を利用すると、企業アカウント間でデータを共有し、他社アカウントのデータがあたかも自社アカウントに存在するかのように利用することが出来ます。

企業間でデータ連携をする際に必要となる開発コストがほぼ0になるだけでなく、データの更新がリアルタイムに反映されるため、データの鮮度の向上にもつながります。

さらに、データを販売するプラットフォーム「Snowflake Data Marketplace」も提供されています。

Snowflake Data Marketplace | Access Live, Ready-to-Query Data

この機能は、Snowflakeのスローガン「Mobilize the world's data」(欲しいデータを欲しい時に使える)を実現する上でもっとも中心的な存在となっています。

上記以外にもSnowflakeには優れた点があります。Snowflakeの特徴について詳細を知りたい方は、以下のData VIz Labさんのブログなどをご覧ください。

【徹底解説】次世代データウェアハウス"snowflake"の特徴

SnowCampとは

ノバセルで導入しているSnowflakeですが、Snowflake日本法人が主催するブートキャンププログラムSnowCampに第1期生として参加してきました。

どんなプログラム?

SnowCampは、講義やディスカッションを通じて、以下の3つの目的を達成することを目指すプログラムとなっていました。

  • Snowflakeの技術や環境を正しく理解し利用するためのスキルを習得する
  • データドリブンな世界を実現していくためのビジョンを言語化できるようになる
  • 同じ理想を持ったネットワーク・コミュニティの形成

全4回のプログラムとなっており、自分を含め、8社から1人ずつが参加する形式になっていました。

Snowflakeの技術・機能に関する講義はもちろん、それらの機能を利用して自社のワークロードの改善案を考えたり、他社のデータと組み合わせどのようなビジネス価値を生み出せるのか、といった実践的な内容をディスカッションベースで考えていきました。

何を得られたか

データドリブンな意思決定を支えるための施策が提案できるようになった

ノバセルは「マーケティングの民主化」に向けて、TVCMマーケティングにおけるデータドリブンな意思決定を支援するサービスを展開しています。

Snowflakeは、このデータドリブンな意思決定を支えるためのプラットフォームです。Snowflakeを用いてどのようにノバセルの事業成長を支え、牽引していくことができるのか、講義やディスカッションを通じて解像度を高めることができました。

SnowCampで学んだことをベースにして、短・中期的な改善施策を提案していくことができるようになりました。

他社における取り組みを知り、ノバセルの強み弱みを認識できた

新卒として入社し半年ほど働いてきましたが、コロナ禍ということもあり、社外の方と関わる機会があまりありませんでした。

その中で、SnowCampは他社の取り組みについて深いところまで話を伺い、ディスカッションする機会になりました。

他社で行っている取り組みの中でノバセルでも取り入れていきたいことや、逆にノバセルだからこそやりやすいことなどが分かり、ノバセルの立ち位置を理解することができました。

井の中の蛙にならないよう、今後も積極的に社外の方と交流していこうと考えるきっかけになりました。

さいごに

今回は、ノバセル事業部において利用しているSnowflakeと、SnowCampプログラムについて紹介させていただきました。一緒に参加した他社様、招待いただいたSnowflake様、自分を送り出してくれたチームメンバーの皆様に感謝いたします。

また、ノバセルにおけるSnowflakeの活用事例も近いうちに紹介していこうと思いますので、お楽しみに!

先日開催されたSnowflake公式イベントSNOWDAYでも、ノバセルにおける活用事例を紹介しているので、是非ご覧ください。

https://www.snowflake.com/snowday-japan/?utm_source=dm2&utm_medium=email&utm_campaign=mick

(SNOWDAYへの登録が必要となります)

ーーーーーーーーー

ラクスルでは、エンジニア・データサイエンティストを募集中!

データ関連技術を活用して事業貢献に成長したい方から、カジュアルに話を聞いてみたい方までぜひご応募お待ちしております!