Snowflake Core (COF-CO2 ) 认证最新考点

本文是笔者另一篇blog的姐妹篇,另一篇的地址如下: https://blog.youkuaiyun.com/rav009/article/details/151403409?spm=1001.2014.3001.5501https://blog.youkuaiyun.com/rav009/article/details/151403409?spm=1001.2014.3001.5501

笔者在2025年11月底参加了SnowPro Core的考试,顺利通过,同时发现了一些新的考点,通过本文来记录,并共享给大家:

Snowflake Hybrid Tables

Snowflake Hybrid Tables are a new table type designed to unify transactional (OLTP) and analytical (OLAP) workloads in a single platform. They are part of Snowflake’s Unistore architecture, which aims to eliminate the traditional trade-off between fast transactions and deep analytics.

Snowflake 的 MFA

Snowflake 的 MFA 不支持邮件、电话或 SMS。目前官方支持的方式只有三类:Passkey(密钥)、TOTP 身份验证器应用(如 Google Authenticator)、以及 Duo Security

Snowflake 的 Resource Monitor

Snowflake 的 Resource Monitor 支持的重置周期(Frequency)包括:DAILY(每天)、WEEKLY(每周)、MONTHLY(每月)、YEARLY(每年)、NEVER(不重置)。

每月最常见。

DELETE

在 Snowflake 中,DELETE 操作属于 DML(数据操作语句),它需要 Virtual Warehouse 提供计算资源来执行,而不是仅靠 Cloud Services 层完成。

同名表时,临时表优先。

同名时,临时表优先于永久表。这是 Snowflake 的对象解析规则之一。

CHARACTER(n)

在 Snowsight 中,不管你定义的是 CHARACTER(n)CHAR(n)VARCHAR(n) 还是 STRINGUI 都会显示为 VARCHAR,只是长度限制会保留(比如 VARCHAR(25))。

REPEATABLE

要让 Snowflake 的 SAMPLE 可重复,必须在 TABLESAMPLE 后加上 REPEATABLE(seed)。这样在相同条件下,每次查询都会返回相同的样本。

Iceberg 表

Snowflake 的 Iceberg 表支持通过 Secure Data Sharing 功能进行共享。

移除列时微分区的行为

  • ALTER TABLE DROP COLUMN

    • 当你移除一列时,Snowflake 并不会立即去重写或重新生成所有微分区的数据文件。

    • 原因是 Snowflake 的存储是 不可变的微分区 (immutable micro-partitions),删除列只是对 元数据层 的修改。

  • 实际效果

    • 被删除的列在元数据中标记为不可见,不再出现在查询结果里。

    • 微分区中的底层数据仍然存在,但对用户和查询不可见。

    • 这也是为什么 DROP COLUMN 操作不需要 Virtual Warehouse,只靠 Cloud Services 层就能完成。

  • 不会触发全表重写

    • Snowflake 避免了昂贵的全表数据重写。

    • 只有在涉及 DML(如 DELETEUPDATE)时才需要重新生成新的微分区。

    • DDL(如 DROP COLUMN)只更新元数据,不会重写数据。

### 关于 Snowflake 与 Spring Boot 的集成 为了使 `snowflake-spring-boot-starter` 正确工作并生成全局唯一ID,在项目中需要进行一些特定的配置。以下是具体的配置方法: #### 添加依赖项 在项目的 `pom.xml` 文件中加入如下 Maven 依赖来引入该 starter 库: ```xml <dependency> <groupId>com.github.houbb</groupId> <artifactId>snowflake-spring-boot-starter</artifactId> <version>1.0.7.RELEASE</version> </dependency> ``` #### 配置文件设置 接着,在应用程序的主要属性文件(通常是 application.yml 或者 application.properties)里指定必要的参数,例如 worker id 和 datacenter id: 对于 YAML 格式的配置文件 (application.yml),可以这样写入配置信息[^1]: ```yaml spring: snowflake: worker-id: 1 data-center-id: 1 ``` 而对于 properties 格式的配置文件(application.properties), 则应按照下面的方式编写: ```properties spring.snowflake.worker-id=1 spring.snowflake.data-center-id=1 ``` 这些配置允许开发者为不同的实例分配唯一的 Worker ID 和数据中心 ID, 确保即使是在分布式环境中也能产生不重复的 ID。 #### 使用服务接口获取 ID 完成上述步骤之后就可以通过注入相应的 Bean 来调用获得新 ID 的功能了。通常情况下会有一个名为 `SnowflakeIdGenerator` 的 bean 可供使用。可以在任何组件内自动装配此对象,并调用其提供的 API 方法来创建新的 ID 值。 ```java @Autowired private SnowflakeIdWorker snowFlake; public Long generateId() { return snowFlake.nextId(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱知菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值