Snowflake数据平台五大特性解析

Snowflake数据平台与传统的本地关系型数据库管理系统相比,拥有许多独特的特性。本教程将介绍开发者在Snowflake数据平台上实施解决方案前必须了解的五大特性,并提供快速示例。如果是Snowflake的新手,建议先阅读文章。

Snowflake中的阶段

阶段是用于存储数据的位置。数据从阶段加载到Snowflake表中,也可以从Snowflake卸载数据。阶段分为以下几类:

a. 内部阶段:需要加载到Snowflake的数据存储在Snowflake内部。

b. 外部阶段:需要加载到Snowflake的数据存储在Snowflake外部,例如AWS S3。使用外部阶段可以查询AWS S3中可用的文件。

内部阶段进一步细分为:

a. 用户阶段:默认创建,特定于该用户。如果用户想要从本地加载数据到多个表中,可以使用此阶段。

b. 表阶段:创建表时默认创建,特定于该表。

c. 命名阶段:可以由显式创建。

-- 深入了解阶段的实践操作,请查看文章

Snowflake中的时间旅行

还记得老电影中的时光机吗?可以回到过去,看看世界。Snowflake提供的时间旅行功能与之类似。

时间旅行可以定义在数据库、模式、表等对象上。可以看到表的历史数据的时间长度由数据保留期参数定义。默认情况下,所有版本的所有对象都设置为1天。

对于企业版和业务关键版,可以将此参数扩展到90天。

使用“DATA RETENTION PERIOD”参数设置对象上的时间旅行选项。一旦超过时间旅行持续时间,对象将进入故障安全区域。当对象处于故障安全模式时,如果需要检索此对象,则需要联系Snowflake本身。

-- 时间旅行示例 create or replace table T_EMP_DETLS (empid number,empname varchar) data_retention_time_in_days=4; insert into T_EMP_DETLS values(1,'Micheal'); -- 其他插入操作

Snowflake中的零拷贝克隆

在典型的关系型数据库管理系统中,当从一个数据库复制表到另一个数据库时,表和数据也会被复制,这意味着数据被复制了两次,存储也更高。

-- 克隆表示例 create or replace table T_EMP_DETLS_CLN clone T_EMP_DETLS; -- 创建数据流示例 create stream st_emp_dtls on table T_EMP_DETLS; insert into T_EMP_DETLS values(8,'Arnold'); -- 创建任务示例 CREATE TASK T_TASK1 WAREHOUSE = COMPUTE_WH SCHEDULE = '5 minute' WHEN SYSTEM$STREAM_HAS_DATA('st_emp_dtls') AS INSERT INTO test_emp_tabel(EMPID,EMPNAME) SELECT empid,empname FROM st_emp_changes WHERE METADATA$ACTION = 'INSERT';
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485