CREATE STREAMLIT

Creates a new Streamlit object in Snowflake or replaces an existing Streamlit object in the same schema.

另请参阅:

SHOW STREAMLITS, DESCRIBE STREAMLIT, ALTER STREAMLIT, DROP STREAMLIT, UNDROP STREAMLIT

语法

CREATE [ OR REPLACE ] STREAMLIT [ IF NOT EXISTS ] <name>
  [ FROM <source_location> ]
  [ MAIN_FILE = '<filename>' ]
  [ QUERY_WAREHOUSE = <warehouse_name> ]
  [ COMMENT = '<string_literal>' ]
  [ TITLE = '<app_title>' ]
  [ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
Copy

以下语法是传统语法:

重要

ROOT_LOCATION is a legacy parameter and may be deprecated in a future release. For Streamlit apps created using ROOT_LOCATION, multi-file editing and Git integration are not supported.

CREATE [ OR REPLACE ] STREAMLIT [ IF NOT EXISTS ] <name>
  ROOT_LOCATION = '<stage_path_and_root_directory>'
  MAIN_FILE = '<path_to_main_file_in_root_directory>'
  [ QUERY_WAREHOUSE = <warehouse_name> ]
  [ COMMENT = '<string_literal>' ]
  [ TITLE = '<app_title>' ]
  [ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
Copy

必填参数

name

Specifies the identifier (i.e. name) for the Streamlit object. This identifier must be unique for the schema where the object is created.

In addition, the identifier must start with an alphabetic character and can't contain spaces or special characters unless the entire identifier string is enclosed in double quotes (e.g. "My object"). Identifiers enclosed in double quotes are also case-sensitive.

有关更多详细信息,请参阅 标识符要求

可选参数

FROM source_location

从指定位置复制应用程序源文件。该位置必须位于内部命名暂存区内。路径可以是相对的,也可以是完全限定的。例如,如果将暂存区命名为 @streamlit_db.streamlit_schema.streamlit_stage,则有效的源位置可以包括:

  • 根暂存区的完全限定路径:FROM '@streamlit_db.streamlit_schema.streamlit_stage'

  • 根暂存区的相对路径:FROM '@streamlit_stage'

  • 暂存区内子目录的完全限定路径或相对路径:FROM '@streamlit_db.streamlit_schema.streamlit_stage/subdir'

执行 CREATE 命令时文件仅复制一次;将来对源位置的更改不会自动更新 Streamlit 应用程序。

如果未指定此参数,Snowflake 会使用 streamlit_app.py 入口点文件复制默认应用程序的源文件。

MAIN_FILE = 'filename'

Streamlit 入口点文件的文件名。此文件必须位于 FROM 中指定的源目录的根目录中。

如果您使用的是 ROOT_LOCATION(而不是 FROM),则 MAIN_FILE 可以是相对于 ROOT_LOCATION 的路径。

DEFAULT:'streamlit_app.py'

QUERY_WAREHOUSE = warehouse_name

Specifies the warehouse to run the app and execute SQL queries issued by the Streamlit app.

DEFAULT:无值

备注

尽管您可以创建不带此参数的 Streamlit 对象,但在您指定查询仓库之前,该应用程序不会运行。

COMMENT = 'string_literal'

指定 Streamlit 对象的注释。

DEFAULT:无值

TITLE = 'app_title'

Specifies a title for the Streamlit object to display in Snowsight.

DEFAULT:选择使用 时默认使用的角色和仓库。传递给 CREATE STREAMLIT 的 Streamlit 对象的名称。

IMPORTS = ( 'stage_path_and_file_name_to_read' [ , ... ] )

要导入的文件的位置(暂存区)、路径和名称。

EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )

Streamlit 应用代码为访问外部网络所需的 外部访问集成名称 名称。

ROOT_LOCATION = 'stage_path_and_root_directory'

Specifies the path to the named stage containing the Streamlit Python files, media files, and the environment.yml file, for example:

ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage'
Copy

在此示例中,Streamlit 文件位于名为 streamlit_stage 的命名暂存区上,而该暂存区在名为 streamlit_db 的数据库和名为 streamlit_schema 的架构中。

备注

  • 此参数必须指向已命名内部暂存区内的单个目录。

  • Streamlit in Snowflake 不支持外部暂存区。

  • 如果要在 Snowflake Native App Framework 中创建或替换 Streamlit 应用程序对象,请使用 FROM 'relative_path_from_stage_root_directory' 而非 ROOT_LOCATION = 'stage_path_and_root_directory'

访问控制要求

如果您的角色没有下表中的对象,则您的角色必须对这些对象具备列出的 权限

权限

对象

Notes

CREATE STREAMLIT

Schema where you create the Streamlit object

READ

要从中复制 Streamlit 应用程序源文件的暂存区

CREATE STAGE

Schema where you create the Streamlit object

只有使用 ROOT_LOCATION 参数创建 Streamlit 对象时才需要此权限。

要对架构中的任何对象执行操作,需要对父数据库和架构的 USAGE 权限。请注意,如果某个角色获授某个架构的任意权限,该角色便能够解析该架构。例如,若某角色被授予 CREATE 权限,则可以在该架构上创建对象,而无需 同时 被授予该架构的 USAGE 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 创建应用程序后,必须对其进行初始化。

    重要

    使用 CREATE STREAMLIT 后,Streamlit 应用程序只有在您执行以下任一操作后才能上线:

    • 对新的 Streamlit 对象执行 ALTER STREAMLIT ... ADD LIVE VERSION FROM LAST。

    • 使用拥有应用程序的角色访问 Snowsight 中的应用程序。

  • 在克隆包含 Streamlit 对象的架构或数据库时,不会克隆 Streamlit 对象。

  • 要指定 Streamlit 应用程序使用的包,请使用 environment.yml 文件。

  • 关于元数据:

    注意

    客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

  • The OR REPLACE and IF NOT EXISTS clauses are mutually exclusive. They can't both be used in the same statement.

  • CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。

示例

要从暂存区创建 Streamlit 应用程序,请运行 CREATE STREAMLIT 命令,如下例所示:

CREATE STREAMLIT hello_streamlit
  FROM @streamlit_db.streamlit_schema.streamlit_stage
  MAIN_FILE = 'streamlit_main.py'
  QUERY_WAREHOUSE = my_warehouse;
Copy

要从 Git 存储库创建 Streamlit 应用程序,请运行 CREATE STREAMLIT 命令,如下例所示:

CREATE STREAMLIT hello_streamlit
  FROM @streamlit_db.streamlit_schema.streamlit_repo/branches/streamlit_branch/
  MAIN_FILE = 'streamlit_main.py'
  QUERY_WAREHOUSE = my_warehouse;
Copy
语言: 中文