snowflake数据仓库调研郭大侠1

auth:guochaoquncreatetime:2021-06-18

“Snowflake是将基础软件的服务,从传统的To-B的销售,变成了如同快消品一般,通过云原生一改数据仓库积弊;

纯粹的SaaS服务体验。用户不需要购买机器、雇佣数据库管理员或安装软件。用户要么已经在云中拥有数据,要么上传数据。然后,他们可以使用Snowflake的图形界面或ODBC等标准化接口立即操作和查询数据。与其他数据库即服务(DBaaS)产品不同,Snowflake的服务覆盖了整个用户体验。用户无需调优,无需物理设计,无需存储整理任务。

关系型。Snowflake几乎完整的支持了ANSI的SQL和ACID的事务。大部分的用户几乎无需改动或者很小的改动就能迁移已经存在的工作内容。

半结构化和schema-less。Snowflake提供了用于遍历、展平和嵌套半结构化数据的内置函数和SQL扩展,并支持JSON和Avro等流行格式。自动模式发现和列式存储使得对schema较少的半结构化数据的操作几乎与对普通关系数据的操作一样快,而无需用户额外的操作。

弹性。公有云平台几乎能够按需提供无限的计算和存储资源,存储和计算资源可以独立无缝地扩展,而不影响数据可用性或并发查询的性能。

高可用。Snowflake能够容忍节点,集群,甚至全部的数据中心失败。在软件和硬件更新的时候不会下线。

持续性。Snowflake的设计具有极高的持续性,可防止意外数据丢失:克隆、下线和跨区域备份。

经济节约。Snowflake具有很高的计算效率,所有的表数据都被压缩。用户只为他们实际使用的存储和计算资源付费。

安全。所有数据包括临时文件和网络流量都是端到端加密的。没有用户数据暴露在云平台上。此外,用户能够基于角色在SQL级别执行级别细粒度的访问控制。

作为SaaS,Snowflake技术完全通过Internet与客户共享。它使用基于公共云的基础设施与客户联系。

这些服务通过RESTful接口进行通信,分为三个体系结构层:

VirtualWarehouse概念

虚拟仓库:虚拟仓库层由EC2实例集群组成。每个这样的集群通过一个称为虚拟仓库(VW)的抽象呈现给用户。

每个虚拟仓库都是一个MPP(大规模并行处理)计算集群,该集群由Snowflake从云提供商分配的多个计算节点组成。

在以VW为虚拟分布式集群,可以添加多个资源相同的EC2实例计算节点

VW层弹性

可以按照需求创建、销毁或者在任意时刻改变大小。创建或者销毁一个VW对数据库状态没有任何影响。

当没有查询时候,用户可以关闭所有的VW资源(默认10分钟没有使用自动挂起,要使用时立马恢复)。

multi-cluster,如下图,我们可以看到一个VW中可以配置多个相同配置的集群,以此增加并发度;

标准的策略:

即发现有查询排队时,立即新增启动集群;

执行几次后会判断是否可以将负载最少的集群上的负载分配到其他集群,而无需再次启动集群

每个查询只在一个VW上运行

VW查询处理

使用的亚马逊S3云盘,共享存储,可以无限扩容;

AWSS3就是一个网络传输文件的工具,可以理解为命令行操作的百度云盘

存储

列存储压缩列:数据加载到Snowflake后,Snowflake会将数据重组为内部优化的压缩列式格式,然后存到云;

向量化执行:(简单理解为就是消除程序循环的优化)与MapReduce(分布式计算)相比,Snowflake避免了中间结果的物化。相反,数据是以pipeline方式处理的,每次以列成批处理几千行。这种方法由VectorWise(最初是MonetDB/X100)首创,这能节省了I/O并大大提高了缓存效率。

基于push的执行:(简单理解为列筛选、条件过滤等操作在更接近存放数据的层面完成)关系运算符将结果推送到其下游运算符,而不是等待这些运算符拉取数据(经典的火山式模型)。Push-based提高了缓存效率,因为他消除了循环中的控制逻辑。它还使Snowflake能够高效地处理DAG形式的计划,而不仅仅是树的结构,从而可能更好的采用共享和管道化的方式利用中间结果。

数据组织形式:Snowflake管理着如何存储此数据的所有方面-Snowflake处理数据的组织,文件大小,结构,压缩,元数据,统计信息以及其他方面的数据。Snowflake存储的数据对象不直接可见,客户也无法访问;它们只能通过使用Snowflake运行的SQL查询操作进行访问。

从业务角度来说

从性能、形式角度来说

一般情况下一个AZ(Amazonavailabilityzones),由多个相邻DataCenter组成

以AZ为运行单位:

如果发生完全的AZ故障,那么在该AZ的给定VW上运行的所有查询都将失败

并且用户需要在不同的AZ中主动重新配置VW,由于完全的AZ故障是真正的灾难性和极为罕见的事件,我们今天接受这种部分系统不可用的情况,但希望在将来解决它。

传统数仓:计算和存储耦合

shared-nothing架构

优点:

缺点:

数据量未必均匀:因为我们需要提前把数据分布到各个节点,而每个节点都只对自己拥有的数据负责

异构工作负载:虽然硬件是同样的,但工作负载通常不是。对于大容量加载(高I/O带宽,轻计算)来说,理想的系统配置不适合复杂查询(低I/O带宽,重计算),反之亦然。因此,硬件配置需要在平均利用率较低的情况下进行权衡。

节点关系变化:因为我们是需要提前把数据分布到各个节点,如果增加、删除节点,那么就要对数据分布进行重新洗牌(以便新节点可以发挥,或者删除节点后其他节点接收过来后可以相对分布较为均匀,才不会使得性能和数据分布出现极大不均衡)这种数据量一大则会引起大量带宽占用以及其他资源占用;

无法单独的增加计算资源和存储资源:

害怕木板短筒:所谓木桶的短板,遇到后整个engine的性能下降到该短板机器的能力这也是为什么MPP架构不适合异构的机器,要求各节点配置一样。

在线升级:虽然通过副本机制可以在一定程度上减轻节点关系变化更改的影响,但软件和硬件升级最终会影响系统中的每个节点。原则上是可能的,一个又一个节点在没有任何系统停机的情况下进行升级。但是由于所有节点都是紧密耦合的,并且都是同质的,这使得实现在线升级变得非常困难。

【3】中就说一说,snowflake是怎么优化解决shareddisk&sharednothing的缺点,合理利用优点的;

如【2.3】所说,使用了共享存储,那么共享存储必定是没有shared--nothing把数据分布式存储在各个节点的盘下效率高

snowFlake解决了传统数仓的痛点,但这种形式也丧失了传统数仓shared-nothing的优点,无法分布式高效访问磁盘数据;

可以说,这是它的缺点;但它有其他方式来解决这个问题;

所有表格文件在存储的时候,被横向切割成N块,然后每一块用列式存储文件块;

文件拆分与压缩:表被水平地划分成大的、不可变的文件,这些文件相当于传统数据库系统中的块或页。在每个文件中,每个属性或列的值都被分组在一起并进行了大量压缩,这是一种普遍采取的方案

标头(header):每一个文件块/表文件都有一个header标头,其中包含文件中每列的偏移量offset以及其他元数据(metadata)

部分文件请求:因为S3允许对部分文件执行GET请求,所以查询只需要下载文件头和它们需要的列。

Metadata存储:例如目录(catalog)对象,table由哪些s3文件组成,统计,锁,事务日志保存在一个kv存储里面,这个kv存储作为CloudServiceslayer一部分。

最大亮点:弹性

数据共享

SaaS体验

分离计算和存储为您提供灵活性。它基本上可以说不需要DBA参与,因为它不需要任何性能调优。我们并没有真正进行任何性能调优,性能调优和SQL调优的全部负担都在Snowflake上。

它的易用性非常好。我不需要增加任何用户,而且它的入门更容易。您只需加入用户,就完成了。有简单的SQL和UI以及非常多的连接方式;人们可以轻松使用此解决方案。

共享和协作:

ETL

半结构化数据处理schema-less

以VARIANT,ARRAY,OBJECT拓展SQL类型

VARIANT类型可以存储任何SQL中的类型(DATEVARCHAR等)VARIANT列可以用作连接键、分组键、排序键,这使得可用于ETL用户可以从json、avro、xml格式转化为variant列

在线升级

升级的时候,首先部署新版本的服务,与老版本的服务并行,之前已经运行的请求,可以允许在之前的版本上运行完,一定所有的用户和请求在之前的版本上运行完,老版本的服务被终止和解散。

上图显示了这样的一个2个版本的VW同时允许的状态,上面有2个版本的cloudservice和virtualwarehouse,他们各自选择不同的服务。

这点非常重要,重要是能够支持快速迭代,但是对于传统数据库来讲非常难做到,因为传统的数据库都是有状态的,而snowflake的状态都保存在kvstorage,所有他除了kvstorage。

过于云依赖:依赖于Azure、AWS、GCS。每当这些云服务器之一发生独立中断时,支持就可能成为问题。

不支持地理空间数据:目前没有提供很多处理地理空间数据的选项。也许这在他们的计划中。

不支持非结构化数据:它目前没有支持非结构化数据的选项。也许他们很快就会添加。

连续加载数据限制:将数据从数据文件迁移到Snowflake文件时,有很多关于批量数据加载的支持和指导。如果需要连续加载,用户仅限于Snowpipe。

选中某个VW,调整大小、自动挂起策略、最大最小集群等等

可以创建各种报表,图标里面可以设置各类查询、报表样式等等

THE END
1.盈利模式搭建“护城河”,Snowflake将“高枕无忧”?但是,在Snowflake的“以行业为重”点的市场策略下,它为特定的商业解决方案提供服务,包括金融服务数据云,媒体数据云,医疗保健和生命科学数据云,以及零售数据云,再加上其有吸引力的基于消费的收入模式,客户在采用以前被视为复杂和昂贵的软件解决方案时,可以获得更低的门槛。 http://cdn.modb.pro/db/569874
2.硅谷风投推荐的2024人工智能创业公司(内含商业模式)入选原因:2022年,Mutiny 完成了由 Tiger Global 和 Insight Partners 共同领投的5000万美元融资,估值达到6亿美元。据TechCrunch报道,Sequoia Capital 和 Cowboy Ventures 也参与了融资,其客户包括 Snowflake、6sense 和 Qualtrics。 艾琳·李指出:“大多数市场团队无法有效地打破与目标客户的障碍,因为有效的1:1营销策...https://www.360doc.cn/article/47115229_1133747381.html
3.2023年《财富》未来50强在公共云和一些人工智能项目的认证上,它也处于业界领先地位。因此,Snowflake公司的增长势头相当迅猛。据分析师估算,该公司本财年的收入将达到27.5亿美元,较上年增长33%。虽然它的股价目前还远低于2020年9月刚刚IPO时的泡沫峰值,但该公司拥有稳健的现金流,这也说明它具有较好的投资回报和持续增长前景。http://www.sxhhy.com/20/6596.html
1.新产品有望扭转颓势Snowflake最新业绩指引超预期Snowflake(SNOW.US)公布了好于预期的销售前景,表明新推出的产品受到了客户的热烈欢迎。财报显示,Snowflake2025财年第三季度营收为9.42亿美元,同比增长28.3%,超出市场预期的8.98亿美元;非公认会计准则下,每股收益为0.20美元,高于市场预期的0.15美元。 该公司第三财季产品收入增长 29%,达到 9.003 亿美元,而平均预期为...https://usstock.jrj.com.cn/2024/11/21101745512207.shtml
2.2023年度盘点数据库商业模式系列:Snowflake篇自2012年诞生以来,Snowflake创造了史上最大的软件IPO,目前市值约640亿美元,峰值一度突破千亿美元大关。其成功轨迹已成为国内众多数据库和大数据企业追逐的典范。 Snowflake的故事表明,即使在已有许多巨头占据的市场,仍有空间进行创新和创业。而研究Snowflake的商业模式是为了寻求数据库市场突破的答案。如何在内卷的数据库...https://blog.itpub.net/11310314/viewspace-3002077/
3.寻找中国的SnowflakeSnowflake商业模式上的创新,就是针对数据仓库的遗留痛点,利用其云端原生性的优势,采取计算、存储分离的架构,支持计算、存储节点单独扩展,为客户提供了灵活、细化的方案——在谈到Snowflake的突破之处时,黄东旭表示Snowflake做到了“缩短了价值交付的链条,并且将价值交付本身变得标准化”。 https://36kr.com/p/916484323816704.html
4.被巴菲特看中的Snowflake,是怎样深刻改变云计算产业的?与投资苹果类似,巴菲特看重的或许也不是Snowflake的科技属性,而是智能时代生产生活的必需品——数据分析的消费属性,只是买单者变成了企业。 Snowflake的竞争壁垒 技术架构、商业模式构成了Snowflake的核心竞争力,而“中立性”则构筑起Snowflake的竞争壁垒。 https://chuangke.aliyun.com/city/vanke-wanchuang/portal/industry-news/1326400369763987457.html
5.巴菲特参与打新的Snowflake,成史上IPO规模最大的软件服务公司不过,值得注意的是,从史上最大市值的软件上市公司,到其备受推崇的商业模式,Snowflake近来可谓赞誉不断。赞誉之下,也意味着竞争与风险。 目前,Snowflake公司虽然依靠亚马逊、微软(MSFT.US)和谷歌(GOOGL.US)的基础架构来存储数据,但同时还与这些供应商存在竞争关系。 https://www.tmtpost.com/4748918.html
6.096Snowflake:云端的弹性数据仓库技术与商业案例解读Snowflake是一家基于云端构建的弹性数据仓库公司,由数据库专家创立。其产品基于亚马逊的AWS,实现存储和计算分离,支持SQL1998和SQL2003的分析函数,但不支持索引。面临亚马逊Redshift的竞争,Snowflake在西雅图成立分部,以拓展市场。然而,其商业模式面临云厂商竞争的挑https://time.geekbang.org/column/article/10059
7.平台商业模式简而言之——FourWeekMBA一个平台商业模式通过启用交互产生价值人、组和用户之间通过利用网络效应. 平台商业模式通常包括两个方面:供给和需求。 启动这两个方面之间的互动是平台的关键要素之一商业模式成功。 从产品到互动 在一个平台商业模式,组织从提供产品转变为为这些交互创建生态系统。 这种转变对于了解平台...https://fourweekmba.com/zh-CN/%E5%B9%B3%E5%8F%B0%E5%95%86%E4%B8%9A%E6%A8%A1%E5%BC%8F/
8.Snowflake(SNOW.US)使用量面临挑战Stifel大砍目标价至120美元智通财经APP获悉,周四,Stifel分析师Brad Reback将Snowflake(SNOW.US)目标价从240美元下调了50%,降至120美元。他指出,尽管Snowflake第一季度的“略高于预期”,自由现金流利润率超过40%,但严峻的环境导致使用量下降。 此前该公司公布的第一季度业绩低于预期,促使一些分析师下调了股价目标,甚至质疑其商业模式。Reback写...http://img2.zhitongcaijing.com/content/detail/729686.html
9.LTIMindtree与Snowflake加强共同承诺,助力企业加速AI的采用...新泽西州沃伦和印度孟买--(美国商业资讯)--全球技术咨询和数字解决方案公司LTIMindtree[NSE: LTIM, BSE: 540005]今天宣布在Snowflake AI Data Cloud上推出LTIMindtree的尖端企业级AI平台Canvas.ai。这项新的集成进一步增强了LTIMindtree的AI功能,释放了无与伦比的灵活性并加快了开发,使我们的客户能够充分利用AI的力量...https://www.businesswirechina.com/zh/news/57227.html
10.全面了解Avalanche:产品商业模式热门项目及与其他L1和L2的...然而,早期协议(Snowflake、Snowball 和 Avalanche)背后的原始研究团队于 2018 年以化名“Team Rocket”浮出水面。在秘密运行一年多后,该项目开源。第一个测试网于 2020 年 4 月启动,Avalanche 主网最终于 2020 年 9 月启动——包含 Avalanche 的三个互操作链:P-Chain、X-Chain 和 C-Chain。 根据Emin Gün ...https://www.528btc.com/news/116149853.html
11.美股年度最大IPO凭什么是它?正是如此,一位行业观察人士预测,如果胜过竞争对手甲骨文,Snowflake的股价可能会从目前的水平翻倍。 有利又合理的独特商业模式 根据招股书,Snowflake2020财年(截止至2020年1月31日)营收为2.65亿美元,同比增长174%;而到2020年7月31日,其营收达到2.42亿美元,同比增长达到133%,预计全年营收超过5亿美元。 https://m.thepaper.cn/newsDetail_forward_9243185
12.对话云器科技CTO关涛:打造中国版“Snowflake”,经济低迷时期...关涛:从商业模式来看 Snowflake 有几个特点。首先它是多云的商业模式,基础设施在云上,我们希望按这个模式来做。其次它是SaaS模式,用户无需关心技术细节,上手简单,我们也是一样的定位。所以我们与 Snowflake 的商业模式、产品理念基本一致,我们希望填补中国在这方面的空白,满足愿意用 SaaS 化的多云平台的企业需求。 https://cloud.tencent.com/developer/article/2311339
13.硅谷揭秘:开源如何选择商业模式并构建护城河?在探讨开源产品的商业模式、构建护城河的策略,以及大型语言模型(LLM)对开源界的影响时,我们进入了一个既复杂又细腻的话题领域。开源,作为一种推动技术创新和社区合作的力量,其商业模式多样,从提供专业支持和服务,到构建围绕核心开源项目的企业级产品。 而在构建护城河方面,关键在于如何利用开源的独特价值和社区力量,创造...https://blog.csdn.net/kaiyuanshe/article/details/138830273
14.中国版的Snowflake?独角兽云数仓SelectDB性能跃居全球第一SelectDB 是否可以成为中国版的 Snowflake,成为新一代云数仓的典范? 任何一家公司的诞生,都是怀抱着一个理想,SelectDB 也不例外。就像它的名字,容易让人联想到 Select 指令,这也是数据库中最常用的指令之一,代表选取数据。所有的分析都要先从选取数据开始,因此 SelectDB 这个名字蕴含着新起点的意味,代表云数仓已经...https://www.iyiou.com/news/202210131036672
15.AI风投的“第一波低谷”来了:盈利模式在哪里?如何战胜巨头?由于盈利模式不确定,一些公司已经对于向生成式人工智能的投资提出了怀疑。数据公司Snowflake首席执行官Frank Slootman在八月份的财报电话会议上说: 我们不能在没有商业模式的情况下就进军人工智能。 很多高管把对语言模型的尝试描述为实验性的、探索性的,他们有点想知道这是一个多大的“面包盒”。 https://wallstreetcn.com/articles/3696835