Unlocking Seamless Data Applications: Enhancing the Developer Experience with the Power of Snowflake and dbt from Coalesce 2023

Tarik Dwiek, Head of Technology and Application Partners at Snowflake, discusses the use of Snowflake for building customer-facing applications.

"What if I told you that there are hundreds of companies today building customer-facing applications on top of Snowflake."

Tarik Dwiek, Head of Technology and Application Partners at Snowflake discusses the use of Snowflake for building customer-facing applications and how it can be used with Python and dbt. Tarik also covers the introduction of Snowpark, which allows for the running of non-SQL processes inside of Snowflake, and how this has been integrated with dbt.

The value of Snowflake for application development

Snowflake's architecture has been designed to disrupt app development, enabling developers to seamlessly build and run applications leveraging Python, Java, and Scala. This shift eliminates the need for data silos and streamlines app development.

"Customers are starting to run applications...and we're on a mission to make that easier," says Tarik. "We've been making heavy investments in this area over the last four years to be able to disrupt application development."

He adds that Snowflake's architecture is built around leveraging elasticity, meaning the ability to scale up resources on-demand economically. This simplicity and scalability make it an attractive platform for developers. "No developer wants to worry about optimizing their code or optimizing infrastructure for their code... they want to be able to just build code, run it, and have it scale as needed," he says.

The introduction of Snowpark and its advantages

Snowpark is a tool introduced by Snowflake that gives developers the ability to run processes or code that is non-SQL inside of Snowflake. This feature helps developers maintain the governance and leverage the role-based access controls already built into Snowflake.

Tarik explains, "Snowpark is...basically a way to run processes, run code that is non-SQL inside of Snowflake." He adds, "Customers are seeing a three and 12x improvement over Spark at two-thirds of the cost."

With the introduction of Snowpark, developers can now maintain a single copy of data, which simplifies governance and reduces complexity and cost. Tarik adds, "With Snowpark, we've introduced Python. We've introduced Java and Scala, and even other languages will easily be able to implement as we see demand from customers."

The integration of Streamlit to improve application building

Streamlit is a tool acquired by Snowflake that simplifies the process of building and prototyping applications, particularly the user interface, using Python. Tarik discusses the value of Streamlit, noting that it allows developers to quickly prototype and roll out apps in production.

He also mentions that with the Streamlet integration, Snowflake users can bypass security reviews and procurement processes, accelerating the development and monetization of applications.

The introduction of Snowpark Container Services for application deployment

Snowpark Container Services is a feature introduced by Snowflake that opens up new possibilities for running various applications and workloads in Snowflake.

Tarik discusses the benefits of Snowpark Container Services, saying "Snowpark Container Services...allows you to run any application that can be containerized… inside Snowflake." He explains that this feature enables customers to deploy apps natively in Snowflake, bypassing additional security reviews and simplifying the procurement process.

Tarik’s key insights

  • Snowflake allows for the consolidation of data silos into one platform, making it easier to build applications
  • Snowpark allows for the running of non-SQL processes inside of Snowflake, which has been integrated with dbt
  • Streamlit allows for the building and prototyping of applications, particularly the UI, using Python
  • Snowpark Container Services allows for any application that can be containerized to run in Snowflake
  • Large language models can be run in Snowflake, opening up new workloads and providing more functionality.

Related Articles