Let's start by building a catalog. The catalog is the foundation of your semantic layer. It stores all your views and datasets. To create a new catalog, go to the sidebar in the workspace UI and click create new catalog. Here, it'll prompt you to name your catalog and connect your database sources. You can select multiple if needed. For the purpose of today, I'm going to talk you through the product metrics catalog I built earlier. Once your catalog is created, the next step is to build out the views and datasets that will define your metrics. To do this, select edit catalog. Views are selections of fields, measures, dimensions, and metadata that form the basis of your datasets. Each view is stored as a YAML file like this. The quickest way to create a view is directly from a database table. To do this, click the plus next to the views, then select create view from table. This will then connect you to your database and display a list of available tables. Once you choose a table, the fields are automatically populated in the YAML. From here, you can customize or remove fields as needed. The schema on the right hand side displays a list of available customization options. If I navigate to my events view, I can show you how I made use of some of these schemas. For example, here, I've added in labels and descriptions to help make it more user friendly. I've also added in aggregates to pull through aggregated views of count, sum, min, max, and so on. I've also made use of time frames here to show different date breakout options in the final UI. Here, I've made use of expressions, adding in a calculated field to my view. Count metrics also enables caching at the view level so that catalogs can be cached across your workspace. You add the caching settings to the top of your view and add in the duration and schedule settings as required. When you choose to cache and count metrics, the data will be stored on our duck DB servers, leading to massive savings on your query load. So definitely something to make use of when using count metrics. Now let's move on to datasets. Datasets are collections of views, and it's important to populate these datasets as they are the tables that users will see with accessing the catalog in a canvas. To create a dataset, select the plus next to dataset, and then you'll need to select one or more views and define how they relate to each other. Here, I'll show you the workspaces dataset that I built. If you're using multiple views, you'll need to specify join conditions, ensuring that when users query the dataset, the correct relationships and aggregations are applied automatically. In this workspace view, you can see I've connected multiple views together on a one to many relationship. This makes it easy to enforce data integrity while allowing users to explore data efficiently in the canvas. Once you've built your views and datasets, the final step is to commit your changes. Every time you make an update, you'll need to commit it to ensure the catalog stays up to date. Count metrics includes a validation checker, which notifies you of any breaking changes that new updates will make. I can see here there's no errors, so I'm happy to commit. You can also access a commit history to track changes or revert to a previous version if needed. With your catalog all fully built, you're now ready to give users access and start exploring the data.