Gilberto Hernandez - Build & deploy a Snowflake Native Application using Python | PyData Global 2023

Learn how to build and deploy Snowflake Native Applications with Python & Streamlit. Covers security, deployment workflow, billing models, and distribution options.

Key takeaways
  • Native Snowflake applications can be built using Streamlit for the frontend, with Python and SQL handling backend logic

  • Applications run entirely within Snowflake’s security perimeter, eliminating direct connections between consumer and provider accounts

  • Key components required:

    • manifest.yaml for application metadata
    • setup.sql for installation configuration
    • Source code folder containing UI scripts and application logic
    • Snowflake account with AWS as cloud provider
  • Reference usage concept enables providers to safely share proprietary data with consumers through the application package

  • Application deployment workflow:

    • Create application package
    • Upload source code to stage
    • Add version
    • Install application
    • Map references to data objects
  • Billing models can be implemented through:

    • One-time payments
    • Usage-based billing
    • Monthly subscription fees
    • Query-based billing
  • Security features:

    • Snowflake reviews all marketplace applications
    • Consumers control data access permissions
    • No direct access to provider data
    • Role-based access controls
  • Future capabilities include:

    • Snowpark Container Services integration
    • LLM support
    • Vector database functionality
    • Hybrid table support
  • Apps can be distributed:

    • Publicly on Snowflake Marketplace
    • Within organization only
    • To specific accounts
  • Development can be done using:

    • Snowflake UI worksheets
    • VS Code extension
    • CLI tools