最初からクラウドに最適化されたアーキテクチャで登場したSnowflake
データが分散し活用できていない課題を解決するために、Snowflakeは2012年に誕生した。ちょうどクラウドが普及し始め、クラウド上に第一世代のクラウドデータベースが登場した頃だ。この第一世代は、今までオンプレミスで運用してきたデータベースを「クラウドの無限のリソースで使えるようにしたものです」とKT氏。オンプレミスのデータベースをそのままクラウドにのせたようなものが多く、クラウドに最適化されていなかったと説明する。
対してSnowflakeは、最初からクラウドネイティブなアーキテクチャで生まれた。「クラウドのリソース、をいかに効率的に使えるかを考えるところから始まっています」とKT氏。その発想から生まれたクラウドに最適化されたアーキテクチャで、まずはクラウドデータウェアハウスとしてSnowflakeは2014年にサービスの一般提供を開始する。
その後データウェアハウスだけでなく、AIのためのデータベースなどとしても利用されるようになり、2019年にはあらゆるワークロードを支えるクラウドデータプラットフォームへと進化する。その後も自社のテクノロジーを革新させつつ時代のニーズに合わせることで、2020年には組織間でデータコラボレーションができるようにDATA CLOUDへとさらに進化した。
組織においてデータドリブンな意思決定が上手くいかない大きな原因が、データのサイロ化だ。データは今、様々なところで生まれる。人事システムがあればそこで人事に関する情報が生まれ、会計や顧客管理のシステムも同様だ。それぞれの場所でシステムの目的に応じデータは加工され、システムごとにサイロ化してしまう。この「データのサイロをなくすことが、Snowflakeのアーキテクチャの原点でもあります」とKT氏。
またデータをなるべく細かい単位で格納すれば、よりリアルに近い世界を映し出せる。そのため可能な限り漏らさず記録しようとすると、扱うデータは莫大になる。システムごとに生まれた莫大なデータを1ヵ所に集めるには、加工に手間がかかり、十分な処理性能も得られずデータを上手く扱えなくなる。結果データを分けて置いたり、目的ごとに別々に保存したりするのだ。
対してSnowflakeでは、データは1ヵ所のクラウドストレージに格納する。データを処理するためのコンピューターリソースは、必要に応じていくつでも準備できるようになっている。蓄積されたデータに対するワークロードは、たとえば大量データのロード、莫大なデータに対するアドホック検索、バッチ処理による集計など様々なものがある。これまでは様々なワークロードの処理の最大値を考え、ハードウェアなどのインフラ容量を購入しセットアップし利用してきた。
Snowflakeは、実行したいワークロードごとに必要なコンピュータリソースを割り当てる。たとえば「ETLのワークロードには、必要なリソースだけを割り当てます。それを秒単位で立ち上げ、本当に必要な分だけ利用します。課金も必要な分だけです」とKT氏。また1ヵ所のストレージに格納すれば、データに対するセキュリティやガバナンスの制御もそれだけに施せば良い。これもデータ管理側面では大きなメリットとなる。Snowflakeでは現状、構造化データはもちろん、半構造化データも扱える。さらに今後は、非構造化データにも積極的に対応する予定だ。
「Snowflakeではどんなに大量なデータでも対応できます。入れたいものはすべて入れられ、ストレージサイズの上限を気にする必要はありません。蓄積した大量なデータに高速にアクセスできすぐに答えを返せます」とKT氏。SnowflakeはAWS、Azure、Google Cloudにマルチクラウド対応しており、世界中のどのリージョンでも選ぶことができる。