"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[7116],{95788:(e,t,a)=>{a.d(t,{Iu:()=>u,yg:()=>h});var n=a(11504);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),d=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},g="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),g=d(a),p=r,h=g["".concat(s,".").concat(p)]||g[p]||c[p]||o;return a?n.createElement(h,i(i({ref:t},u),{},{components:a})):n.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[g]="string"==typeof e?e:r,i[1]=l;for(var d=2;d<o;d++)i[d]=a[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},72252:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var n=a(86404),r=(a(11504),a(95788)),o=a(70964);const i={title:"Creating Your First Dashboard",hide_title:!0,sidebar_position:1,version:1},l=void 0,s={unversionedId:"creating-charts-dashboards/creating-your-first-dashboard",id:"creating-charts-dashboards/creating-your-first-dashboard",title:"Creating Your First Dashboard",description:"Creating Your First Dashboard",source:"@site/docs/creating-charts-dashboards/creating-your-first-dashboard.mdx",sourceDirName:"creating-charts-dashboards",slug:"/creating-charts-dashboards/creating-your-first-dashboard",permalink:"/docs/creating-charts-dashboards/creating-your-first-dashboard",draft:!1,editUrl:"https://github.com/apache/superset/edit/master/docs/docs/creating-charts-dashboards/creating-your-first-dashboard.mdx",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Creating Your First Dashboard",hide_title:!0,sidebar_position:1,version:1},sidebar:"tutorialSidebar",previous:{title:"Docker Images and Tags",permalink:"/docs/installation/docker"},next:{title:"Exploring Data in Superset",permalink:"/docs/creating-charts-dashboards/exploring-data"}},d={},u=[{value:"Creating Your First Dashboard",id:"creating-your-first-dashboard",level:2},{value:"Connecting to a new database",id:"connecting-to-a-new-database",level:3},{value:"Registering a new table",id:"registering-a-new-table",level:3},{value:"Customizing column properties",id:"customizing-column-properties",level:3},{value:"Superset semantic layer",id:"superset-semantic-layer",level:3},{value:"Creating charts in Explore view",id:"creating-charts-in-explore-view",level:3},{value:"Creating a slice and dashboard",id:"creating-a-slice-and-dashboard",level:3},{value:"Manage access to Dashboards",id:"manage-access-to-dashboards",level:3},{value:"Customizing dashboard",id:"customizing-dashboard",level:3}],g={toc:u},c="wrapper";function p(e){let{components:t,...a}=e;return(0,r.yg)(c,(0,n.c)({},g,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"creating-your-first-dashboard"},"Creating Your First Dashboard"),(0,r.yg)("p",null,"This section is focused on documentation for end-users who will be using Superset\nfor the data analysis and exploration workflow\n(data analysts, business analysts, data\nscientists, etc). In addition to this site, ",(0,r.yg)("a",{parentName:"p",href:"http://preset.io/"},"Preset.io")," maintains an updated set of end-user\ndocumentation at ",(0,r.yg)("a",{parentName:"p",href:"https://docs.preset.io/"},"docs.preset.io"),"."),(0,r.yg)("p",null,"This tutorial targets someone who wants to create charts and dashboards in Superset. We\u2019ll show you\nhow to connect Superset to a new database and configure a table in that database for analysis.\nYou\u2019ll also explore the data you\u2019ve exposed and add a visualization to a dashboard so that you get a\nfeel for the end-to-end user experience."),(0,r.yg)("h3",{id:"connecting-to-a-new-database"},"Connecting to a new database"),(0,r.yg)("p",null,"Superset itself doesn't have a storage layer to store your data but instead pairs with\nyour existing SQL-speaking database or data store."),(0,r.yg)("p",null,"First things first, we need to add the connection credentials to your database to be able\nto query and visualize data from it. If you're using Superset locally via\n",(0,r.yg)("a",{parentName:"p",href:"/docs/installation/installing-superset-using-docker-compose"},"Docker compose"),", you can\nskip this step because a Postgres database, named ",(0,r.yg)("strong",{parentName:"p"},"examples"),", is included and\npre-configured in Superset for you."),(0,r.yg)("p",null,"Under the ",(0,r.yg)("strong",{parentName:"p"},"+")," menu in the top right, select Data, and then the ",(0,r.yg)("em",{parentName:"p"},"Connect Database")," option:"),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_01_add_database_connection.png"),width:"600"})," "," ",(0,r.yg)("br",null),(0,r.yg)("br",null),(0,r.yg)("p",null,"Then select your database type in the resulting modal:"),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_02_select_database.png"),width:"600"})," "," ",(0,r.yg)("br",null),(0,r.yg)("br",null),(0,r.yg)("p",null,"Once you've selected a database, you can configure a number of advanced options in this window,\nor for the purposes of this walkthrough, you can click the link below all these fields:"),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_03a_database_connection_string_link.png"),width:"600"})," "," ",(0,r.yg)("br",null),(0,r.yg)("br",null),(0,r.yg)("p",null,"Once you've clicked that link you only need to specify two things (the database name and SQLAlchemy URI):"),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_03b_connection_string_details.png"),width:"600"})," "," ",(0,r.yg)("br",null),(0,r.yg)("br",null),(0,r.yg)("p",null,"As noted in the text below the form, you should refer to the SQLAlchemy documentation on\n",(0,r.yg)("a",{parentName:"p",href:"https://docs.sqlalchemy.org/en/12/core/engines.html#database-urls"},"creating new connection URIs"),"\nfor your target database."),(0,r.yg)("p",null,"Click the ",(0,r.yg)("strong",{parentName:"p"},"Test Connection")," button to confirm things work end to end. If the connection looks good, save the configuration\nby clicking the ",(0,r.yg)("strong",{parentName:"p"},"Connect")," button in the bottom right corner of the modal window:"),(0,r.yg)("p",null,"Congratulations, you've just added a new data source in Superset!"),(0,r.yg)("h3",{id:"registering-a-new-table"},"Registering a new table"),(0,r.yg)("p",null,"Now that you\u2019ve configured a data source, you can select specific tables (called ",(0,r.yg)("strong",{parentName:"p"},"Datasets")," in Superset)\nthat you want exposed in Superset for querying."),(0,r.yg)("p",null,"Navigate to ",(0,r.yg)("strong",{parentName:"p"},"Data \u2023 Datasets")," and select the ",(0,r.yg)("strong",{parentName:"p"},"+ Dataset")," button in the top right corner."),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_08_sources_tables.png")}),(0,r.yg)("p",null,"A modal window should pop up in front of you. Select your ",(0,r.yg)("strong",{parentName:"p"},"Database"),",\n",(0,r.yg)("strong",{parentName:"p"},"Schema"),", and ",(0,r.yg)("strong",{parentName:"p"},"Table")," using the drop downs that appear. In the following example,\nwe register the ",(0,r.yg)("strong",{parentName:"p"},"cleaned_sales_data")," table from the ",(0,r.yg)("strong",{parentName:"p"},"examples")," database."),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_09_add_new_table.png")}),(0,r.yg)("p",null,"To finish, click the ",(0,r.yg)("strong",{parentName:"p"},"Add")," button in the bottom right corner. You should now see your dataset in the list of datasets."),(0,r.yg)("h3",{id:"customizing-column-properties"},"Customizing column properties"),(0,r.yg)("p",null,"Now that you've registered your dataset, you can configure column properties\nfor how the column should be treated in the Explore workflow:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Is the column temporal? (should it be used for slicing & dicing in time series charts?)"),(0,r.yg)("li",{parentName:"ul"},"Should the column be filterable?"),(0,r.yg)("li",{parentName:"ul"},"Is the column dimensional?"),(0,r.yg)("li",{parentName:"ul"},"If it's a datetime column, how should Superset parse\nthe datetime format? (using the ",(0,r.yg)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/ISO_8601"},"ISO-8601 string pattern"),")")),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_column_properties.png")}),(0,r.yg)("h3",{id:"superset-semantic-layer"},"Superset semantic layer"),(0,r.yg)("p",null,"Superset has a thin semantic layer that adds many quality of life improvements for analysts.\nThe Superset semantic layer can store 2 types of computed data:"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"Virtual metrics: you can write SQL queries that aggregate values\nfrom multiple column (e.g. ",(0,r.yg)("inlineCode",{parentName:"li"},"SUM(recovered) / SUM(confirmed)"),") and make them\navailable as columns for (e.g. ",(0,r.yg)("inlineCode",{parentName:"li"},"recovery_rate"),") visualization in Explore.\nAggregate functions are allowed and encouraged for metrics.")),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_sql_metric.png")}),(0,r.yg)("p",null,"You can also certify metrics if you'd like for your team in this view."),(0,r.yg)("ol",{start:2},(0,r.yg)("li",{parentName:"ol"},"Virtual calculated columns: you can write SQL queries that\ncustomize the appearance and behavior\nof a specific column (e.g. ",(0,r.yg)("inlineCode",{parentName:"li"},"CAST(recovery_rate) as float"),").\nAggregate functions aren't allowed in calculated columns.")),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_calculated_column.png")}),(0,r.yg)("h3",{id:"creating-charts-in-explore-view"},"Creating charts in Explore view"),(0,r.yg)("p",null,"Superset has 2 main interfaces for exploring data:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Explore"),": no-code viz builder. Select your dataset, select the chart,\ncustomize the appearance, and publish."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"SQL Lab"),": SQL IDE for cleaning, joining, and preparing data for Explore workflow")),(0,r.yg)("p",null,"We'll focus on the Explore view for creating charts right now.\nTo start the Explore workflow from the ",(0,r.yg)("strong",{parentName:"p"},"Datasets")," tab, start by clicking the name\nof the dataset that will be powering your chart."),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_launch_explore.png")}),(0,r.yg)("br",null),(0,r.yg)("br",null),(0,r.yg)("p",null,"You're now presented with a powerful workflow for exploring data and iterating on charts."),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"The ",(0,r.yg)("strong",{parentName:"li"},"Dataset")," view on the left-hand side has a list of columns and metrics,\nscoped to the current dataset you selected."),(0,r.yg)("li",{parentName:"ul"},"The ",(0,r.yg)("strong",{parentName:"li"},"Data")," preview below the chart area also gives you helpful data context."),(0,r.yg)("li",{parentName:"ul"},"Using the ",(0,r.yg)("strong",{parentName:"li"},"Data")," tab and ",(0,r.yg)("strong",{parentName:"li"},"Customize")," tabs, you can change the visualization type,\nselect the temporal column, select the metric to group by, and customize\nthe aesthetics of the chart.")),(0,r.yg)("p",null,"As you customize your chart using drop-down menus, make sure to click the ",(0,r.yg)("strong",{parentName:"p"},"Run")," button\nto get visual feedback."),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_explore_run.jpg")}),(0,r.yg)("p",null,"In the following screenshot, we craft a grouped Time-series Bar Chart to visualize\nour quarterly sales data by product line just by clicking options in drop-down menus."),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_explore_settings.jpg")}),(0,r.yg)("h3",{id:"creating-a-slice-and-dashboard"},"Creating a slice and dashboard"),(0,r.yg)("p",null,"To save your chart, first click the ",(0,r.yg)("strong",{parentName:"p"},"Save")," button. You can either:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Save your chart and add it to an existing dashboard"),(0,r.yg)("li",{parentName:"ul"},"Save your chart and add it to a new dashboard")),(0,r.yg)("p",null,'In the following screenshot, we save the chart to a new "Superset Duper Sales Dashboard":'),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_save_slice.png")}),(0,r.yg)("p",null,"To publish, click ",(0,r.yg)("strong",{parentName:"p"},"Save and goto Dashboard"),"."),(0,r.yg)("p",null,"Behind the scenes, Superset will create a slice and store all the information needed\nto create your chart in its thin data layer\n(the query, chart type, options selected, name, etc)."),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_first_dashboard.png"),style:{width:"100%",maxWidth:"500px"}}),(0,r.yg)("p",null," To resize the chart, start by clicking the Edit Dashboard button in the top right corner."),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_edit_button.png"),width:"300"}),(0,r.yg)("p",null,"Then, click and drag the bottom right corner of the chart until the chart layout snaps\ninto a position you like onto the underlying grid."),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_chart_resize.png"),style:{width:"100%",maxWidth:"500px"}}),(0,r.yg)("p",null," Click ",(0,r.yg)("strong",{parentName:"p"},"Save")," to persist the changes."),(0,r.yg)("p",null,"Congrats! You\u2019ve successfully linked, analyzed, and visualized data in Superset. There are a wealth\nof other table configuration and visualization options, so please start exploring and creating\nslices and dashboards of your own"),(0,r.yg)("p",null,"\u05bf"),(0,r.yg)("h3",{id:"manage-access-to-dashboards"},"Manage access to Dashboards"),(0,r.yg)("p",null,"Access to dashboards is managed via owners (users that have edit permissions to the dashboard)"),(0,r.yg)("p",null,"Non-owner users access can be managed two different ways:"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"Dataset permissions - if you add to the relevant role permissions to datasets it automatically grants implicit access to all dashboards that uses those permitted datasets"),(0,r.yg)("li",{parentName:"ol"},"Dashboard roles - if you enable ",(0,r.yg)("strong",{parentName:"li"},"DASHBOARD_RBAC")," ",(0,r.yg)("a",{parentName:"li",href:"/docs/installation/configuring-superset#feature-flags"},"feature flag")," then you be able to manage which roles can access the dashboard",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},"Granting a role access to a dashboard will bypass dataset level checks. Having dashboard access implicitly grants read access to all the featured charts in the dashboard, and thereby also all the associated datasets."),(0,r.yg)("li",{parentName:"ul"},"If no roles are specified for a dashboard, regular ",(0,r.yg)("strong",{parentName:"li"},"Dataset permissions")," will apply.")))),(0,r.yg)("img",{src:(0,o.c)("/img/tutorial/tutorial_dashboard_access.png")}),(0,r.yg)("h3",{id:"customizing-dashboard"},"Customizing dashboard"),(0,r.yg)("p",null,"The following URL parameters can be used to modify how the dashboard is rendered:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"standalone"),":",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"0")," (default): dashboard is displayed normally"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"1"),": Top Navigation is hidden"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"2"),": Top Navigation + title is hidden"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"3"),": Top Navigation + title + top level tabs are hidden"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"show_filters"),":",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"0"),": render dashboard without Filter Bar"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"1")," (default): render dashboard with Filter Bar if native filters are enabled"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"expand_filters"),":",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},"(default): render dashboard with Filter Bar expanded if there are native filters"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"0"),": render dashboard with Filter Bar collapsed"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"1"),": render dashboard with Filter Bar expanded")))),(0,r.yg)("p",null,"For example, when running the local development build, the following will disable the\nTop Nav and remove the Filter Bar:\n",(0,r.yg)("inlineCode",{parentName:"p"},"http://localhost:8088/superset/dashboard/my-dashboard/?standalone=1&show_filters=0")))}p.isMDXComponent=!0}}]);