SnowflakeのUnistoreがすごくすごい理由

2022/08/10に公開
2

前置き

こんにちは。株式会社GENDAのこみぃです。

Snowflakeからちょっと前にUnistoreという機能が発表されました。
https://www.snowflake.com/workloads/unistore/?lang=ja

先日社内の勉強会的なアレでSnowflakeのお話をしたのですが、その時にUnistoreについては結構すごいねっていうお話になりました。

このお話は社外でも興味ある人がいそうだなということで、本日はその話をしましょう。

Unistoreとは

前述のリンクが英語なのでざっくりまとめますと、Unistoreとは

  • 分析用途でのDBとサービス用途でのDBを合わせたようなDB
  • サービスのようなトランザクション処理と、分析用途の重い集計クエリを両立してパフォーマンスを出せる

MySQLで分析用途のSQLも受けたりするのとそんなに変わらないでしょ、と思う人が多いかと思うのですが、実はこれはすごくすごいことです。

何故すごくすごいのか?

行指向と列指向

サービスに利用されるRDBと分析用途で使われるデータウェアハウスでは、データを扱う内部的な構造がそもそも違います。

サービスに利用されるRDBは 行指向 のデータベースです。
これらはデータを行単位で扱うので、少ない行に対してたくさんの処理を行うのに向いています。

これに対してデータウェアハウスは 列指向 のデータベースです。
列指向のデータベースはデータを列単位で扱うので、たくさんの行の特定の列のデータの集計には優れています。
その分、少ない行に対しての処理を繰り返すのには全く向いていません。

なので、これらの処理両方の性能を両立できているとなると、野球でいうと投手と野手を両立しているようなものです。つまり大谷翔平です。

大谷翔平はすごくすごい。みんな知ってるね?

内部的にどういう処理をしているのか気になって夜も眠れません。

データエンジニアの苦役の1つからの解放

これに加え、実はこのUnistoreはデータエンジニアを苦役から解放してくれる存在でもあります。

本番DBのデータを分析DBにも入れて参照できるようにしたい、というのは本当によくある要望の1つなのですが、このデータの同期は結構悩ましいものだったりします。
この部分の管理はデータエンジニアの苦役の1つです。多分共感してくれる方は多いのではないかと思います。

Unistoreはこの同期をどうするか考える必要がありません。なにしろ一体化したものだからです。

先日紹介したData Cloudはデータエンジニアを APIからのデータ取得という苦役 から解放するサービスでした。
https://zenn.dev/kommy339/articles/bf00fe2938a42a

ここにさらに 本番DBとのデータの同期という苦役 からの解放も実現となれば、それはもうすごくすごいとしか言いようがありません。

今後の期待

実際のところ、じゃあいきなり次のプロダクトはこのUnistoreを使おう!!みたいなお話にはならないと思います。
両立しているという触れ込みとはいえ、サービス用途のアクセスに耐えるかなどの不安はやはりありますからね。

性能を測るには大容量のデータが入る規模じゃないと意味がないが、それはスモールスタートにはできない というのが、試しでの導入を難しくしています。

ただ、今後実用例が増えていくにつれて、負荷の少ない用途であればUnistoreで構築しようみたいな流れにはなるかもしれないと思っています。
それはデータエンジニアの1つの苦役からの解放を意味しますので、諸手を挙げて賛美したいですね。

本日のまとめ

本日のまとめは以下になります。

Unistoreはすごくすごい

結びの言葉

データ基盤エンジニアは社内で人数が少ないことが多く、人知れず苦行を強いられていることがよくある職種です。
だからこそ苦行から解放されるようなプロダクトは積極的に宣伝していきたいですね。

もっと詳しいお話が知りたいという方は、私が知っている範囲ならお答えできますのでTwitterあたりでお気軽にお声がけください。
@kommy_jp

なお、株式会社GENDAでは、一緒に働くデータ関連の人材を絶賛募集中です。
興味がある方は是非お声がけください。
https://genda.jp/

本日はこのあたりで。
それじゃあ、バイバイ!

Discussion

こばこば

志向→指向です。

kommykommy

ご指摘のコメントありがとうございます。
修正させていただきました!