Apps - Snowflake Applications Overview - Part I
1. Apps - Snowflake Applications Overview - Part I
We’ve covered three of the four workloads we’ll cover in this course! DE, GenAI, and ML. Woohoo! Now there’s just one workload left on our agenda – Applications. There’s a lot to talk about here, so let’s get to it. So I think a necessary first step is for us to discuss what an application even is. This isn’t a formal definition, but when we talk about an “application,” we’re referring to a software product that can help thousands, millions, or even billions of end users do certain things – like placing an order at a store, visualizing important data, sharing pictures and videos, and much more. Applications can be highly sophisticated pieces of software made up of many moving parts that are engineered and managed by lots of different teams. For example, it’s quite common for there to be specific engineering teams dedicated to: One, building the front-end (or user interface) of the application. Two, building the logic that processes the end users’ input and reads from and writes to the database – sometimes referred to as the backend. And three, building the interface that connects the front-end to the back-end of the application (or the API). This type of team structure is common because the different components used to build the application tend to be different technologies that each require different types of expertise. The set of technologies is commonly referred to as the application “stack.” So how and where exactly does Snowflake fit into this type of scenario, where an application is built with a large and custom set of technologies? Snowflake supports several native programmatic interfaces – drivers and connectors – across many popular programming languages, which means it’s easy to integrate Snowflake into a broader, custom application stack. For example, you can connect to Snowflake using the Snowflake Connector for Python, the Snowflake Node.js Driver, the PHP PDO Driver for Snowflake, and more – this is not a comprehensive list I’m showing here. And if you have no idea what basically any of these are, and you’re feeling very lost and perhaps even a little overwhelmed, that’s totally fine. I’m mostly including this slide for those people taking the course who have experience building apps – and for everyone else, don’t stress out about this. Just pick up what you can. If you were building an application with, say, Python, you could use the Snowflake Connector for Python to power the application’s backend logic. The pattern for using these drivers and connectors is usually: Establish a connection to your Snowflake instance using the driver or connector Execute SQL commands based on actions taken in the user interface. For example, manage databases, tables, schemas; manage compute resources; or run SQL queries using SELECT for data analysis or transformation. You could extend this pattern to accommodate large, sophisticated applications, where you tailor the SQL you execute (the backend logic) according to the interactions a user takes in the front-end. Snowflake also supports framework-specific connectors. For example, there’s the django-snowflake connector, which would be used if you were building a web application built with the Django web application framework. Under the hood, the connector uses the Snowflake Connector for Python, but the django-snowflake connector is tailored to work seamlessly with common Django application patterns. And if you really want to spice things up, there is also the Snowflake Python API, which lets you programmatically manage all sorts of Snowflake objects. For example, you can use the Python API to create, alter, or drop tables, tasks, virtual warehouses, and much more. And while Snowflake is powerful for building data-intensive analytical applications, it also has an object called Hybrid Tables that provides many of the strengths of both analytical *and* transactional capabilities. This means your application can be built for both workloads with even just a single database (Snowflake) and a single Hybrid table (if you really wanted to). This helps you build scalable web applications that serve multiple use cases, without needing to manage different backend technologies (for example, one transactional database and one analytical database). This type of flexibility is really powerful. That’s a lot to absorb. So to make this more concrete, in Part II, we’ll work our way through a very stylized chart that shows some of the ways you can build your app with Snowflake.2. Let's practice!
Create Your Free Account
or
By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA.