参数

Snowflake 提供了一些参数,让您可以控制账户、各个用户会话和对象的行为。所有参数都有默认值,可以根据参数类型(账户、会话或对象),在不同级别设置和替换这些值。

本主题内容:

参数层次结构和类型

本部分介绍不同类型的参数(账户、会话和对象)以及每种类型的设置级别。

下图说明了不同参数类型之间的层次结构关系,以及如何在每个级别替换各个参数:

账户、会话和对象参数的层次结构

账户参数

账户参数 只能 由具有相应管理员角色的用户在账户级别设置。账户参数是使用 ALTER ACCOUNT 命令设置。

Snowflake 提供以下账户参数:

参数

备注

ALLOW_CLIENT_MFA_CACHING

ALLOW_ID_TOKEN

用于在基于浏览器的单一登录 (SSO) 中为 Snowflake 提供的客户端启用连接缓存

CLIENT_ENCRYPTION_KEY_SIZE

用于加密针对数据加载或卸载的暂存文件;可能需要额外的安装和配置(有关详细信息,请参阅描述)。

ENABLE_IDENTIFIER_FIRST_LOGIN

ENABLE_INTERNAL_STAGES_PRIVATELINK

允许 SYSTEM$GET_PRIVATELINK_CONFIG 函数在查询结果中返回 private-internal-stages 键。

ENABLE_TRI_SECRET_AND_REKEY_OPT_OUT_FOR_IMAGE_REPOSITORY

用于指定镜像仓库选择退出 Tri-Secret Secure 和 定期更新密钥 的选项。

ENABLE_TRI_SECRET_AND_REKEY_OPT_OUT_FOR_SPCS_BLOCK_STORAGE

用于指定块存储卷选择退出 Tri-Secret Secure 和 定期更新密钥 的选项。

EVENT_TABLE

用于将事件表设置为账户的活动事件表。

ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES

EXTERNAL_OAUTH_ADD_PRIVILEGED_ROLES_TO_BLOCKED_LIST

INITIAL_REPLICATION_SIZE_LIMIT_IN_TB

MIN_DATA_RETENTION_TIME_IN_DAYS

用于为 Time Travel 操作设置历史数据的最短数据保留期。

NETWORK_POLICY

这是账户管理员(即具有 ACCOUNTADMIN 系统角色的用户)或安全管理员(即具有 SECURITYADMIN 系统角色的用户)可以设置的唯一账户参数。. 有关更多信息,请参阅 对象参数

OAUTH_ADD_PRIVILEGED_ROLES_TO_BLOCKED_LIST

PERIODIC_DATA_REKEYING

PREVENT_UNLOAD_TO_INLINE_URL

REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_CREATION

REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_OPERATION

SSO_LOGIN_PAGE

备注

默认情况下,账户参数 SHOW PARAMETERS 的输出中显示。有关查看账户参数的更多信息,请参阅 查看参数及其值 (本主题内容)。

会话参数

大多数参数是会话参数,可以在以下级别设置:

账户:

账户管理员可以使用 ALTER ACCOUNT 命令设置为账户设置会话参数。为账户设置的值默认为个人用户及其会话。

用户:

具有适当权限(通常为 SECURITYADMIN 角色)的管理员可以使用 ALTER USER 命令替换个人用户的会话参数。为用户设置的值默认为用户启动的会话。此外,用户可以使用 ALTER USER 自行替换默认会话参数。

会话:

用户可以使用 ALTER SESSION,在其会话中显式设置会话参数。

备注

默认情况下,SHOW PARAMETERS 的输出中仅显示会话参数。有关查看账户和对象参数的更多信息,请参阅 查看参数及其值 (本主题内容)。

对象参数

对象参数可以在以下级别设置:

账户:

账户管理员可以使用 ALTER ACCOUNT 命令为账户设置对象参数。为账户设置的值默认为账户中创建的对象。

对象:

具有适当权限的用户可以使用相应的 CREATE <object>ALTER <object> 命令替换各个对象的对象参数。

Snowflake 提供以下对象参数:

参数

对象类型

备注

CATALOG

数据库、架构

DATA_METRIC_SCHEDULE

指定运行与表相关联的数据指标功能的计划。表或视图上的所有数据指标函数都遵循相同的计划。

DATA_RETENTION_TIME_IN_DAYS

数据库、架构、表

DEFAULT_DDL_COLLATION

数据库、架构、表

ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR

用户

影响因语法或分析错误而失败的查询的查询历史记录。

EXTERNAL_VOLUME

数据库、架构

LOG_LEVEL

数据库、架构、存储过程、函数

MAX_CONCURRENCY_LEVEL

仓库

MAX_DATA_EXTENSION_TIME_IN_DAYS

数据库、架构、表

NETWORK_POLICY

用户

这是账户管理员(具有 ACCOUNTADMIN 系统角色的用户)或安全管理员(即具有 SECURITYADMIN 系统角色的用户)可以设置的唯一用户参数。

如果为账户和同一账户中的用户设置此参数,则用户级网络策略会替换账户级网络策略。

PIPE_EXECUTION_PAUSED

架构、管道

PREVENT_UNLOAD_TO_INTERNAL_STAGES

用户

STATEMENT_QUEUED_TIMEOUT_IN_SECONDS

仓库

也是会话参数(即可以在对象和会话级别设置)。有关继承和替换的详细信息,请参阅参数说明。

STATEMENT_TIMEOUT_IN_SECONDS

仓库

也是会话参数(即可以在对象和会话级别设置)。有关继承和替换的详细信息,请参阅参数说明。

SUSPEND_TASK_AFTER_NUM_FAILURES

数据库、架构、任务

TASK_AUTO_RETRY_ATTEMPTS

数据库、架构、任务

TRACE_LEVEL

数据库、架构、存储过程、函数

USER_TASK_MANAGED_INITIAL_WAREHOUSE_SIZE

数据库、架构、任务

USER_TASK_TIMEOUT_MS

数据库、架构、任务

备注

默认情况下,对象参数 SHOW PARAMETERS 的输出中显示。有关查看对象参数的更多信息,请参阅 查看参数及其值 (本主题内容)。

查看参数及其值

Snowflake 提供 SHOW PARAMETERS 命令,该命令显示参数列表以及每个参数的当前值和默认值。该命令可以使用不同的选项调用,以确定显示的参数的类型。

查看会话和对象参数

默认情况下,该命令 显示会话参数:

SHOW PARAMETERS;
Copy

要显示特定对象的对象参数,请包含具有对象类型和名称的 IN 子句。例如:

SHOW PARAMETERS IN DATABASE mydb;

SHOW PARAMETERS IN WAREHOUSE mywh;
Copy

查看所有参数

要显示 所有 参数(包括账户和对象参数),请包含 IN ACCOUNT 子句:

SHOW PARAMETERS IN ACCOUNT;
Copy

按名称限制参数列表

该命令还支持使用 LIKE 子句,按名称限制参数列表。例如:

  • 显示名称中包含“time”的会话参数:

    SHOW PARAMETERS LIKE '%time%';
    
    Copy
  • 显示名称以“time”开头的所有参数:

    SHOW PARAMETERS LIKE 'time%' IN ACCOUNT;
    
    Copy

备注

LIKE 子句必须位于 IN 子句之前。

ABORT_DETACHED_QUERY

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定因会话突然终止(例如网络中断、浏览器终止、服务中断)而断开连接时,Snowflake 对正在进行的查询执行的操作。

:

TRUE:正在进行的查询在连接断开 5 分钟后中止。

FALSE:正在进行的查询已完成。

默认值:

FALSE

备注

  • 如果用户显式关闭连接:

    • 无论参数值如何,所有正在进行的同步查询都会立即中止。

    • 当值设置为 FALSE 时,异步查询将继续运行,直至查询完成、取消或为 STATEMENT_TIMEOUT_IN_SECONDS 参数指定的时限到期。STATEMENT_TIMEOUT_IN_SECONDS 参数的默认值为两天。

  • 大多数查询需要计算资源才能执行。这些资源由虚拟仓库提供,在运行时会消耗 credit。当值为 FALSE 时,如果会话终止,仓库可能会继续运行并消耗 credit,以完成会话终止时正在进行的所有查询。

ALLOW_CLIENT_MFA_CACHING

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

指定是否可以在客户端操作系统密钥库中保存 MFA 令牌,以实现连续、安全的连接,而无需用户在每次开始尝试与 Snowflake 连接时响应 MFA 提示。有关详细信息以及支持的 Snowflake 客户端列表,请参阅 使用 MFA 令牌缓存,最大限度地减少身份验证过程中的提示次数 – 可选

:

TRUE:在客户端操作系统密钥库中存储 MFA 令牌,使客户端应用程序能够在新连接建立时使用该 MFA 令牌。虽然值为 True,但不会提示用户响应其他 MFA 提示。

FALSE:不存储 MFA 令牌。每当客户端应用程序与 Snowflake 建立新连接时,用户必须响应 MFA 提示。

默认值:

FALSE

ALLOW_ID_TOKEN

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

指定是否可以在客户端操作系统密钥库中保存连接令牌,以实现连续、安全的连接,而无需用户在每次开始尝试与 Snowflake 连接时输入登录凭据。有关详细信息以及支持的 Snowflake 客户端列表,请参阅 使用连接缓存,尽可能减少身份验证提示的数量 – 可选

:

TRUE:在客户端操作系统密钥库中存储连接令牌,使客户端应用程序能够执行基于浏览器的 SSO 操作,而不会在新连接建立时提示用户进行身份验证。

FALSE:不存储连接令牌。当客户端应用程序与 Snowflake 建立新连接时,提示用户进行身份验证。如果此参数设置为 False,仍然可以对 Snowflake 执行 SSO 操作。

默认值:

FALSE

AUTOCOMMIT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定是否为会话启用自动提交。自动提交确定在没有活动事务的情况下执行的 DML 语句是否在语句成功完成后自动提交。有关更多信息,请参阅 事务

:

TRUE:自动提交已启用。

FALSE:自动提交处于禁用状态,这意味着必须显式提交或回滚 DML 语句。

默认值:

TRUE

AUTOCOMMIT_API_SUPPORTED (仅限查看)

类型:

不适用

数据类型:

布尔

描述:

仅供 Snowflake 内部使用。仅限查看的参数,指明账户是否已启用针对自动提交的 API 支持。如果值为 TRUE,您可以通过 APIs 为以下驱动程序/连接器启用或禁用自动提交:

BINARY_INPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串(常量)

描述:

作为输入传递给 VARCHAR-to-BINARY 转换函数的 VARCHAR 值的格式。有关更多信息,请参阅 Binary Input and Output

:

HEXBASE64UTF8/UTF-8

默认值:

HEX

BINARY_OUTPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串(常量)

描述:

由 BINARY-to-VARCHAR 转换函数作为输出返回的 VARCHAR 值的格式。有关更多信息,请参阅 Binary Input and Output

:

HEXBASE64

默认值:

HEX

CATALOG

类型:

对象(适用于数据库和架构)‐ 可为账户设置 » 数据库 » 架构

数据类型:

字符串

描述:

指定 Iceberg 表的默认目录集成。有关更多信息,请参阅 Iceberg 表文档

:

任何有效的目录集成标识符。

默认值:

CLIENT_ENABLE_LOG_INFO_STATEMENT_PARAMETERS

类型:

会话 – 只能为会话设置

数据类型:

布尔

客户端:

JDBC

描述:

使用户能够记录绑定到 PreparedStatements 的数据值。

要查看这些值,您不仅必须将此会话级参数设置为 TRUE,还必须将名为 TRACING 的连接参数设置为 INFOALL

  • TRACING 设置为 ALL,可查看所有调试信息和所有绑定信息。

  • INFO 设置为 TRACING,可查看绑定参数值和较少的其他调试信息。

小心

如果您绑定机密信息(例如医疗诊断信息或密码),则系统会记录这类信息。当您将此参数设置为 TRUE 时,Snowflake 建议确保日志文件安全,或者仅使用测试数据。

:

TRUEFALSE

默认值:

FALSE

CLIENT_ENCRYPTION_KEY_SIZE

类型:

账户 – 只能为账户设置

数据类型:

整数

客户端:

任意

描述:

指定 Snowflake 使用的 AES 加密密钥大小(以位为单位),以便在使用 SNOWFLAKE_FULL 加密类型时,加密/解密内部暂存区(用于加载/卸载数据)上存储的文件。

:

128256

默认值:

128

备注

  • 此参数不用于加密/解密外部暂存区(即 S3 桶或 Azure 容器)中存储的文件。这些文件的加密/解密使用外部加密密钥完成,该密钥在 COPY 命令中显式指定,或者在命令引用的命名外部暂存区中指定。

  • 如果您在使用 JDBC 驱动程序,并且希望将此参数设置为 256(用于强加密),则必须在从中加载/卸载数据的每台客户端计算机上安装其他 JCE 策略文件。有关安装所需文件的更多信息,请参阅 JDBC 驱动程序的 Java 要求

  • 如果您在使用 Python Connector(或 SnowSQL),并且希望将此参数设置为 256(用于强加密),则不需要执行其他安装或配置任务。

CLIENT_MEMORY_LIMIT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

整数

客户端:

JDBC、ODBC

描述:

该参数指定,对于来自查询的结果集,JDBC 驱动程序或 ODBC 驱动程序应使用的内存量上限(以 MB 为单位)。

对于 JDBC 驱动程序:

  • 为了简化 JVM 内存管理,该参数为所有查询设置 全局 内存使用量上限。

  • CLIENT_RESULT_CHUNK_SIZE 指定要下载的每个查询结果集(或 )的大小上限(以 MB 为单位)。驱动程序可能需要额外的内存来处理块;如果是这样,它将在运行时期间调整内存使用情况以处理至少一个线程/查询。确认 CLIENT_MEMORY_LIMIT 设置得明显高于 CLIENT_RESULT_CHUNK_SIZE,以确保有足够的内存可用。

对于 ODBC 驱动程序:

  • 版本 2.22.0 及更高版本支持此参数。

  • 不支持 CLIENT_RESULT_CHUNK_SIZE

备注

  • 驱动程序将尝试遵循参数值,但会将使用量限制在系统内存的 80%。

  • 此参数中设置的内存使用限制不适用于任何其他 JDBC 或 ODBC 驱动程序操作(例如,连接到数据库、准备查询或 PUT 和 GET 语句)。

:

任意有效数量的兆字节。

默认值:

1536 (实际为 1.5 GB)

大多数用户不需要设置此参数。如果用户未设置此参数,则驱动程序将以上面指定的默认值启动。

此外, JDBC 驱动程序会主动谨慎管理其内存,以避免耗尽所有可用内存。

CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX

类型:

会话 – 可以为用户 » 会话设置

数据类型:

布尔

客户端:

JDBC、ODBC

描述:

对于特定的 ODBC 函数和 JDBC 方法,此参数可以将默认搜索范围从所有数据库/架构更改为当前数据库/架构。范围较小的搜索通常返回较少的行,执行速度更快。

例如,getTables() JDBC 方法接受数据库名称和架构名称作为实参,并返回数据库和架构中的表的名称。如果数据库和架构实参为 null,则默认情况下,该方法会搜索账户中的所有数据库和所有架构。将 CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX 设置为 TRUE,将搜索范围缩小到 连接上下文 指定的当前数据库和架构。

实质上,将此参数设置为 TRUE,会为数据库和架构创建以下优先顺序:

  1. 作为实参传递给函数/方法的值。

  2. 连接上下文 中指定的值(如果有)。

  3. 默认值(所有数据库和所有架构)。

有关更多详细信息,请参阅以下信息。

此参数适用于以下内容:

  • JDBC 驱动程序方法(适用于 DatabaseMetaData 类):

    • getColumns

    • getCrossReference

    • getExportedKeys

    • getForeignKeys

    • getFunctions

    • getImportedKeys

    • getPrimaryKeys

    • getSchemas

    • getTables

  • ODBC 驱动程序函数:

    • SQLTables

    • SQLColumns

    • SQLPrimaryKeys

    • SQLForeignKeys

    • SQLGetFunctions

    • SQLProcedures

:

TRUE:如果数据库和架构实参为 null,则驱动程序仅检索 连接上下文 指定的数据库和架构的元数据。

下表更详细地描述了这种交互。

FALSE:如果数据库和架构实参为 null,则驱动程序将检索账户中所有数据库和架构的元数据。

默认值:

FALSE

附加备注:

连接上下文 指会话的当前数据库和架构,可以使用以下任一选项进行设置:

  1. 为连接到 Snowflake 的用户指定默认命名空间(并启动会话)。您可以通过 CREATE USERALTER USER 命令为用户设置此命名空间,但必须在用户连接之前设置。

  2. 在通过驱动程序连接到 Snowflake 时指定数据库和架构。

  3. 在会话内发出 USE DATABASEUSE SCHEMA 命令。

如果数据库或架构由其中多个指定,则以最近的为准。

当 CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX 设置为 TRUE 时:

数据库实参

架构实参

使用的数据库

使用的架构

非空

非空

实参

实参

非空

Null

实参

所有架构

Null

非空

连接上下文

实参

Null

Null

连接上下文

会话上下文

备注

对于 JDBC 驱动程序,此行为适用于版本 3.6.27(及更高版本)。对于 ODBC 驱动程序,此行为适用于版本 2.12.96(及更高版本)。

如果只想搜索连接上下文数据库,但要搜索相应数据库中的所有架构,请参阅 CLIENT_METADATA_USE_SESSION_DATABASE

CLIENT_METADATA_USE_SESSION_DATABASE

类型:

会话 – 可以为会话设置

数据类型:

布尔

客户端:

JDBC

描述:

此参数仅适用于受 CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX 影响的方法。

当同时满足以下两个条件时,此参数才适用:

对于特定的 ODBC 函数和 JDBC 方法,此参数可以将默认搜索范围从所有数据库更改为当前数据库。范围较小的搜索通常返回较少的行,执行速度更快。

有关更多详细信息,请参阅以下信息。

:

TRUE

驱动程序会搜索连接上下文的数据库中的所有架构。(有关 连接上下文 的更多详细信息,请参阅针对 CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX 的文档。)

FALSE

驱动程序会搜索所有数据库中的所有架构。

默认值:

FALSE

附加备注:

当数据库是 null,架构是 null 并且 CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX 是 FALSE 时:

CLIENT_METADATA_USE_SESSION_DATABASE

行为

FALSE

搜索 所有数据库 中的所有架构。

TRUE

搜索 当前数据库 中的所有架构。

CLIENT_PREFETCH_THREADS

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

整数

客户端:

JDBC、ODBC、Python、NET

描述:

该参数指定客户端用于预提取大型结果集的线程数。驱动程序将尝试遵循该参数值,但定义最小值和最大值(取决于系统的资源)以提高性能。

:

110

默认值:

4

大多数用户不需要设置此参数。如果用户未设置此参数,则驱动程序将以上面指定的默认值启动,但也会主动谨慎地管理其线程计数,以避免耗尽所有可用内存。

CLIENT_RESULT_CHUNK_SIZE

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

整数

客户端:

JDBC、SQL API

描述:

该参数指定要下载的每个查询结果集(或 )的大小上限(以 MB 为单位)。JDBC 驱动程序以块的形式下载查询结果。

另请参阅 CLIENT_MEMORY_LIMIT

:

48160

默认值:

160

大多数用户不需要设置此参数。如果用户未设置此参数,则驱动程序将以上面指定的默认值启动,但也会主动谨慎地管理其内存,以避免耗尽所有可用内存。

CLIENT_RESULT_COLUMN_CASE_INSENSITIVE

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

客户端:

JDBC

描述:

该参数指明是否在 JDBC 的 ResultSet.get* 方法中以不区分大小写的方式匹配列名。

:

TRUE:以不区分大小写的方式匹配列名。

FALSE:以区分大小写的方式匹配列名。

默认值:

FALSE

CLIENT_SESSION_KEEP_ALIVE

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

客户端:

JDBC、ODBC、Python、Node.js

描述:

该参数指明用户在会话中不活动一段时间后,是否强制用户再次登录。

:

TRUE只要连接处于活动状态,即使用户没有活动,Snowflake 也会无限期地让会话保持活动状态。

FALSE:用户在不活动 4 小时后必须重新登录。

默认值:

FALSE

备注

目前,该参数仅在启动会话时生效。您可以执行 ALTER SESSION 命令,从而在会话级别内修改该参数值,但这不会影响会话保持活动状态功能,例如扩展会话。有关在会话级别设置参数的信息,请参阅客户端文档:

CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

整数

客户端:

SnowSQL、JDBC、Python、Node.js

描述:

客户端尝试更新会话令牌的间隔秒数。

:

9003600

默认值:

3600

CLIENT_TIMESTAMP_TYPE_MAPPING

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串(常量)

客户端:

任意

描述:

指定在为使用绑定 API 加载数据的 JDBC 或 ODBC 应用程序绑定时间戳变量时要使用的 TIMESTAMP_* 变体

:

TIMESTAMP_LTZTIMESTAMP_NTZ

默认值:

TIMESTAMP_LTZ

DATA_METRIC_SCHEDULE

类型:

对象(用于表)

数据类型:

字符串

描述:

指定运行与表相关联的数据指标功能的计划。

:

计划可以基于定义的分钟数、cron 表达式或表上不涉及重聚类的 DML 事件。有关详细信息,请参阅:

默认值:

无值。

DATA_RETENTION_TIME_IN_DAYS

类型:

对象(适用于数据库、架构和表)– 可以为账户 » 数据库 » 架构 » 表设置

数据类型:

整数

描述:

为对象执行 Time Travel 操作(SELECT、CLONE、UNDROP)时,Snowflake 保留历史数据的天数。值为 0 时会有效为指定数据库、架构或表禁用 Time Travel。有关更多信息,请参阅 了解和使用 Time Travel

:

01 (适用于 Standard Edition

090 (适用于 Enterprise Edition 或更高版本

默认值:

1

DATE_INPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 DATE 数据类型的输入格式。有关更多信息,请参阅 日期和时间输入和输出格式

:

任何有效的、受支持的日期格式或 AUTO

AUTO 指定 Snowflake 尝试在会话期间自动检测系统中存储的日期的格式)

默认值:

AUTO

DATE_OUTPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 DATE 数据类型的显示格式。有关更多信息,请参阅 日期和时间输入和输出格式

:

任何有效的、受支持的日期格式

默认值:

YYYY-MM-DD

DEFAULT_DDL_COLLATION

类型:

对象(适用于数据库、架构和表)– 可以为账户 » 数据库 » 架构 » 表设置

数据类型:

字符串

描述:

设置用于以下 DDL 操作的默认排序规则:

设置此参数会强制受影响的对象(表、架构、数据库或账户)中所有随后创建的列将指定的排序规则作为默认值,除非 DDL 中显式定义了列的排序规则。

例如,如果 DEFAULT_DDL_COLLATION = 'en-ci',则以下两个语句等效:

create table test(c1 integer, c2 string, c3 string collate 'en-cs');

create table test(c1 integer, c2 string collate 'en-ci', c3 string collate 'en-cs');
Copy
:

任何有效的、受支持的 排序规则规范

默认值:

空字符串

备注

要设置账户的默认排序规则,请使用以下命令:

您可以在创建期间或之后的任何时间,在表、架构或数据库级别设置表列的默认排序规则:

ENABLE_IDENTIFIER_FIRST_LOGIN

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

确定用户的登录流程。启用后,Snowflake 会在显示身份验证方法之前提示用户输入用户名或电子邮件地址。有关详细信息,请参阅 标识符优先登录

:

TRUE:Snowflake 使用标识符优先登录流程对用户进行身份验证。

FALSE:Snowflake 显示所有可能的登录选项,即使这些选项不适用于特定用户。

默认值:

FALSE

ENABLE_TRI_SECRET_AND_REKEY_OPT_OUT_FOR_IMAGE_REPOSITORY

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

指定 镜像仓库 选项,以退出 Tri-Secret Secure 和 定期更新密钥

:

TRUE:选择退出 Tri-Secret Secure 和镜像仓库的定期密钥更新。

FALSE:禁止为 Tri-Secret Secure 和定期密钥更新账户创建镜像仓库。同样,禁止为已启用图像仓库的账户启用 Tri-Secret Secure 和定期密钥更新。

默认值:

FALSE

ENABLE_TRI_SECRET_AND_REKEY_OPT_OUT_FOR_SPCS_BLOCK_STORAGE

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

指定 Snowpark Container Services 块存储卷 的选项,以选择退出 Tri-Secret Secure 和 定期更新密钥

:

TRUE:为 Snowpark Container Services 块存储卷选择退出 Tri-Secret Secure 和定期密钥更新。

FALSE:禁止为 Tri-Secret Secure 和定期密钥更新账户创建块存储卷。同样,对于已启用块存储卷的账户,禁止启用 Tri-Secret Secure 和定期密钥更新。

默认值:

FALSE

ENABLE_UNHANDLED_EXCEPTIONS_REPORTING

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定 Snowflake 是否可以在事件表中获取过程或 UDF 处理程序代码中未处理异常的日志消息或跟踪事件数据。有关更多信息,请参阅 从未处理的异常获取消息

:

TRUE:如果启用了日志记录和跟踪功能,与未处理异常有关的数据将以日志或跟踪数据的形式获取。

FALSE:未捕获有关未处理异常的数据。

默认值:

TRUE

ENABLE_UNLOAD_PHYSICAL_TYPE_OPTIMIZATION

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定是根据逻辑列数据类型(即卸载 SQL 查询或源表中的类型),还是根据卸载的列值(即支持卸载 SQL 语句或源表的输出列中的值的最小数据类型和精度),为卸载的 Parquet 文件设置架构。

:

TRUE:卸载的 Parquet 数据文件的架构由卸载 SQL 查询或源表中的列值确定。Snowflake 通过设置可接受所有值的最小精度来优化表列。卸载程序在将值写入 Parquet 文件时遵循此模式。输出列的数据类型和精度设置为在卸载 SQL 语句或源表中支持其值的最小数据类型和精度。接受此设置以获得更好的性能和更小的数据文件。

FALSE:架构由逻辑列数据类型确定。设置此值以获得一致的输出文件架构。

默认值:

TRUE

ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR

类型:

用户 – 可以为账户 » 用户设置

数据类型:

布尔

描述:

控制在 SQL 查询因语法或解析错误而失败时,是否编辑查询文本。如果值为 FALSE,则在提供查询历史记录的视图、页面和函数中编辑失败查询的内容。

用户只有具有被授予或继承 AUDIT 权限的角色才能设置 ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR 参数。

使用 ALTER USER 命令为特定用户将参数设置为 TRUE 时,请修改要查看查询文本的用户,而不是执行查询的用户(如果这些用户是不同的用户)。

:

TRUE:对于因语法或解析错误而失败的查询,禁用查询文本编辑。

FALSE:在查询因语法或解析错误而失败时,从提供查询历史记录的视图、页面和函数中编辑查询的内容。

默认值:

FALSE

ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

指定使用网络规则的网络策略是否可以限制对 AWS 内部暂存区的访问。

此参数对不使用网络规则的网络策略没有影响。

此账户级参数会影响账户级和用户级网络策略。

有关使用网络策略和网络规则限制对 AWS 内部暂存区的访问(包括此参数的使用)的详细信息,请参阅 保护 AWS 上的内部暂存区

:

TRUE:允许使用网络规则的网络策略限制对 AWS 内部暂存区的访问。网络规则还必须使用适当的 MODETYPE,限制对内部暂存区的访问。

FALSE:网络策略从不限制对内部暂存区的访问。

默认值:

FALSE

ERROR_ON_NONDETERMINISTIC_MERGE

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定当 MERGE 命令用于更新或删除联接多个源行的目标行,并且系统无法确定要对目标行执行的操作时,是否返回错误。

:

TRUE:返回一个错误,包含导致错误的其中一个目标行的值。

FALSE:不返回任何错误,合并成功完成,但合并结果不确定。

默认值:

TRUE

ERROR_ON_NONDETERMINISTIC_UPDATE

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定当 UPDATE 命令用于更新联接多个源行的目标行,并且系统无法确定要对目标行执行的操作时,是否返回错误。

:

TRUE:返回一个错误,包含导致错误的其中一个目标行的值。

FALSE:不返回任何错误,更新完成,但更新结果不确定。

默认值:

FALSE

EVENT_TABLE

类型:

账户 – 只能为账户设置

数据类型:

字符串

描述:

指定用于记录来自此账户中存储过程和 UDFs 的消息的事件表的名称。

:

通过执行 CREATE EVENT TABLE 命令创建的任何现有事件表。

默认值:

EXTERNAL_OAUTH_ADD_PRIVILEGED_ROLES_TO_BLOCKED_LIST

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

确定在基于 External OAuth 授权服务器的访问令牌创建 Snowflake 会话时,是否可以将 ACCOUNTADMIN、ORGADMIN 和 SECURITYADMIN 角色用作主要角色。

:

TRUE:将 ACCOUNTADMIN、ORGADMIN 和 SECURITYADMIN 角色添加到 External OAuth 安全集成的 EXTERNAL_OAUTH_BLOCKED_ROLES_LIST 属性,这意味着在使用 External OAuth 身份验证创建 Snowflake 会话时,这些角色不能用作主要角色。

FALSE:从 External OAuth 安全集成的 EXTERNAL_OAUTH_BLOCKED_ROLES_LIST 属性定义的阻止角色列表中移除 ACCOUNTADMIN、ORGADMIN 和 SECURITYADMIN。

默认值:

TRUE

EXTERNAL_VOLUME

类型:

对象(适用于数据库和架构)‐ 可为账户设置 » 数据库 » 架构

数据类型:

字符串

描述:

为 Iceberg 表指定默认的外部卷。有关更多信息,请参阅 Iceberg 表文档

:

任何有效的外部卷标识符。

默认值:

GEOGRAPHY_OUTPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串(常量)

描述:

GEOGRAPHY 值 的显示格式。

对于 EWKT 和 EWKB,SRID 在输出中始终为 4326。请参阅 关于 EWKT 和 EWKB 处理的备注

:

GeoJSONWKTWKBEWKTEWKB

默认值:

GeoJSON

GEOMETRY_OUTPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串(常量)

描述:

GEOMETRY 值 的显示格式。

:

GeoJSONWKTWKBEWKTEWKB

默认值:

GeoJSON

INITIAL_REPLICATION_SIZE_LIMIT_IN_TB

类型:

账户 – 只能为账户设置

数据类型:

数字。

描述:

设置在初次将主数据库复制到辅助数据库时的预估大小上限(以 TB 为单位)。在存储辅助数据库的任意账户上设置此参数。此大小限制有助于防止账户意外产生大额数据库复制费用。

要移除大小限制,请将值设置为 0.0

请注意,当前没有默认大小限制应用于辅助数据库的后续刷新。

:

0.0 及以上,小数位数至少为 1(例如 20.532.2533.333 等)。

默认值:

10.0

JDBC_ENABLE_PUT_GET

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定是否允许 PUT 和 GET 命令访问本地文件系统。

:

TRUE: JDBC 启用 PUT 和 GET 命令。

FALSE: JDBC 禁用 PUT 和 GET 命令。

默认值:

TRUE

JDBC_TREAT_DECIMAL_AS_INT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定 JDBC 如何处理小数位数为零 (0) 的列。

:

TRUE: JDBC 将小数位数为零的列处理为 BIGINT。

FALSE: JDBC 将小数位数为零的列处理为 DECIMAL。

默认值:

TRUE

JDBC_TREAT_TIMESTAMP_NTZ_AS_UTC

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定 JDBC 如何处理 TIMESTAMP_NTZ 值。

默认情况下,当 JDBC 驱动程序从 Snowflake 提取类型 TIMESTAMP_NTZ 的值时,它会使用客户端 JVM 时区将值转换为“挂钟”时间。

如果用户想继续使用 UTC 时区进行转换,可以将此参数设置为 TRUE

此参数仅适用于 JDBC 驱动程序。

:

TRUE:驱动程序使用 UTC 获取“挂钟”时间中的 TIMESTAMP_NTZ 值。

FALSE:驱动程序使用客户端 JVM 的当前时区来获取“挂钟”时间中的 TIMESTAMP_NTZ 值。

默认值:

FALSE

JDBC_USE_SESSION_TIMEZONE

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定 JDBC 驱动程序为 ResultSet 类的 getDate()getTime()getTimestamp() 方法使用 JVM 的时区,还是会话的时区(由 TIMEZONE 参数指定)。

:

TRUE: JDBC 驱动程序使用会话的时区。

FALSE: JDBC 驱动程序使用 JVM 的时区。

默认值:

TRUE

JSON_INDENT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

整数

描述:

指定要为会话 JSON 输出中每个新元素缩进的空格数。还指定是否在每个元素后插入换行符。

:

016

0 值会从输出中移除所有空格和换行符,从而返回紧凑的输出)

默认值:

2

备注

此参数不会影响使用 COPY INTO <location> 命令从表卸载到文件的 JSON。该命令始终以 NDJSON 格式卸载 JSON 数据:

  • 表中的每条记录都用换行符分隔。

  • 在每条记录中,采用紧凑格式(即没有空格或换行符)。

JS_TREAT_INTEGER_AS_BIGINT

类型:

会话 – 可以为会话设置

数据类型:

布尔

描述:

指定 Snowflake Node.js 驱动程序如何处理小数位数为零 (0) 的数字列,例如 INTEGER 或 NUMBER(p, 0)。

:

TRUE: JavaScript 将小数位数为零的列处理为长整型数字。

FALSE: JavaScript 将小数位数为零的列处理为数字。

默认值:

FALSE

备注

默认情况下,Snowflake INTEGER 列(包括 BIGINT、NUMBER(p, 0) 等)将转换为 JavaScript 的数字数据类型。但是,最大的合法 Snowflake 整数值大于最大的合法 JavaScript 数字值。要将 Snowflake INTEGER 列转换为可以存储比 JavaScript 数字更大的值的 JavaScript 长整型数字,请设置会话参数 JS_TREAT_INTEGER_AS_BIGINT。

有关如何使用此参数的示例,请参阅 以 Bigint 形式提取整数数据类型

LOCK_TIMEOUT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

数字

描述:

尝试锁定资源时在超时和中止语句之前等待的秒数。

:

0 到任何数字(即无限制) 0 值会禁用锁等待(即语句必须立即获取锁或中止)。如果语句需要锁定多个资源,则超时将分别应用于每次锁定尝试

默认值:

43200 (即 12 小时)

LOG_LEVEL

类型:

会话 – 可以为账户 » 用户 » 会话设置

类型:

对象(适用于数据库、架构、存储过程和 UDFs)– 可以为账户 » 数据库 » 架构 » 过程和账户 » 数据库 » 架构 » 函数设置

数据类型:

字符串(常量)

描述:

指定应引入并在活动事件表中可用的消息的严重级别。引入指定级别(以及更严重级别)的消息。有关日志级别的更多信息,请参阅 设置日志级别

:
  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

  • OFF

默认值:

OFF

附加备注:

下表列出了将 LOG_LEVEL 参数设置为某个级别时引入的消息的级别。

LOG_LEVEL 参数设置

引入的消息的级别

TRACE

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

DEBUG

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

INFO

  • INFO

  • WARN

  • ERROR

  • FATAL

WARN

  • WARN

  • ERROR

  • FATAL

ERROR

  • ERROR

  • FATAL

FATAL

  • ERROR (仅适用于 Java UDFs、Java UDTFs,以及 Java 和 Scala 存储过程。有关更多信息,请参阅 了解日志级别

  • FATAL

如果同时在会话和对象(或架构、数据库或账户)中设置了此参数,则使用更详细的值。请参阅 了解 Snowflake 如何确定有效的日志级别

MAX_CONCURRENCY_LEVEL

类型:

对象(适用于仓库)– 可以为账户 » 仓库设置

数据类型:

数字

描述:

指定仓库执行的 SQL 语句(即查询和 DML)的并发级别。达到该级别时,执行的操作取决于仓库是单群集仓库,还是多群集仓库:

  • 单群集或多群集(处于最大化模式): 语句将排队,直到释放已分配的资源或预配其他资源,这些操作可以通过增加仓库的大小来实现。

  • 多群集(处于自动扩展模式): 启动其他群集。

MAX_CONCURRENCY_LEVEL 可以与 STATEMENT_QUEUED_TIMEOUT_IN_SECONDS 参数结合使用,以确保仓库永远不会积压。

通常,此参数会限制仓库群集可以并发执行的语句数量,但也有例外。在以下情况下,仓库实际并发执行的语句数可能大于或小于指定级别:

  • 更小、更基本的语句: 更多语句可能会并发执行,因为小语句通常在仓库中可用计算资源的子集上执行。这意味着它们仅计入并发级别的一小部分。

  • 更大、更复杂的语句: 更少语句可能会并发执行。

默认值:

8

小技巧

此值只是 默认值,可以随时更改:

  • 降低仓库的并发级别可以限制在仓库中运行的并发查询数。当在给定时间内争夺仓库资源的查询较少时,可能会为查询提供更多资源,从而有可能提高查询性能,对于大型/复杂和多语句查询尤为如此。

  • 提高仓库的并发级别可能会减少可用于语句的计算资源:但是,它并不总是限制仓库可执行的并发查询总数,也不一定影响仓库的总性能,具体取决于正在执行的查询的性质。

请注意,如前所述,此参数会影响多群集仓库(处于自动扩展模式),因为 Snowflake 会自动在多群集仓库中启动新群集以避免排队。因此,降低多群集仓库的并发级别(处于自动扩展模式)可能会随时增加活动群集的数量。

此外,请记住,Snowflake 会在提交每个语句时自动为其分配资源,并且分配的数量由语句的各个要求决定。基于此,并通过一段时间内对用户查询模式的观察,我们选择了能平衡性能和资源使用情况的默认值。

因此,在更改默认值之前,我们建议您以较小的增量调整参数并观察一组具有代表性的查询所受到的影响,从而 测试 变更。

MAX_DATA_EXTENSION_TIME_IN_DAYS

类型:

对象(适用于数据库、架构和表)– 可以为账户 » 数据库 » 架构 » 表设置

数据类型:

整数

描述:

为防止表上的流过时,Snowflake 可以将表的数据保留期延长的最大天数。默认情况下,如果源表的 DATA_RETENTION_TIME_IN_DAYS 设置少于 14 天,并且尚未使用流,则 Snowflake 会暂时将此时间段延长到流的偏移量,最长可达 14 天,无论您的账户的 Snowflake Edition 如何。通过 MAX_DATA_EXTENSION_TIME_IN_DAYS 参数,您可以限制此自动延长期,从而控制因数据保留或合规性原因而导致的存储成本。

您可以在账户、数据库、架构和表级别设置此参数。请注意,在账户或架构级别设置参数仅影响尚未在较低级别(例如,表所有者所在的表级别)显式设置参数的表。0 的值会有效禁止指定数据库、架构或表自动延长。有关流和过时的更多信息,请参阅 使用表流进行变更跟踪

:

090 (即 90 天)– 0 的值会禁止数据保留期自动延长。要增加账户中表的最大值,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。

默认值:

14

备注

此参数可能导致数据保留期超过默认数据保留期。在新值增大之前,请确认新值符合合规性要求。

MULTI_STATEMENT_COUNT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

整数(常量)

客户端:

SQL API、JDBC、.NET、ODBC

描述:

使用多语句功能时要执行的语句数。

:

0:语句数量可变。

1:一个语句。

超过 1:当 MULTI_STATEMENT_COUNT 设置为会话参数时,您可以指定要执行的语句的确切数量。

不允许使用负数。

默认值:

1

MIN_DATA_RETENTION_TIME_IN_DAYS

类型:

账户 – 只能为账户设置

数据类型:

整数

描述:

为对象执行 Time Travel 操作(SELECT、CLONE、UNDROP)时,Snowflake 保留历史数据的最小天数。如果账户设置了数据保留的最小天数,则对象的数据保留期由 MAX(DATA_RETENTION_TIME_IN_DAYS, MIN_DATA_RETENTION_TIME_IN_DAYS) 确定。

有关更多信息,请参阅 了解和使用 Time Travel

:

01 (适用于 Standard Edition

090 (适用于 Enterprise Edition 或更高版本

默认值:

0

备注

  • 此参数仅适用于永久表,不适用于以下对象:

    • 瞬态表

    • 临时表

    • 外部表

    • 物化视图

  • 此参数只能由账户管理员(即具有 ACCOUNTADMIN 角色的用户或被授予 ACCOUNTADMIN 角色的其他角色)设置和取消设置。

  • 设置最短数据保留时间不会更改数据库、架构或表上设置的任何现有 DATA_RETENTION_TIME_IN_DAYS 参数值。数据库、架构或表的有效保留时间为 MAX(DATA_RETENTION_TIME_IN_DAYS, MIN_DATA_RETENTION_TIME_IN_DAYS)。

NETWORK_POLICY

类型:

账户 – 只能为账户设置(可由账户管理员和安全管理员设置)

类型:

对象(适用于用户) – 可以为账户 » 用户设置

数据类型:

字符串

描述:

指定要为账户强制实施的网络策略。网络策略允许根据用户的 IP 地址限制对账户的访问。有关更多详细信息,请参阅 使用网络策略控制网络流量

:

任何现有网络策略(使用 CREATE NETWORK POLICY 创建)

默认值:

备注

这是安全管理员(即具有 SECURITYADMIN 系统角色的用户)或更高级别人员可以设置的唯一账户参数。

NOORDER_SEQUENCE_AS_DEFAULT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定创建新序列或添加新表列时,默认设置是 ORDER 还是NOORDER 属性。

ORDER 和 NOORDER 属性决定是否按 递增或递减顺序为序列或自动递增列生成值

:
  • TRUE:创建新序列或添加新表列时,默认设置 NOORDER 属性。

    NOORDER 指定不保证值按递增顺序排列。

    例如,如果序列中有 START 1 INCREMENT 2,生成的值可能是 131015103 等。

    NOORDER 可以在需要同时执行多个插入操作时提高性能(例如,在多个客户端执行多个 INSERT 语句时)。

  • FALSE:创建新序列或添加新表列时,默认设置 ORDER 属性。

    ORDER 指定了为序列或自动递增列生成的值按升序排列(如果间隔为负值,则按降序排列)。

    例如,如果序列或自动递增的列具有 START 1 INCREMENT 2,生成的值可能是 13579 等。

如果设置此参数,则您设置的值将替换 2024_01 行为变更捆绑包中的值。

默认值:

TRUE

ODBC_TREAT_DECIMAL_AS_INT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定 ODBC 如何处理小数位数为零 (0) 的列。

:

TRUE: ODBC 将小数位数为零的列处理为 BIGINT。

FALSE: ODBC 将小数位数为零的列处理为 DECIMAL。

默认值:

FALSE

OAUTH_ADD_PRIVILEGED_ROLES_TO_BLOCKED_LIST

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

确定在基于 Snowflake 授权服务器的访问令牌创建 Snowflake 会话时,是否可以将 ACCOUNTADMIN、ORGADMIN 和 SECURITYADMIN 角色用作主要角色。

:

TRUE:将 ACCOUNTADMIN、ORGADMIN 和 SECURITYADMIN 角色添加到 Snowflake OAuth 安全集成的 BLOCKED_ROLES_LIST 属性,这意味着在使用 Snowflake OAuth 创建 Snowflake 会话时,这些角色不能用作主要角色。

FALSE:从 Snowflake OAuth 安全集成的 BLOCKED_ROLES_LIST 属性定义的阻止角色列表中移除 ACCOUNTADMIN、ORGADMIN 和 SECURITYADMIN。

默认值:

TRUE

PERIODIC_DATA_REKEYING

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

此参数仅适用于 Enterprise Edition (或更高版本)。此参数允许/禁止每年使用新密钥对表数据进行重新加密,以提供更高级别的数据保护。

您可以随时允许和禁止密钥重建。允许/禁止密钥重建不会导致加密数据出现缺口:

  • 如果在允许密钥重建一段时间后禁止,则已标记为密钥重建的所有数据会经过密钥重建,但之后的数据不会经过密钥重建,除非您再次重新允许。

  • 如果重新允许密钥重建,Snowflake 会自动为拥有满足条件的密钥(即密钥超过一年)的所有数据进行密钥重建。

有关为加密数据进行密钥重建的更多信息,请参阅 了解 Snowflake 中的加密密钥管理

:

TRUE:自数据上次加密已超过一年后,数据会经过密钥重建。密钥重建在后台进行,因此不会出现停机时间,并且受影响的数据/表始终可用。

FALSE:数据不会经过密钥重建。

默认值:

FALSE

备注

数据密钥重建会产生费用,因为在数据经过密钥重建后,旧数据(使用以前的密钥加密)会在标准时间段(7 天)内保持故障安全状态。出于此原因,默认禁止定期密钥重建。要允许定期密钥重建,您必须显式允许。

此外,密钥重建的故障安全费用不会在月度对账单中单独列出;此类费用包含在账户每月的故障安全总额中。

有关故障安全的更多信息,请参阅 了解和查看故障安全

PIPE_EXECUTION_PAUSED

类型:

对象 – 可以为账户 » 架构 » 管道设置

数据类型:

布尔

描述:

指定是否暂停正在运行的管道,主要为了准备将管道的所有权转移到其他角色:

  • 账户管理员(具有 ACCOUNTADMIN 角色的用户)可以在账户级别设置此参数,有效暂停或恢复账户中的所有管道。

  • 具有架构的 MODIFY 权限的用户可以暂停或恢复架构中的所有管道。

  • 管道所有者可以为管道设置此参数。

请注意,在账户或架构级别设置参数仅影响尚未在较低级别(例如,管道所有者所在的管道级别)显式设置参数的管道。

此参数支持以下实际用例:账户管理员可以在账户级别暂停所有管道,而管道所有者仍然可以运行单个管道。

:

TRUE:暂停管道。当参数设置为此值时, SYSTEM$PIPE_STATUS 函数将 executionState 显示为 PAUSED。请注意,管道所有者可以继续将文件提交到已暂停的管道;但是,在恢复管道之前不能处理文件。

FALSE:恢复管道,但前提是管道的所有权在暂停时尚未转移。当参数设置为此值时, SYSTEM$PIPE_STATUS 函数将 executionState 显示为 RUNNING

如果在管道暂停后管道的所有权转移给另一个角色,则此参数不能用于恢复管道。相反,请使用 SYSTEM$PIPE_FORCE_RESUME 函数显式 强制 恢复管道。

此参数支持所有者在恢复管道之前使用 SYSTEM$PIPE_STATUS 评估管道状态(例如,确定等待加载的文件数)。

默认值:

FALSE (管道默认处于运行状态)

备注

一般来说,管道不需要暂停,但转让所有权除外。

PREVENT_UNLOAD_TO_INLINE_URL

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

指定是否阻止对外部云存储位置执行临时数据卸载操作(即 COPY INTO <location> 直接在语句中指定云存储 URL 和访问设置)。有关示例,请参阅 将数据从表直接卸载到外部位置的文件

:

TRUE:COPY INTO <location> 语句必须 引用 命名的内部 (Snowflake) 或外部暂存区,或者 内部用户或表暂存区。命名的外部暂存区必须在其定义中存储云存储 URL 和访问设置。

FALSE:允许对外部云存储位置执行临时数据卸载操作。

默认值:

FALSE

PREVENT_UNLOAD_TO_INTERNAL_STAGES

类型:

用户 – 可以为账户 » 用户设置

数据类型:

布尔

描述:

指定是否使用 COPY INTO <location> 语句阻止对内部 (Snowflake) 暂存区执行数据卸载操作。

:

TRUE:阻止将数据从 Snowflake 表卸载到任何内部暂存区,包括用户暂存区、表暂存区或命名内部暂存区。

FALSE:允许将数据卸载到内部暂存区,仅受限于暂存区类型的默认限制:

  • 当前用户只能将数据卸载到自己的用户暂存区。

  • 仅当用户的活动角色具有表的 OWNERSHIP 权限时,用户才能将数据卸载到表暂存区。

  • 仅当用户的活动角色具有暂存区的 WRITE 权限时,用户才能将数据卸载到命名的内部暂存区。

默认值:

FALSE

QUERY_TAG

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串(最多 2000 个字符)

描述:

可选字符串,可用于标记在会话中执行的查询和其他 SQL 语句。标签显示在 QUERY_HISTORY、QUERY_HISTORY_BY_* 函数的输出中。

默认值:

QUOTED_IDENTIFIERS_IGNORE_CASE

类型:

会话 – 可以为账户 » 用户 » 会话设置

对象 – 可以为账户 » 数据库 » 架构 » 表设置

数据类型:

布尔

描述:

指定是否以大写字母形式存储和解析加双引号的对象标识符中的字母。默认情况下,Snowflake 在存储和解析加双引号的标识符时保留字母字符的大小写。(请参阅 标识符解析。)在 第三方应用程序始终在标识符周围使用双引号 的情况下,您可以使用此参数。

备注

更改此参数的默认值可能会影响您查找以前使用加双引号的混合大小写标识符创建的对象。请参阅 更改参数的影响

在表、架构或数据库上设置时,该设置仅影响视图和用户定义函数 (UDFs) 的主体中表名的计算。如果账户使用加双引号的标识符(应视为 不区分大小写 ),并且您计划与将加双引号的标识符视为 区分大小写 的账户共享视图或 UDF,您可以在计划共享的视图或 UDF 上设置此标识符。这允许其他账户在视图或 UDF 中正确解析表名。

:

TRUE:以大写字母形式存储和解析加双引号的标识符中的字母。

FALSE:保留加双引号的标识符中的字母的大小写。Snowflake 以指定的大小写解析和存储标识符。

有关更多信息,请参阅 标识符解析

默认值:

FALSE

例如:

标识符

参数设置为 FALSE (默认)

参数设置为 TRUE

"columnname"

解析为:

columnname

COLUMNNAME

"columnName"

解析为:

columnName

COLUMNNAME

"ColumnName"

解析为:

ColumnName

COLUMNNAME

"COLUMNNAME"

解析为:

COLUMNNAME

COLUMNNAME

REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_CREATION

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

指定在创建命名外部暂存区(使用 CREATE STAGE)以访问私有云存储位置时,是否需要存储集成对象作为云凭据。

:

TRUE:要创建外部暂存区以访问私有云存储位置,需要引用存储集成对象作为云凭据。

FALSE:创建外部暂存区不需要引用存储集成对象。如果已为存储位置配置显式云提供商凭据,则用户可以改为引用这些凭据,例如密钥或访问令牌。

默认值:

FALSE

REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_OPERATION

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

指定在从私有云存储位置加载数据或将数据卸载到私有云存储位置时,是否要求使用引用存储集成对象作为云凭据的命名外部暂存区。

:

TRUE:要从私有云存储位置加载数据或将数据卸载到私有云存储位置,需要使用引用存储集成对象的命名外部暂存区;指定引用显式云提供商凭据(如密钥或访问令牌)的命名外部暂存区将生成用户错误。

FALSE:用户可以使用引用显式云提供商凭据的命名外部暂存区,从私有云存储位置加载数据或将数据卸载到私有云存储位置。

如果 PREVENT_UNLOAD_TO_INLINE_URL 为 FALSE,则用户可以直接在 COPY 语句中指定显式云提供商凭据。

默认值:

FALSE

ROWS_PER_RESULTSET

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

数字

客户端:

SQL API

描述:

指定结果集中返回的最大行数。

:

0 至任何数字(即无限制)– 0 的值不指定最大值。

默认值:

0

S3_STAGE_VPCE_DNS_NAME

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 Amazon S3 接口端点的 DNS 名称。通过 适用于 Amazon S3 的 AWS PrivateLink (https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) 发送到账户内部暂存区的请求使用此端点进行连接。

有关更多信息,请参阅 使用多个专用接口端点访问多个内部暂存区

:

S3 接口端点的有效限定区域 DNS 名称。

标准格式以星号 (*) 开头,以 vpce.amazonaws.com 结尾(例如 *.vpce-sd98fs0d9f8g.s3.us-west-2.vpce.amazonaws.com)。有关获取此值的更多详细信息,请参阅 AWS 配置

备选格式包括 bucket.vpce-xxxxxxxx.s3.<region>.vpce.amazonaws.comvpce-xxxxxxxx.s3.<region>.vpce.amazonaws.com

默认值:

空字符串

SAML_IDENTITY_PROVIDER

类型:

账户 – 只能为账户设置

数据类型:

JSON

描述:

启用联合身份验证。此弃用参数会启用联合身份验证。此参数接受用单引号括起来的 JSON 对象,其中包含以下字段:

{
  "certificate": "",
  "issuer": "",
  "ssoUrl": "",
  "type"  : "",
  "label" : ""
}
Copy

其中:

certificate

指定用于验证 IdP 和 Snowflake 之间通信的证书(由 IdP 生成)。

issuer

指明 IdP 的 Issuer/EntityID。

可选。

有关如何在 Okta 和 AD FS 中获取此值的信息,请参阅 迁移到 SAML2 安全集成

ssoUrl

指定 Snowflake 用于发送 SAML 请求的 URL 端点(由 IdP 提供)。

type

指定用于联合身份验证的 IdP 类型("OKTA""ADFS""Custom")。

label

指定 Snowflake 登录页面中 IdP 的按钮文本。默认标签为 Single Sign On。如果更改默认标签,则指定的标签只能包含字母数字字符(即当前不支持特殊字符和空格)。

请注意,如果 "type" 字段为 "Okta",则不需要指定 label 字段的值,因为 Snowflake 会在按钮中显示 Okta 徽标。

有关更多信息(包括参数设置的示例),请参阅 迁移到 SAML2 安全集成

默认值:

SEARCH_PATH

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定搜索路径,用于解析查询中不合格的对象名称。有关更多信息,请参阅 查询中的名称解析

:

以逗号分隔的标识符列表。标识符可以是完全限定的架构名称,也可以是部分限定的名称。

默认值:

$current, $public

有关默认设置的更多信息,请参阅 默认搜索路径

备注

不能在客户端连接字符串(如 JDBC 或 ODBC 连接字符串)中设置此参数。在设置搜索路径之前必须建立会话。

SIMULATED_DATA_SHARING_CONSUMER

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定出于测试/验证共享数据(尤其是共享安全视图)的目的而模拟的使用者账户的名称。在会话中设置此参数时,共享视图将返回行,就像在指定的使用者账户(而不是提供商账户)中执行一样。

备注

仅当当前角色是视图的所有者时,模拟才会成功。如果当前角色不拥有视图,则模拟将失败并显示以下错误:

Shared view consumer simulation requires that the executing role owns the view.
Copy

有关更多信息,请参阅 Secure Data Sharing 简介使用共享

默认值:

重要

这是会话参数,意味着它可以在账户级别设置;但是,它仅适用于测试共享视图上的查询。由于该参数会影响会话中的所有查询,因此 不得 在账户级别设置该参数。

SSO_LOGIN_PAGE

类型:

账户 – 只能为账户设置

数据类型:

布尔

描述:

这个已弃用的参数在向用户推出之前,禁止以预览模式测试 SSO (启用联合身份验证后):

:

TRUE:预览模式已禁用,用户将在 Snowflake 主登录页面中,看到 Snowflake 为身份提供商启动的 SSO 的按钮(如 SAML_IDENTITY_PROVIDER 中指定)。

FALSE:预览模式已启用,可以使用以下 URL 测试 SSO :

  • 如果账户位于 US 西部: https://<account_identifier>.snowflakecomputing.cn/console/login?fedpreview=true

  • 如果账户位于任何其他区域: https://<account_identifier>.<region_id>.snowflakecomputing.cn/console/login?fedpreview=true

有关更多信息,请参阅:

默认值:

FALSE

STATEMENT_QUEUED_TIMEOUT_IN_SECONDS

类型:

会话 对象(适用于仓库)

可以为账户 » 用户 » 会话设置;也可以为单个仓库设置

数据类型:

数字

描述:

在系统取消 SQL 语句(查询、DDL、DML 等)之前,该语句在仓库中排队的时间量(以秒为单位)。此参数可以与 MAX_CONCURRENCY_LEVEL 参数结合使用,以确保仓库永远不会积压。

可以在会话层次结构中设置此参数。还可以为仓库设置此参数,以控制仓库处理的所有 SQL 语句的队列超时。为仓库和会话设置此参数时,将强制使用 最低 的非零值。例如:

  • 仓库的排队超时为 120 秒。

  • 会话的排队超时设置为 60 秒。

优先考虑会话超时(即,在会话中提交的任何语句在排队超过 60 秒后被取消)。

备注

对于 任务 的运行, USER_TASK_TIMEOUT_MS 任务参数优先于 STATEMENT_QUEUED_TIMEOUT_IN_SECONDS 设置。

在比较这两个参数的值时,请注意, STATEMENT_QUEUED_TIMEOUT_IN_SECONDS 以秒为单位设置,而 USER_TASK_TIMEOUT_MS 使用毫秒为单位。

有关 USER_TASK_TIMEOUT_MS 的更多信息,请参阅 CREATE TASK可选参数 部分。

:

0 至任何数字(即无限制)– 0 的值指定不强制超时。只要队列仍然存在,语句就会保持排队状态。

默认值:

0 (即,没有超时)

STATEMENT_TIMEOUT_IN_SECONDS

类型:

会话 对象(适用于仓库)

可以为账户 » 用户 » 会话设置;也可以为单个仓库设置

数据类型:

数字

描述:

距离系统取消运行中 SQL 语句(查询、DDL、DML 等)的时间(以秒为单位)。

可以在会话层次结构中设置此参数。还可以为单个仓库设置此参数,以控制仓库处理的所有 SQL 语句的运行时。为仓库和会话设置此参数时,将强制使用 最低 的非零值。例如:

  • 仓库超时为 1000 秒。

  • 会话超时设置为 500 秒。

优先考虑会话超时(即,在会话中提交的任何语句在运行超过 500 秒后会被取消)。

备注

对于 任务 的运行:

  • 如果任务依赖虚拟仓库获取计算资源,并且 STATEMENT_TIMEOUT_IN_SECONDS 在仓库级别设置,则有效超时是以下参数中较小的一个:

    • STATEMENT_TIMEOUT_IN_SECONDS

    • USER_TASK_TIMEOUT_MS (在任务上设置的参数)

  • 否则, USER_TASK_TIMEOUT_MS 任务参数优先于 STATEMENT_TIMEOUT_IN_SECONDS 优先于任务运行的设置。

在比较这两个参数的值时,请注意, STATEMENT_TIMEOUT_IN_SECONDS 以秒为单位设置,而 USER_TASK_TIMEOUT_MS 使用毫秒为单位。

有关 USER_TASK_TIMEOUT_MS 的更多信息,请参阅 CREATE TASK可选参数 部分。

:

0604800 (即 7 天)– 0 的值指定强制执行最大超时值。

默认值:

172800 (即 2 天)

STRICT_JSON_OUTPUT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

此参数指定会话中的 JSON 输出是否与通用标准(如 http://json.org (http://json.org) 所述)兼容。

根据设计,Snowflake 允许包含非标准值的 JSON 输入;但是,这些非标准值可能会导致与其他平台和语言不兼容的 Snowflake 输出 JSON。此参数启用后,可确保 Snowflake 输出有效/兼容 JSON。

:

TRUE:启用严格 JSON 输出,强制执行以下行为:

  • 输入中缺少的和未定义的值映射到 JSON NULL。

  • 输入中的非有限数值(Infinity、-Infinity、NaN 等)映射到具有有效 JavaScript 表示形式的字符串。这样可以实现与 JavaScript 的兼容,并允许将这些值转换回数值。

FALSE:未启用严格 JSON 输出。

默认值:

FALSE

例如:

非标准 JSON 输入

参数设置为 FALSE (默认)

参数设置为 TRUE

[289, 2188,]

输出:

[ 289, 2188, undefined ]

[ 289, 2188, null ]

[undefined, undefined]

输出:

[ undefined, undefined ]

[ null, null ]

[Infinity,inf,-Infinity,-inf]

输出:

[ Infinity, Infinity, -Infinity, -Infinity ]

[ "Infinity", "Infinity", "-Infinity", "-Infinity" ]

[NaN,nan]

输出:

[ NaN, NaN ]

[ "NaN", "NaN" ]

SUSPEND_TASK_AFTER_NUM_FAILURES

类型:

对象(适用于数据库、架构和任务)– 可以为账户 » 数据库 » 架构 » 任务设置

数据类型:

整数

描述:

导致独立任务或 任务图 根任务自动暂停的连续失败任务运行次数。失败的任务运行包括任务主体中的 SQL 代码产生用户错误或超时的运行。由于系统错误而跳过、取消或失败的任务运行被视为不确定,不会包含在失败的任务运行次数中。

当参数设置为 0 时,不会自动暂停失败的任务。

将参数设置为大于 0 的值时,以下行为适用于独立任务或任务图根任务的运行:

  • 在连续任务运行失败或超时达到指定次数后,独立任务会自动暂停。

  • 任务图中的 任何 单个任务连续运行失败或超时达到指定次数后,根任务将自动暂停。

该参数的默认值设置为 10,即任务运行连续失败 10 次后自动暂停。

在账户、数据库或架构级别显式设置参数值时,变更将应用于下一次计划运行期间已修改对象中包含的任务(包括正在运行的任务图中的任何子任务)。

暂停独立任务会重置其任务运行失败次数。暂停任务图的根任务会重置任务图中每个任务的计数。

:

0 – 没有上限。

默认值:

10

TASK_AUTO_RETRY_ATTEMPTS

类型:

对象(适用于数据库、架构和任务)– 可以为账户 » 数据库 » 架构 » 任务设置

数据类型:

整数

描述:

指定任务图自动重试的次数。如果任何任务图在 FAILED 状态下完成,Snowflake 可以自动从失败的图中的最后一个任务重试任务图。失败的任务运行包括任务主体中的 SQL 代码在运行时产生用户错误或超时。跳过、取消或因系统错误而失败的任务运行被视为不确定的任务运行,不计入失败任务运行次数。

任务图自动重试功能默认处于禁用状态。要启用此功能,请将 TASK_AUTO_RETRY_ATTEMPTS 设置为大于 0 的值。

在账户、数据库或架构级别设置参数值后,该更改将在下一次计划运行期间应用于修改后对象中包含的任务。

:

0 – 没有上限。

默认值:

0

TIMESTAMP_DAY_IS_ALWAYS_24H

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定 DATEADD 函数(及其别名)对于跨多天的表达式是否始终将一天视为正好 24 小时。

:

TRUE:一天总是正好是 24 小时。

FALSE:一天并不总是 24 小时。

默认值:

FALSE

重要

如果设置为 TRUE,则在夏令时 (DST) 生效时,可能 无法 保留一天中的实际时间。例如:

alter session set TIMESTAMP_DAY_IS_ALWAYS_24H = true;

-- With DST beginning on 2018-03-11 at 2 AM, America/Los_Angeles time zone
select dateadd(day, 1, '2018-03-10 09:00:00'::TIMESTAMP_LTZ), dateadd(day, 1, '2018-11-03 09:00:00'::TIMESTAMP_LTZ);

+-------------------------------------------------------+-------------------------------------------------------+
| DATEADD(DAY, 1, '2018-03-10 09:00:00'::TIMESTAMP_LTZ) | DATEADD(DAY, 1, '2018-11-03 09:00:00'::TIMESTAMP_LTZ) |
|-------------------------------------------------------+-------------------------------------------------------|
| 2018-03-11 10:00:00.000 -0700                         | 2018-11-04 08:00:00.000 -0800                         |
+-------------------------------------------------------+-------------------------------------------------------+

alter session set TIMESTAMP_DAY_IS_ALWAYS_24H = false;

select dateadd(day, 1, '2018-03-10 09:00:00'::TIMESTAMP_LTZ), dateadd(day, 1, '2018-11-03 09:00:00'::TIMESTAMP_LTZ);

+-------------------------------------------------------+-------------------------------------------------------+
| DATEADD(DAY, 1, '2018-03-10 09:00:00'::TIMESTAMP_LTZ) | DATEADD(DAY, 1, '2018-11-03 09:00:00'::TIMESTAMP_LTZ) |
|-------------------------------------------------------+-------------------------------------------------------|
| 2018-03-11 09:00:00.000 -0700                         | 2018-11-04 09:00:00.000 -0800                         |
+-------------------------------------------------------+-------------------------------------------------------+
Copy

TIMESTAMP_INPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 TIMESTAMP 数据类型别名的输入格式。有关更多信息,请参阅 日期和时间输入和输出格式

:

任何有效的、受支持的时间戳格式或 AUTO

AUTO 指定 Snowflake 尝试在会话期间自动检测系统中存储的时间戳的格式)

默认值:

AUTO

TIMESTAMP_LTZ_OUTPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 TIMESTAMP_LTZ 数据类型的显示格式。如果未指定格式,则默认为 TIMESTAMP_OUTPUT_FORMAT。有关更多信息,请参阅 日期和时间输入和输出格式

:

任何有效的、受支持的时间戳格式

默认值:

TIMESTAMP_NTZ_OUTPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 TIMESTAMP_NTZ 数据类型的显示格式。

:

任何有效的、受支持的时间戳格式

默认值:

YYYY-MM-DD HH24:MI:SS.FF3

TIMESTAMP_OUTPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 TIMESTAMP 数据类型别名的显示格式。有关更多信息,请参阅 日期和时间输入和输出格式

:

任何有效的、受支持的时间戳格式

默认值:

YYYY-MM-DD HH24:MI:SS.FF3 TZHTZM

TIMESTAMP_TYPE_MAPPING

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 TIMESTAMP 数据类型别名映射到的 TIMESTAMP_* 变体。

:

TIMESTAMP_LTZTIMESTAMP_NTZTIMESTAMP_TZ

默认值:

TIMESTAMP_NTZ

TIMESTAMP_TZ_OUTPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 TIMESTAMP_TZ 数据类型的显示格式。如果未指定格式,则默认为 TIMESTAMP_OUTPUT_FORMAT。有关更多信息,请参阅 日期和时间输入和输出格式

:

任何有效的、受支持的时间戳格式

默认值:

TIMEZONE

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串(常量)

描述:

指定会话的时区。

:

从 IANA Time Zone Database (https://www.iana.org/time-zones) 的版本 2021a 起,您可以指定 时区名称 (https://data.iana.org/time-zones/tzdb-2021a/zone1970.tab) 或 链接名称 (https://data.iana.org/time-zones/tzdb-2021a/backward) (例如 America/Los_AngelesEurope/LondonUTCEtc/GMT 等)。

默认值:

America/Los_Angeles

备注

  • 时区名称区分大小写,必须 放在单引号内(例如 'UTC')。

  • Snowflake 不支持 大多数时区 缩写 (link removed) (例如 PDTEST 等),因为给定的缩写可能指几个不同的时区之一。例如,CST 可能指北美中部标准时间 (UTC-6)、古巴标准时间 (UTC-5) 和中国标准时间 (UTC+8)。

TIME_INPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 TIME 数据类型的输入格式。有关更多信息,请参阅 日期和时间输入和输出格式

:

任何有效的、受支持的时间格式或 AUTO

AUTO 指定 Snowflake 尝试在会话期间自动检测系统中存储的时间的格式)

默认值:

AUTO

TIME_OUTPUT_FORMAT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定 TIME 数据类型的显示格式。有关更多信息,请参阅 日期和时间输入和输出格式

:

任何有效的、受支持的时间格式

默认值:

HH24:MI:SS

TRACE_LEVEL

类型:

会话 – 可以为账户 » 用户 » 会话设置

类型:

对象(适用于数据库、架构、存储过程和 UDFs)– 可以为账户 » 数据库 » 架构 » 过程和账户 » 数据库 » 架构 » 函数设置

数据类型:

字符串(常量)

描述:

控制如何将跟踪事件引入到事件表中。有关跟踪级别的更多信息,请参阅 设置跟踪级别

:

ALWAYS:所有跨度和追踪事件将记录在事件表中。

ON_EVENT:仅当存储过程或 UDFs 显式添加事件时,才会将跟踪事件记录在事件表中。

OFF:事件表不会记录任何跨度或跟踪事件。

默认值:

OFF

备注

跟踪事件时,您还必须为受支持的其中一个值设置 LOG_LEVEL 参数

TRANSACTION_ABORT_ON_ERROR

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

BOOLEAN

描述:

指定非自动提交事务内发出的语句返回错误时要执行的操作。

:

TRUE:非自动提交事务中止。在该事务内发出的所有语句都将失败,直到执行提交或回滚语句以关闭该事务。

FALSE:非自动提交事务不会中止。

默认值:

FALSE

TRANSACTION_DEFAULT_ISOLATION_LEVEL

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串

描述:

指定用户会话中事务的隔离级别。

:

READ COMMITTED (仅限当前支持的值)

默认值:

READ COMMITTED

TWO_DIGIT_CENTURY_START

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

数字

描述:

指定 2 位数年份的“世纪起始”年份(即此类日期可以表示的最早年份)。此参数可防止在导入或转换具有 YY 日期格式组件(即以 2 位数字表示的年份)的数据时出现不明确的日期。

:

19002100 (超出此范围的任何值都会返回错误)

默认值:

1970

例如:

Year

参数设置为 1900

参数设置为 1970 (默认)

参数设置为 1980

参数设置为 1990

参数设置为 2000

00

变为:

1900

2000

2000

2000

2000

79

变为:

1979

1979

2079

2079

2079

89

变为:

1989

1989

1989

2089

2089

99

变为:

1999

1999

1999

1999

2099

UNSUPPORTED_DDL_ACTION

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

字符串(常量)

描述:

确定为约束条件指定的不支持(即非默认)值是否会返回错误。

:

IGNORE:Snowflake 不会为不受支持的值返回错误。

FAIL:Snowflake 为不受支持的值返回错误。

默认值:

IGNORE

重要

此参数不确定是否创建约束条件。无论此参数如何设置,Snowflake 都不会使用不支持的值创建约束条件。

有关更多信息,请参阅 约束属性

USE_CACHED_RESULT

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

布尔

描述:

指定在提交匹配查询时是否重用持久化查询结果(如果可用)。

:

TRUE:在提交查询时,Snowflake 会检查以前执行的查询的查询结果是否匹配,如果存在匹配结果,则使用该结果,而不是执行查询。这有助于减少查询时间,因为 Snowflake 直接从缓存中检索结果。

FALSE:Snowflake 在提交时执行每个查询,而不考虑是否存在匹配的查询结果。

默认值:

TRUE

USER_TASK_MANAGED_INITIAL_WAREHOUSE_SIZE

类型:

对象(适用于数据库、架构和任务)– 可以为账户 » 数据库 » 架构 » 任务设置

数据类型:

字符串

描述:

指定要为首次运行任务预配的计算资源的大小,然后 Snowflake 可以使用任务历史记录来确定理想大小。任务成功完成几次运行后,Snowflake 将忽略此参数设置。如果任务历史记录不适用于给定任务,则计算资源将还原为此初始大小。

备注

此参数仅适用于 无服务器任务

大小等同于创建仓库时可用的计算资源。如果省略该参数,则使用中型 (MEDIUM) 仓库执行任务的第一次运行。

您可以在创建任务 之后 但在成功运行一次 之前 更改单个任务的初始大小(使用 ALTER TASK)。在此任务的首次运行启动后更改该参数,这对当前或未来任务运行的计算资源没有影响。

请注意,暂停和恢复任务不会移除用于调整计算资源大小的任务历史记录。仅当重新创建任务(使用 CREATE OR REPLACE TASK 语法)时,才会移除任务历史记录。

:

任何传统仓库大小:SMALLMEDIUMLARGE 等,大小上限为 XXLARGE

默认值:

MEDIUM

USER_TASK_TIMEOUT_MS

类型:

对象(适用于数据库、架构和任务)– 可以为账户 » 数据库 » 架构 » 任务设置

数据类型:

数字

描述:

指定任务超时前单次运行的时间限制(以毫秒为单位)。

备注

  • 在显著增加任务的时间限制之前,请考虑是否可以优化任务定义中的 SQL 语句(通过重写语句或使用存储过程),或者是否应增加具有用户管理的计算资源的任务的仓库大小。

  • 在某些情况下, STATEMENT_TIMEOUT_IN_SECONDS 参数优先于 USER_TASK_TIMEOUT_MS。有关详细信息,请参阅 STATEMENT_TIMEOUT_IN_SECONDS

:

0 - 86400000 (1 天)。

默认值:

3600000 (1 小时)

WEEK_OF_YEAR_POLICY

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

数字

描述:

指定如何计算给定年份中的周数。

:

0:使用的语义等同于 ISO 语义,其中如果一周中至少有 4 天属于给定年份,则该周属于这个年份。

1:1 月 1 日属于一年中的第一周,12 月 31 日属于一年的最后一周。

默认值:

0 (即类似 ISO 的行为)

小技巧

1 是最常见的值(基于我们收到的反馈)。有关更多信息(包括示例),请参阅 日历周和工作日

WEEK_START

类型:

会话 – 可以为账户 » 用户 » 会话设置

数据类型:

数字

描述:

指定一周的第一天(由与周相关的日期函数使用)。

:

0:使用传统的 Snowflake 行为(即类似 ISO 的语义)。

1 (星期一)至 7 (星期日):所有与周相关的函数都使用从一周中的指定日期开始的周。

默认值:

0 (即传统 Snowflake 行为)

小技巧

1 是最常见的值(基于我们收到的反馈)。有关更多信息(包括示例),请参阅 日历周和工作日

语言: 中文