关于 Snowflake Native App Framework¶
本主题提供有关 Snowflake Native App Framework 的一般信息。
Snowflake Native App Framework 简介¶
Snowflake Native App Framework 允许您创建利用核心 Snowflake 功能的数据应用程序。Snowflake Native App Framework 允许您执行以下操作:
通过与其他 Snowflake 账户共享数据和相关业务逻辑,扩展其他 Snowflake 功能的功能。应用程序的业务逻辑可以包括 Streamlit 应用程序、存储过程和使用 Snowpark API、JavaScript 和 SQL 的编写的函数。
通过列表与使用者共享应用程序。列表可以是免费的或付费的。您可以在 Snowflake Marketplace 中分发您的应用程序并从中获利,或使用专用列表将其分发给特定使用者。
使用 Streamlit 在应用程序中包含丰富的可视化效果。
Snowflake Native App Framework 还支持增强的开发体验,其中提供:
简化的测试环境,您可以从单个账户测试您的应用程序。
强大的开发者工作流程。当您的数据和相关数据库对象保留在 Snowflake 中时,您可以使用首选的开发者工具在源代码控制中管理支持代码文件和资源。
发布应用程序的版本和补丁的功能,允许您作为提供商更改和演化应用程序的逻辑,并将其逐步发布给使用者。
支持记录结构化和非结构化事件,以便您可以对应用程序进行故障排除和监控。
已知限制¶
Snowflake Native App Framework 具有限制,其中包括:
不支持政府区域中的 Snowflake 账户。
Virtual Private Snowflake (VPS) 仅在单个组织内受支持。
不支持 Iceberg 表。
不支持临时表或暂存区。
不支持某些 Streamlit 功能。有关详细信息,请参阅 不支持的 Streamlit 功能。
Snowflake Native App Framework 不支持为保证业务连续性执行故障转移。不支持将应用程序包添加到复制组和故障转移组。
Snowflake Native App Framework 的组件。¶
下图显示了 Snowflake Native App Framework 的简要视图。
Snowflake Native App Framework 围绕由其他 Snowflake 功能(包括 Snowflake Collaboration 和 Secure Data Sharing)使用的提供商和使用者的概念构建。
- 提供商
希望与其他 Snowflake 用户共享数据内容和应用程序逻辑的 Snowflake 用户。
- 使用者
希望访问提供商共享的数据内容和应用程序逻辑的 Snowflake 用户。
开发和测试应用程序包¶
为了与使用者共享数据内容和应用程序逻辑,提供商会创建应用程序包。
- 应用程序包
应用程序包封装应用程序所需的数据内容、应用程序逻辑、元数据和安装脚本。应用程序包中还包含有关为应用程序定义的版本和修补程序级别的信息。有关详细信息,请参阅 创建应用程序包。
应用程序包可以包含对提供商希望包含在应用程序中的数据内容和外部代码文件的引用。应用程序包需要一个清单文件和一个安装脚本。
- 清单文件
定义应用程序所需的配置和安装属性,包括安装脚本的位置、版本等。有关详细信息,请参阅 为应用程序包创建清单文件。
- 安装脚本
包含在使用者安装或升级应用程序时或在提供商安装或升级应用程序以进行测试时运行的 SQL 语句。安装脚本的位置在
manifest.yml
文件中指定。有关详细信息,请参阅 创建安装脚本。
发布应用程序包¶
在开发和测试应用程序包之后,提供商可以通过发布列表与使用者共享应用程序,该列表将应用程序包纳入为列表的数据产品。该列表可以是 Snowflake Marketplace 列表或专用列表。
- Snowflake Marketplace 列表
允许提供商在整个 Snowflake Data Cloud 中推广应用程序。在 Snowflake Marketplace 上提供列表,可以让提供商同时与众多使用者共享应用程序,而无需与每个使用者保持共享关系。
- 专用列表
允许提供商利用列表功能,直接与 Snowflake Native App Framework 支持的任意 Snowflake 区域 中的另一个 Snowflake 账户共享应用程序。
有关详细信息,请参阅 关于列表。
安装和管理应用程序¶
在提供商发布包含应用程序包的列表之后,使用者可发现该列表并安装应用程序。
- Snowflake Native App
Snowflake Native App 是安装在使用者账户中的数据库对象。当使用者安装 Snowflake Native App 时,Snowflake 将创建应用程序并运行安装脚本以在应用程序中创建所需的对象。有关详细信息,请参阅 创建应用程序对象。
安装应用程序后,使用者可以执行其他任务,包括:
启用日志记录和事件共享,以帮助提供商对应用程序进行故障排除。
有关使用者如何安装和管理应用程序的详细信息,请参阅 作为使用者使用应用程序。