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
Copy

实参

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"
    
    Copy
  • 使用 --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
    
    Copy
  • 有关更多示例,请参阅 示例

备注

以下对象类型需要在连接配置中标识数据库,例如 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

必填字符串型

服务规范的类型。可能的值包括 from_filefrom_inline

spec_text

必填字符串型

(仅适用于 spec_type="from_inline"

服务规范。您可以使用一个 美元符号对 ($$) 分隔规范字符串的开头和结尾。

stage

必填字符串型

(仅适用于 spec_type="from_inline"

存储规范文件的 Snowflake 内部暂存区,例如 @tutorial_stage

name

必填字符串型

(仅适用于 spec_type="from_inline"

暂存区中服务规范文件的路径,例如 some-dir/echo_spec.yaml

表对象属性

表属性

属性

描述

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

必填字符串型

(仅适用于 constraint_type="FOREIGN KEY"

外键引用的表名称

referenced_column_names

可选字符串型

(仅适用于 constraint_type="FOREIGN KEY"

外键引用的列名称

任务属性

任务属性

属性

描述

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_TYPEMINUTES_TYPE

cron_expr

可选字符串型

(仅适用于 schedule_type="CRON_TYPE"

用于任务执行的 cron 表达式,例如 “* * * * ? *”

timezone

可选字符串型

(仅适用于 schedule_type="CRON_TYPE"

计划的时区,例如 "america/los_angeles"

minutes

可选字符串型

(仅适用于 schedule_type="MINUTES_TYPE"

每次任务运行之间的分钟数。

仓库属性

仓库属性

属性

描述

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'
    
    Copy
  • 使用 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
    
    Copy
  • 使用 --json object-definition 选项创建数据库:

    snow object create database --json '{"name":"my_db", "comment":"Created with Snowflake CLI"}'
    
    Copy
  • 使用 --json object-definition 选项创建表:

    snow object create table --json "$(cat table.json)" --database my_db
    
    Copy

    其中 table.json 包含以下内容:

    {
      "name": "my_table",
      "columns": [
        {
          "name": "col1",
          "datatype": "number",
          "nullable": false
        }
      ],
      "constraints": [
        {
          "name": "prim_key",
          "column_names": ["col1"],
          "constraint_type": "PRIMARY KEY"
        }
      ]
    }
    
    Copy
语言: 中文