snow object create¶
创建给定类型的对象。检查文档以获取受支持对象和参数的列表。
语法¶
snow object create
<object_type>
<object_attributes>
--json <object_json>
--if-not-exists
--replace
--connection <connection>
--host <host>
--port <port>
--account <account>
--user <user>
--password <password>
--authenticator <authenticator>
--private-key-file <private_key_file>
--token-file-path <token_file_path>
--database <database>
--schema <schema>
--role <role>
--warehouse <warehouse>
--temporary-connection
--mfa-passcode <mfa_passcode>
--enable-diag
--diag-log-path <diag_log_path>
--diag-allowlist-path <diag_allowlist_path>
--format <format>
--verbose
--debug
--silent
实参¶
object_type
对象类型。例如表、数据库、计算池。
object_attributes...
对象属性以键值对列表的形式提供,例如 name=my_db comment='created with Snowflake CLI'。 检查文档以获取每个对象可用参数的完整列表。
选项¶
--json TEXT
对象定义的格式为 JSON,例如 '{"name": "my_db", "comment": "created with Snowflake CLI"}'。 检查文档以获取每个对象可用参数的完整列表。
--if-not-exists
仅当指定的对象尚不存在时才应用此操作。默认值:False。
--replace
如果此对象已存在,请将其替换。默认值:False。
--connection, -c, --environment TEXT
连接名称,如您在
config.toml
文件中所定义。默认值:default
。--host TEXT
连接的主机地址。替换为连接指定的值。
--port INTEGER
连接的端口。替换为连接指定的值。
--account, --accountname TEXT
分配给 Snowflake 账户的名称。替换为连接指定的值。
--user, --username TEXT
连接到 Snowflake 的用户名。替换为连接指定的值。
--password TEXT
Snowflake 密码。替换为连接指定的值。
--authenticator TEXT
Snowflake 身份验证器。替换为连接指定的值。
--private-key-file, --private-key-path TEXT
Snowflake 私钥文件路径。替换为连接指定的值。
--token-file-path TEXT
连接到 Snowflake 时应使用的带有 OAuth 令牌的文件路径。
--database, --dbname TEXT
要使用的数据库。替换为连接指定的值。
--schema, --schemaname TEXT
要使用的数据库架构。替换为连接指定的值。
--role, --rolename TEXT
要使用的角色。替换为连接指定的值。
--warehouse TEXT
要使用的仓库。替换为连接指定的值。
--temporary-connection, -x
使用用命令行参数定义的连接,而不是在配置中定义的连接。默认值:False。
--mfa-passcode TEXT
用于多重身份验证的令牌 (MFA)。
--enable-diag
运行 Python 连接器诊断测试。默认值:False。
--diag-log-path TEXT
诊断报告路径。默认:<temporary_directory>。
--diag-allowlist-path TEXT
可选允许列表的诊断报告路径。
--format [TABLE|JSON]
指定输出格式。默认:TABLE。
--verbose, -v
显示日志级别
info
及更高级别的日志条目。默认值:False。--debug
显示日志级别
debug
及更高级别的日志条目;调试日志包含其他信息。默认值:False。--silent
关闭到控制台的中间输出。默认值:False。
--help
显示此命令的帮助文本。
使用说明¶
snow object create
命令会根据提供的对象属性或定义创建以下类型的 Snowflake 对象:
account
catalog-integration
compute-pool
database
database-role
dynamic-table
event-table
external-volume
function
image-repository
managed-account
network-policy
notebook
notification-integration
pipe
procedure
role
schema
service
stage
stream
table
task
user-defined-function
view
warehouse
对于每个对象,您必须使用对象属性或对象定义指定适当的对象详细信息。
使用
object_attributes
参数指定对象详细信息,作为一系列<key>=<value>
对,例如:snow object create database name=my_db comment="Created with Snowflake CLI"
使用
--json object_definition
选项将对象详细信息指定为 JSON,例如:snow object create table name=my_table columns='[{"name":"col1","datatype":"number", "nullable":false}]' constraints='[{"name":"prim_key", "column_names":["col1"], "constraint_type":"PRIMARY KEY"}]' --database my_db
有关更多示例,请参阅 示例。
备注
以下对象类型需要在连接配置中标识数据库,例如 config.toml
,或使用 --database
选项传递给命令。
image-repository
schema
service
table
task
以下部分描述了 Snowflake CLI 支持的所选对象类型的属性。
您可以通过检查相应的 SQL CREATE 命令引用来查找其他类型对象的属性,例如 CREATE ACCOUNT。
计算池对象属性¶
属性 |
描述 |
---|---|
name 必填,字符串型 |
Snowflake 对象标识符。 |
min_nodes 必填、整数型 |
计算池的最小节点数。 |
max_nodes 必填、整数型 |
计算池的最大节点数。 |
instance_family 必填,字符串型 |
实例族的名称。有关实例族的详细信息,请参阅 SQL CREATE COMPUTE POOL 命令。 |
auto_resume 可选,字符串型 |
是否在提交任何需要计算池的语句时自动恢复计算池。 |
comment 可选,字符串型 |
用于描述计算池的注释。 |
auto_suspend_secs 可选,字符串型 |
您希望 Snowflake 自动暂停计算池的不活动秒数。 |
数据库对象属性¶
属性 |
描述 |
---|---|
name 必填,字符串型 |
Snowflake 对象标识符。 |
comment 可选,字符串型 |
用于描述数据库的注释。 |
data_retention_time_in_days 可选、整数型 |
指定可以对架构执行 Time Travel 操作(CLONE 和 UNDROP)的天数,以及在架构中创建的所有表的默认 Time Travel 保留时间。 |
default_ddl_collation 可选,字符串型 |
用于添加到数据库的所有架构和表的默认排序规则规范。您可以在架构和单个表级别覆盖此默认值。 |
max_data_extension_time_in_days 可选、整数型 |
为防止数据库中的表上的流过时,Snowflake 可以将表的数据保留期延长的最大天数。 |
suspend_task_after_num_failures 可选、整数型 |
当前任务在任务连续多少次运行失败后会自动暂停。 |
user_task_managed_initial_warehouse_size 可选、整数型 |
要为首次运行任务预置的计算资源的大小,然后 Snowflake 可以使用任务历史记录来确定理想大小。 可能的值包括:XSMALL、SMALL、MEDIUM、LARGE 和 XLARGE。 |
user_task_timeout_ms 可选、整数型 |
任务超时前单次运行的时间限制(以毫秒为单位)。 |
镜像仓库对象属性¶
属性 |
描述 |
---|---|
name 必填,字符串型 |
Snowflake 对象标识符。 |
架构对象属性¶
属性 |
描述 |
---|---|
name 必填,字符串型 |
Snowflake 对象标识符。 |
comment 可选,字符串型 |
用于描述架构的注释。 |
data_retention_time_in_days 可选、整数型 |
指定可以对架构执行 Time Travel 操作(CLONE 和 UNDROP)的天数,以及在架构中创建的所有表的默认 Time Travel 保留时间。 |
default_ddl_collation 可选,字符串型 |
用于添加到数据库的所有架构和表的默认排序规则规范。您可以在架构和单个表级别覆盖此默认值。 |
max_data_extension_time_in_days 可选、整数型 |
为防止数据库中的表上的流过时,Snowflake 可以将表的数据保留期延长的最大天数。 |
suspend_task_after_num_failures 可选、整数型 |
当前任务在任务连续多少次运行失败后会自动暂停。 |
user_task_managed_initial_warehouse_size 可选、整数型 |
要为首次运行任务预置的计算资源的大小,然后 Snowflake 可以使用任务历史记录来确定理想大小。 |
user_task_timeout_ms 可选、整数型 |
任务超时前单次运行的时间限制(以毫秒为单位)。 |
服务对象属性¶
属性 |
描述 |
---|---|
name 必填,字符串型 |
Snowflake 对象标识符。 |
compute_pool 必填,字符串型 |
在其上运行服务的账户中的计算池名称。 |
spec 必填、对象 |
服务规范。有关详细信息,请参阅 服务规范表。 |
external_access_integrations 可选、字符串列表 |
允许您的服务访问外部站点的外部访问集成的名称。 |
auto_resume 可选、布尔 |
在调用服务函数或入口时是否自动恢复服务。 |
min_instances 可选、整数型 |
要运行的最小服务实例数。 |
max_instances 可选、整数型 |
要运行的最大服务实例数。 |
query_warehouse 可选,字符串型 |
要在以下情况下使用的仓库:服务容器连接到 Snowflake 以执行查询,但未显式指定要使用的仓库。 |
comment 可选,字符串型 |
为服务添加注释。 |
Service specification attributes
属性 |
描述 |
---|---|
spec_type 必填,字符串型 |
服务规范的类型。可能的值包括 |
spec_text 必填,字符串型 |
(仅适用于 服务规范。您可以使用一个 美元符号对 ($$) 分隔规范字符串的开头和结尾。 |
stage 必填,字符串型 |
(仅适用于 存储规范文件的 Snowflake 内部暂存区,例如 |
name 必填,字符串型 |
(仅适用于 暂存区中服务规范文件的路径,例如 |
表对象属性¶
属性 |
描述 |
---|---|
name 必填,字符串型 |
Snowflake 对象标识符。名称对于在其中创建表的架构必须是唯一的。 |
kind 可选,字符串型 |
表类型。可能的值包括:TABLE(永久表)、TEMPORARY 和 TRANSIENT。 |
comment 可选,字符串型 |
表的描述。 |
cluster_by[] 可选、字符串列表 |
表中作为群集密钥的一个或多个列或列表达式的列表。 |
enable_schema_evolution 可选、布尔 |
是否启用或禁用表的架构演化。 |
change_tracking 可选、布尔 |
是否启用或禁用表的变更跟踪。 |
data_retention_time_in_days 可选、整数型 |
表的保留期(以天为单位),以便可以对表中的历史数据执行 Time Travel 操作(SELECT、CLONE、UNDROP)。 |
max_data_extension_time_in_days 可选、整数型 |
为防止表中的流过时,Snowflake 可以将数据保留期延长的最大天数。 |
default_ddl_collation 可选,字符串型 |
为表中的列指定默认排序规则规范,包括将来添加到表中的列。 |
columns 必填、列列表 |
列定义的列表。请参阅 列定义属性。 |
constraints 可选、约束列表 |
约束定义的列表。请参阅 约束定义属性。 |
Column definition attributes
属性 |
描述 |
---|---|
name 必填,字符串型 |
列名称。 |
datatype 必填,字符串型 |
列中包含的数据类型。 |
nullable 可选、布尔 |
列是否允许 NULL 值。 |
collate 可选,字符串型 |
用于列操作(如字符串比较)的排序规则。 |
default 可选,字符串型 |
在未通过 INSERT 或 CREATE TABLE AS SELECT 语句明确指定值的情况下,是否自动在列中插入默认值。 |
autoincrement 可选、布尔 |
是否自动递增并将数字包含在连续的列中。 |
autoincrement_start 可选、整数型 |
列的起始值。 |
autoincrement_increment 可选、整数型 |
用于确定下一个自动递增数字的增量。 |
comment 可选,字符串型 |
列描述。 |
Constraint definition attributes
属性 |
描述 |
---|---|
name 必填,字符串型 |
约束名称。 |
column_names 必填、字符串列表 |
应用约束的列名称。 |
constraint_type 必填,字符串型 |
约束类型。可能的值包括:UNIQUE、PRIMARY、KEY 和 FOREIGN KEY。 |
referenced_table_name 必填,字符串型 |
(仅适用于 外键引用的表名称 |
referenced_column_names 可选,字符串型 |
(仅适用于 外键引用的列名称 |
任务属性¶
属性 |
描述 |
---|---|
name 必填,字符串型 |
Snowflake 对象标识符。 |
definition 必填,字符串型 |
任务的 SQL 定义。它可以是一个单一的 SQL 语句、对存储过程的调用,或者使用 Snowflake Scripting 的过程逻辑。 |
warehouse 可选,字符串型 |
为任务运行提供计算资源的虚拟仓库。 |
schedule 可选,字符串型 |
定期运行任务的计划。有关详细信息,请参阅 任务计划属性。 |
comment 可选,字符串型 |
任务的注释描述。 |
predecessors 可选、字符串列表 |
当前任务的一个或多个前置任务。 |
user_task_managed_initial_warehouse_size 可选,字符串型 |
为任务首次运行配置的计算资源的大小。 |
user_task_timeout_ms 可选,字符串型 |
任务超时前单次运行的时间限制(以毫秒为单位)。 |
suspend_task_after_num_failures 可选、整数型 |
当前任务在任务连续多少次运行失败后会自动暂停。 |
condition 可选,字符串型 |
布尔 SQL 表达式条件;支持使用 AND/OR 联接的多个条件。 |
allow_overlapping_execution 可选、布尔 |
是否允许 DAG 的多个实例同时运行。 |
Task schedule attributes
属性 |
描述 |
---|---|
schedule_type 可选,字符串型 |
计划的类型。可能的值包括 |
cron_expr 可选,字符串型 |
(仅适用于 用于任务执行的 cron 表达式,例如 |
timezone 可选,字符串型 |
(仅适用于 计划的时区,例如 |
minutes 可选,字符串型 |
(仅适用于 每次任务运行之间的分钟数。 |
仓库属性¶
属性 |
描述 |
---|---|
name 必填,字符串型 |
Snowflake 对象标识符。 |
comment 可选,字符串型 |
仓库的描述。 |
warehouse_type 可选,字符串型 |
仓库的类型。可能的值包括:STANDARD 和 SNOWPARK-OPTIMIZED。 |
warehouse_size 可选,字符串型 |
仓库的大小。可能的值包括:XSMALL、SMALL、MEDIUM、LARGE、XLARGE、XXLARGE、XXXLARGE、X4LARGE、X5LARGE 和 X6LARGE。 |
auto_suspend 可选,字符串型 |
仓库自动暂停之前的时间(以秒为单位)。 |
auto_resume 可选,字符串型 |
在向仓库提交 SQL 语句时,是否自动恢复仓库。可能的值包括:“true”和“false”。 |
max_concurrency_level 可选、整数型 |
仓库集群执行的 SQL 语句的并发级别。 |
statement_queued_timeout_in_seconds 可选、整数型 |
在系统取消 SQL 语句之前,该语句在仓库中排队的时间量(以秒为单位)。 |
statement_timeout_in_seconds 可选、整数型 |
距离系统取消运行中 SQL 语句的时间(以秒为单位)。 |
resource_monitor 可选,字符串型 |
明确分配给仓库的资源监视器的名称。显式将资源监视器分配给仓库时,监视器将控制仓库使用的每月 Credit。 |
示例¶
使用
option-attributes
参数创建数据库对象:snow object create database name=my_db comment='Created with Snowflake CLI'
使用
option-attributes
参数创建表对象:snow object create table name=my_table columns='[{"name":"col1","datatype":"number", "nullable":false}]' constraints='[{"name":"prim_key", "column_names":["col1"], "constraint_type":"PRIMARY KEY"}]' --database my_db
使用
--json object-definition
选项创建数据库:snow object create database --json '{"name":"my_db", "comment":"Created with Snowflake CLI"}'
使用
--json object-definition
选项创建表:snow object create table --json "$(cat table.json)" --database my_db
其中
table.json
包含以下内容:{ "name": "my_table", "columns": [ { "name": "col1", "datatype": "number", "nullable": false } ], "constraints": [ { "name": "prim_key", "column_names": ["col1"], "constraint_type": "PRIMARY KEY" } ] }