分析

雪花的特点:零拷贝克隆

一群在办公室工作的网络开发人员。

雪花的特点:零拷贝克隆

雪花零拷贝克隆:

雪花有一些先进的功能,如时间旅行,零复制克隆等,这些功能使我们Loat更容易。

创建数据库、模式或表的副本,通常我们复制完整的结构、元数据、主键、模式等,但在雪花中使用克隆命令非常容易。

我们可以复制所有的数据,元数据,结构只用一个命令。当我们正在开发,并且我们很快想要创建一个数据库或表的克隆时,它是有帮助的。

为什么这被称为零复制克隆?

克隆对象是独立于原表的,所以我们可以进行更新,而且只会影响克隆表,但是会增加一些成本。但是对于创建任何克隆对象,所以它不会花费我们,这是成本效益。

易于复制所有元数据和改进的存储管理。

成本有效的

目的:

为任何数据库或表创建克隆的目的就像为开发创建备份一样,它也可以与时间旅行一起工作,所以我们关心恢复数据。

命令:

CREATE TABLE

克隆< source_table_name >

额外的规则:

1.对象和元数据的任何结构都被继承,比如集群键、注释。

2.数据存储对象(永久和瞬态)

数据库、模式、表

3.同样克隆配置对象

阶段,文件格式,任务

让我们用一个例子来说明这一点

步骤1:我们有一个有1000行的表,我们对这个表进行了一些开发,我们不能冒数据丢失的风险,所以我们可以创建这个表的克隆。

步骤2:让我们从克隆表中更新其中一列,但它不会影响原始表。如果我们创建一个克隆表,它将从我们额外的成本,但我们更新克隆表中的任何东西,那么它将收取额外的空间成本。

我们不能用常规克隆命令为临时表创建克隆,我们必须在命令中添加temporary。

创建临时表

克隆< source_table_name>

我们也克隆完整的数据库,模式和阶段雪花使用克隆命令。

步骤3:让我们看看我们如何将时间旅行和克隆结合在一起,这在雪花中也是非常有用的。

我们用一些虚拟数据创建了一个表TEST_DATA。如果我们更新表中的任何东西,我们想要通过使用时间旅行的各种方法来获得原始数据,我们可以时间旅行并查看原始数据,如果我们想要恢复该数据,那么我们可以为此创建一个克隆表,下面的截图显示了雪花的两种时间旅行功能与克隆功能。

1.利用时间旅行的OFFSET方法克隆。

2.利用时间旅行的QUERY ID方法克隆。

如果我们用一些错误的数据更新克隆表,那么我们也可以返回并恢复原始数据,并创建新的克隆并存储它。

交换表:

交换表的特性与克隆非常相似。这是非常有用的,如果我们想把开发表或开发数据库到生产,所以我们有多种方法来做到这一点,例如,只是创建一个克隆或复制的开发表,并将其重命名为生产表,但在雪花,我们有更简单的方法,即交换表,它只是类似于克隆。基本上,我们只是交换元数据。

对于交换表,我们只需要使用这个命令

ALTER TABLE

SWAP WITH

ALTER SCHEMA

SWAP WITH

目的:这里我们有两个表,如果我们删除dev表中的一些行,我们必须取回dev表中的所有数据,然后使用swap命令,我们可以从prod表中取回dev表中的所有数据

Sw2

通过这种方式,您可以克隆表并与时间旅行功能一起使用。

最后的思考

这就引出了关于雪花零拷贝克隆的结论。这篇文章告诉我们什么是零拷贝克隆,以及如何在雪花中使用它。此外,我还向您演示了如何在表级别上使用snowflake的时间旅行特性的零复制克隆。我希望您已经了解了Snowflake最重要的功能之一。

请在下面的空间分享你的想法和建议,我会尽我所能在时间允许的情况下回复所有的问题。

参考雪花官方文档在这里如果你想了解更多。

欲了解更多此类博客,请点击在这里

阅读快乐! !

留下回复

你的电邮地址将不会公布。必填字段已标记

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

Shobhit Bisen

Shobhit Bisen在Perficient担任助理技术顾问。他掌握了SSIS、SSRS、Python和SQL。Shobhit也很了解雪花和ADF。他总是乐于学习新事物。

更多来自作者

关注我们
推特 Linkedin 脸谱网 Youtube Instagram