Snowflake 的存储与云中的普通关系数据库(如 Azure 上的 SQL 服务器)有何不同?

How does Snowflake's storage work differently from normal relational database in the cloud, like SQL Server on Azure?

Further, how does Snowflake "columnarize" all its data?

Nothing I've read has explained it well

Snowflake 的存储层与计算分离。因此,您可以立即单独扩展和缩减计算和存储(对于较大的实例,只需几秒钟)。 Snowflake 使用一种名为 micro-partitions. You can also read more about Snowflake's storage architecture in the SIGMOD paper.

的专有存储格式

云中的普通关系数据库 - 假设它只是安装了关系数据库的虚拟机 - 与您习惯于在本地托管的关系数据库相同,但它实际上是 "lifted-and-shifted" 上云。所以它的缺点是计算和存储是紧密耦合的。这样做的痛苦在于您需要更多地提前计划您计划在最高使用日使用多少;即使不使用系统也正在充电;并且迁移到更强大的计算或存储更复杂、风险更大且更耗时。

Snowflake 中的数据被划分并存储为微分区,这些微分区是连续的存储单元。

每个微分区包含 50 MB 到 500 MB 之间的未压缩数据。

行分组在 table 上执行并映射到单独的微分区,以柱状方式组织。

https://docs.snowflake.net/manuals/user-guide/tables-clustering-micropartitions.html#what-are-micro-partitions