CINXE.COM
Caching queries and rebuilding PDTs with datagroups
<!doctype html> <html lang="en"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://docs.looker.com/data-modeling/learning-lookml/caching","20210802034918","https://web.archive.org/","web","/_static/", "1627876158"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <!-- ============= GOOGLE TAG MANAGER ============= --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://web.archive.org/web/20210802034918/https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NWWX6K');</script> <!-- ============= TITLE ============= --> <title>Caching queries and rebuilding PDTs with datagroups</title> <link rel="canonical" href="https://web.archive.org/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/caching"/> <link rel="icon" type="image/x-icon" href="/web/20210802034918im_/https://docs.looker.com/favicon.ico?v=2"/> <!-- ============= META TAGS ============= --> <!-- Basics --> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- Google --> <meta name="google-site-verification" content="sqgzzTMOeyBTjvU1CQzYndU5Uu4EMl461BEMxcVuK-c"/> <!-- Swiftype --> <meta class="swiftype" name="site-priority" data-type="integer" content="3"> <meta class="swiftype" name="site-filter" data-type="integer" content="3"> <meta class="swiftype" name="site-filter" data-type="integer" content="32"> <meta class="swiftype" name="site-filter" data-type="integer" content="34"> <meta class="swiftype" name="title" data-type="string" content="Caching queries and rebuilding PDTs with datagroups"> <meta class="swiftype" name="description" data-type="string" content="Define how frequently to rebuild PDTs and refresh query caches."> <!-- Page Info --> <meta property="og:site_name" content="Looker Documentation"> <meta property="og:url" content="https://web.archive.org/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/caching"> <meta property="og:type" content="article"> <meta property="og:title" content="Caching queries and rebuilding PDTs with datagroups"> <meta property="og:description" content="Define how frequently to rebuild PDTs and refresh query caches."> <meta name="description" content="Define how frequently to rebuild PDTs and refresh query caches."> <meta name="note" content="Edit:2021-06.Partial-06, Admin - UI:Dev.Screens, Cache:Dev.Main, Cache:View.Screens, Datagroup:Dev.Main, Derived Table:Dev.Screens, Derived Table:View.Partial-screen, Performance:Dev.Lines, Schedule:Admin.Lines, Schedule:Dev.Lines"> <!-- Hide from Search --> <!-- ============= FONTS ============= --> <!-- Google Sans | Headers and UI | regular, bold --> <link rel="stylesheet" href="https://web.archive.org/web/20210802034918cs_/https://fonts.googleapis.com/css?family=Google+Sans:400,600"> <!-- Roboto | Body | regular, italic, bold, bold italic --> <link rel="stylesheet" href="https://web.archive.org/web/20210802034918cs_/https://fonts.googleapis.com/css?family=Roboto:400,400italic,700,700italic"> <!-- Roboto Mono | Code | regular, bold --> <link rel="stylesheet" href="https://web.archive.org/web/20210802034918cs_/https://fonts.googleapis.com/css?family=Roboto+Mono:400,700"> <!-- Google Material Design Icons --> <link rel="stylesheet" href="https://web.archive.org/web/20210802034918cs_/https://fonts.googleapis.com/css?family=Material+Icons"> <!-- ============= STYLES ============= --> <!-- Normalize.css | https://necolas.github.io/normalize.css/ --> <link rel="stylesheet" href="/web/20210802034918cs_/https://docs.looker.com/_themes/docs/css/normalize.css"> <!-- Docs Stylesheet --> <link rel="stylesheet" href="/web/20210802034918cs_/https://docs.looker.com/_themes/docs/css/docs.css?v=1627674102"> <!-- ============= SCRIPTS ============= --> <!-- JQuery --> <script src="https://web.archive.org/web/20210802034918js_/https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <!-- Ace Editor --> <script src="/web/20210802034918js_/https://docs.looker.com/_themes/docs/js/ace/ace.js"></script> <script src="/web/20210802034918js_/https://docs.looker.com/_themes/docs/js/ace/ext-static_highlight.js"></script> <!-- Vimeo API --> <script src="/web/20210802034918js_/https://docs.looker.com/_themes/docs/js/vimeo/player.js"></script> <!-- Site JS --> <script src="/web/20210802034918js_/https://docs.looker.com/_themes/docs/js/docs.js?v=1627674102" async></script> <!-- Swiftype --> <script type="text/javascript"> (function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){ (w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t); e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e); })(window,document,'script','//web.archive.org/web/20210802034918/https://s.swiftypecdn.com/install/v2/st.js','_st'); _st('install','zgajfc-EgsKmEKBAatQg','2.0.0'); </script> </head> <body> <!-- Google Analytics via Tag Manager --> <noscript><iframe src="https://web.archive.org/web/20210802034918if_/https://www.googletagmanager.com/ns.html?id=GTM-NWWX6K" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div id="ed-nav"> <div id="looker-logo"> <a href="https://web.archive.org/web/20210802034918/https://looker.com/"><img src="/web/20210802034918im_/https://docs.looker.com/assets/site_images/looker-logo.svg"/></a> </div> <div id="ed-options"> <a href="https://web.archive.org/web/20210802034918/https://looker.com/guide" class="custres-gtm-nav-link"><i class="material-icons">home</i> User Guide </a> <a href="https://web.archive.org/web/20210802034918/https://looker.com/guide/getting-started" class="custres-gtm-nav-link"> Getting Started </a> <a href="https://web.archive.org/web/20210802034918/https://help.looker.com/" class="custres-gtm-nav-link"> Help Center </a> <a href="/web/20210802034918/https://docs.looker.com/" class="custres-gtm-nav-link" id="docs-home"> <b>Documentation</b> </a> <a href="https://web.archive.org/web/20210802034918/https://community.looker.com/" class="custres-gtm-nav-link"> Community </a> <a href="https://web.archive.org/web/20210802034918/https://training.looker.com/" class="custres-gtm-nav-link"> Training </a> <a href="https://web.archive.org/web/20210802034918/https://looker.com/certification/" class="custres-gtm-nav-link"> Certification </a> </div> <div id="mobile-ed"> <i class="material-icons">menu</i> </div> </div> <header> <div id="menu-container"> <div id="menu-expand"> Docs menu <i class="material-icons">keyboard_arrow_down</i> </div> <section id="menu"> <div id="menu-contents"> <div class="menu-column categories"><div class="option" data-show-class="0">Looker introduction <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="1">Latest features <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="2">Find and organize content <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="3">Send and share content <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="4">Retrieve and chart data <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="5">Create dashboards and reports <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="6">Get ready for development <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="7">Write LookML <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="8">Use embedding, the API, and the extension framework <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="9">Set up and administer Looker <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="10">Looker mobile application <i class="material-icons">keyboard_arrow_right</i></div></div><div class="menu-column sub-categories 0"><div class="option" data-show-class="0-0">Quick start pages <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="0-1">Personalizing Looker <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="0-2">Keyboard shortcuts <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="0-3">Video tutorials <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="0-4">Looker glossary <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="0-5">Looker error catalog <i class="material-icons">keyboard_arrow_right</i></div></div><div class="menu-column sub-categories 2"><div class="option" data-show-class="2-0">Finding and viewing content <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="2-1">Organizing content <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="2-2">For developers and admins <i class="material-icons">keyboard_arrow_right</i></div></div><div class="menu-column sub-categories 3"><div class="option" data-show-class="3-0">Sharing data overview <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="3-1">One-time sharing <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="3-2">Periodic sharing <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="3-3">Conditional sharing <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="3-4">Video tutorials <i class="material-icons">keyboard_arrow_right</i></div></div><div class="menu-column sub-categories 4"><div class="option" data-show-class="4-0">Retrieving data <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="4-1">Creating your own fields <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="4-2">Creating charts <i class="material-icons">keyboard_arrow_right</i></div></div><div class="menu-column sub-categories 5"><div class="option" data-show-class="5-0">Creating saved reports (Looks) <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="5-1">Creating user-defined dashboards <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="5-2">Creating and managing LookML dashboards <i class="material-icons">keyboard_arrow_right</i></div></div><div class="menu-column sub-categories 6"><div class="option" data-show-class="6-0">Development basics <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="6-1">SQL in Looker <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="6-2">Creating and editing projects <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="6-3">Git and version control <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="6-4">Setting up a database connection <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="6-5">Looker Marketplace <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="6-6">Video tutorials <i class="material-icons">keyboard_arrow_right</i></div></div><div class="menu-column sub-categories 7"><div class="option" data-show-class="7-0">Getting started with LookML <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="7-1">Basic concepts <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="7-2">Advanced concepts <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="7-3">LookML reference <i class="material-icons">keyboard_arrow_right</i></div></div><div class="menu-column sub-categories 8"><div class="option" data-show-class="8-0">Looker API <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="8-1">Embedding <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="8-2">Extension framework and UI components <i class="material-icons">keyboard_arrow_right</i></div></div><div class="menu-column sub-categories 9"><div class="option" data-show-class="9-0">Getting started with setup and admin <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="9-1">Installation and maintenance <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="9-2">Setting up a database connection <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="9-3">Admin tutorials <i class="material-icons">keyboard_arrow_right</i></div><div class="option" data-show-class="9-4">Admin panel reference <i class="material-icons">keyboard_arrow_right</i></div></div><div class="menu-column pages 0-0"><a href="https://web.archive.org/web/20210802034918/https://vimeo.com/215917994" class="gtm-nav-link"><div class="option" data-page-id="0-0-0">Logging in video tutorial</div></a><a href="/web/20210802034918/https://docs.looker.com/intro" class="gtm-nav-link"><div class="option" data-page-id="0-0-1">Looker introduction</div></a><a href="/web/20210802034918/https://docs.looker.com/relnotes/intro" class="gtm-nav-link"><div class="option" data-page-id="0-0-2">Latest features</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing" class="gtm-nav-link"><div class="option" data-page-id="0-0-3">Find and organize content</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/send-share-intro" class="gtm-nav-link"><div class="option" data-page-id="0-0-4">Send and share content</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/retrieve-chart-intro" class="gtm-nav-link"><div class="option" data-page-id="0-0-5">Retrieve and chart data</div></a><a href="/web/20210802034918/https://docs.looker.com/dashboards/dashboards-reports-intro" class="gtm-nav-link"><div class="option" data-page-id="0-0-6">Create and edit dashboards and reports</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling" class="gtm-nav-link"><div class="option" data-page-id="0-0-7">Get ready for development</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/lookml-intro" class="gtm-nav-link"><div class="option" data-page-id="0-0-8">Write LookML</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/api-embedding-intro" class="gtm-nav-link"><div class="option" data-page-id="0-0-9">Use embedding and the API</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options" class="gtm-nav-link"><div class="option" data-page-id="0-0-10">Set up and administer Looker</div></a></div><div class="menu-column pages 0-1"><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-menu" class="gtm-nav-link"><div class="option" data-page-id="0-1-0">Personalizing your user profile</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-account" class="gtm-nav-link"><div class="option" data-page-id="0-1-1">Personalizing user account settings</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-history" class="gtm-nav-link"><div class="option" data-page-id="0-1-2">Viewing your query history</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-schedules" class="gtm-nav-link"><div class="option" data-page-id="0-1-3">Viewing your scheduled data deliveries</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-alerts" class="gtm-nav-link"><div class="option" data-page-id="0-1-4">Viewing your conditional alert notifications</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-sessions" class="gtm-nav-link"><div class="option" data-page-id="0-1-5">Viewing information about your session</div></a></div><div class="menu-column pages 0-2"><a href="/web/20210802034918/https://docs.looker.com/exploring-data/exploring-data/keyboard-shortcuts" class="gtm-nav-link"><div class="option" data-page-id="0-2-0">Keyboard shortcuts in Looker</div></a></div><div class="menu-column pages 0-3"><a href="https://web.archive.org/web/20210802034918/https://vimeo.com/268498280" class="gtm-nav-link"><div class="option" data-page-id="0-3-0">Why use Looker?</div></a><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data" class="gtm-nav-link"><div class="option" data-page-id="0-3-1">Business user tutorials</div></a><a href="/web/20210802034918/https://docs.looker.com/video-library/data-modeling" class="gtm-nav-link"><div class="option" data-page-id="0-3-2">Admin and developer tutorials</div></a></div><div class="menu-column pages 0-4"><a href="/web/20210802034918/https://docs.looker.com/reference/glossary" class="gtm-nav-link"><div class="option" data-page-id="0-4-0">Looker glossary</div></a></div><div class="menu-column pages 0-5"><a href="/web/20210802034918/https://docs.looker.com/reference/looker-error-catalog" class="gtm-nav-link"><div class="option" data-page-id="0-5-0">Looker error catalog</div></a></div><div class="menu-column pages 1-0"><a href="/web/20210802034918/https://docs.looker.com/relnotes" class="gtm-nav-link"><div class="option" data-page-id="1-0-0">Looker 21 release highlights</div></a><a href="/web/20210802034918/https://docs.looker.com/relnotes/v21-changelog" class="gtm-nav-link"><div class="option" data-page-id="1-0-1">Looker 21 changelog</div></a><a href="/web/20210802034918/https://docs.looker.com/relnotes/v7-release-notes" class="gtm-nav-link"><div class="option" data-page-id="1-0-2">Looker 7 release highlights</div></a><a href="/web/20210802034918/https://docs.looker.com/relnotes/v7-changelog" class="gtm-nav-link"><div class="option" data-page-id="1-0-3">Looker 7 changelog</div></a><a href="/web/20210802034918/https://docs.looker.com/relnotes/esr-notes" class="gtm-nav-link"><div class="option" data-page-id="1-0-4">Extended support release notes</div></a><a href="/web/20210802034918/https://docs.looker.com/relnotes/v6-release-notes" class="gtm-nav-link"><div class="option" data-page-id="1-0-5">Looker 6 release notes</div></a><a href="/web/20210802034918/https://docs.looker.com/relnotes/v5-release-notes" class="gtm-nav-link"><div class="option" data-page-id="1-0-6">Looker 5 release notes</div></a><a href="/web/20210802034918/https://docs.looker.com/relnotes/v4-release-notes" class="gtm-nav-link"><div class="option" data-page-id="1-0-7">Looker 4 release notes</div></a><a href="/web/20210802034918/https://docs.looker.com/relnotes/v3-release-notes" class="gtm-nav-link"><div class="option" data-page-id="1-0-8">Looker 3 release notes</div></a></div><div class="menu-column pages 2-0"><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/finding-content" class="gtm-nav-link"><div class="option" data-page-id="2-0-0">Finding content in Looker</div></a><a href="/web/20210802034918/https://docs.looker.com/dashboards/new-dashboard-experience" class="gtm-nav-link"><div class="option" data-page-id="2-0-1">Viewing dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/dashboards/viewing-user-dashboards" class="gtm-nav-link"><div class="option" data-page-id="2-0-2">Viewing legacy dashboards in Looker</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/viewing-looks" class="gtm-nav-link"><div class="option" data-page-id="2-0-3">Viewing Looks in Looker</div></a><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data#find_and_view_content" class="gtm-nav-link"><div class="option" data-page-id="2-0-4">Video tutorials</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/filter-expressions" class="gtm-nav-link"><div class="option" data-page-id="2-0-5">Looker filter expressions</div></a></div><div class="menu-column pages 2-1"><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/organizing-spaces" class="gtm-nav-link"><div class="option" data-page-id="2-1-0">Organizing and managing access to content</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/presenting-content" class="gtm-nav-link"><div class="option" data-page-id="2-1-1">Presenting content with boards</div></a></div><div class="menu-column pages 2-2"><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/admin-spaces" class="gtm-nav-link"><div class="option" data-page-id="2-2-0">Deleted and unused content for admins</div></a></div><div class="menu-column pages 3-0"><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/sharing-data" class="gtm-nav-link"><div class="option" data-page-id="3-0-0">Sharing data</div></a></div><div class="menu-column pages 3-1"><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/downloading" class="gtm-nav-link"><div class="option" data-page-id="3-1-0">Downloading content</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/publishing-looks-with-public-urls" class="gtm-nav-link"><div class="option" data-page-id="3-1-1">Public sharing, importing, and embedding of Looks</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/sharing-urls" class="gtm-nav-link"><div class="option" data-page-id="3-1-2">Sharing data from URLs</div></a></div><div class="menu-column pages 3-2"><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/scheduling" class="gtm-nav-link"><div class="option" data-page-id="3-2-0">Using the Looker Scheduler to Deliver Content</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/scheduling-new-dashboards" class="gtm-nav-link"><div class="option" data-page-id="3-2-1">Scheduling and sending dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/scheduling-slack" class="gtm-nav-link"><div class="option" data-page-id="3-2-2">Scheduling deliveries to the Slack integration</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/action-hub" class="gtm-nav-link"><div class="option" data-page-id="3-2-3">Sharing data through an action hub</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/scheduling-for-admins" class="gtm-nav-link"><div class="option" data-page-id="3-2-4">Configuring content deliveries for Looker users (Looker admins)</div></a></div><div class="menu-column pages 3-3"><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/delivering-looks-explores#send_this_schedule_if" class="gtm-nav-link"><div class="option" data-page-id="3-3-0">Conditionally delivering Looks and Explores</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/alerts" class="gtm-nav-link"><div class="option" data-page-id="3-3-1">Conditional alerts overview</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/alerts-for-admins" class="gtm-nav-link"><div class="option" data-page-id="3-3-2">Configuring conditional alerts for Looker users (Looker admins)</div></a></div><div class="menu-column pages 3-4"><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data#send_and_share_content" class="gtm-nav-link"><div class="option" data-page-id="3-4-0">Video tutorials</div></a></div><div class="menu-column pages 4-0"><a href="/web/20210802034918/https://docs.looker.com/exploring-data/exploring-data" class="gtm-nav-link"><div class="option" data-page-id="4-0-0">Exploring data in Looker</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/filtering-and-limiting" class="gtm-nav-link"><div class="option" data-page-id="4-0-1">Filtering and limiting data</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/exploring-data/merged-results" class="gtm-nav-link"><div class="option" data-page-id="4-0-2">Merging results from different Explores</div></a><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data#how_to_retrieve_data" class="gtm-nav-link"><div class="option" data-page-id="4-0-3">Video tutorials</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/filter-expressions" class="gtm-nav-link"><div class="option" data-page-id="4-0-4">Looker filter expressions</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/creating-looker-expressions/looker-functions-and-operators" class="gtm-nav-link"><div class="option" data-page-id="4-0-5">Looker functions and operators</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/custom-formatting" class="gtm-nav-link"><div class="option" data-page-id="4-0-6">Adding custom formatting to numeric fields</div></a></div><div class="menu-column pages 4-1"><a href="/web/20210802034918/https://docs.looker.com/exploring-data/using-table-calculations" class="gtm-nav-link"><div class="option" data-page-id="4-1-0">Using table calculations</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/adding-fields/custom-measure" class="gtm-nav-link"><div class="option" data-page-id="4-1-1">Adding custom fields</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/creating-looker-expressions" class="gtm-nav-link"><div class="option" data-page-id="4-1-2">Creating Looker expressions</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/creating-looker-expressions/looker-functions-and-operators" class="gtm-nav-link"><div class="option" data-page-id="4-1-3">Looker functions and operators</div></a></div><div class="menu-column pages 4-2"><a href="/web/20210802034918/https://docs.looker.com/exploring-data/visualizing-query-results" class="gtm-nav-link"><div class="option" data-page-id="4-2-0">Creating visualizations and graphs</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/visualizing-query-results/visualization-types" class="gtm-nav-link"><div class="option" data-page-id="4-2-1">Visualization types</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/visualizing-query-results/color-collections" class="gtm-nav-link"><div class="option" data-page-id="4-2-2">Color collections</div></a><a href="/web/20210802034918/https://docs.looker.com/exploring-data/visualizing-query-results/time-formatting-for-charts" class="gtm-nav-link"><div class="option" data-page-id="4-2-3">Time formatting for charts</div></a><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data#how_to_create_charts" class="gtm-nav-link"><div class="option" data-page-id="4-2-4">Video tutorials</div></a></div><div class="menu-column pages 5-0"><a href="/web/20210802034918/https://docs.looker.com/exploring-data/saving-and-editing-looks" class="gtm-nav-link"><div class="option" data-page-id="5-0-0">Saving and editing Looks</div></a></div><div class="menu-column pages 5-1"><a href="/web/20210802034918/https://docs.looker.com/dashboards/creating-dashboards-beta" class="gtm-nav-link"><div class="option" data-page-id="5-1-0">Creating user-defined dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/dashboards/editing-dashboards-beta" class="gtm-nav-link"><div class="option" data-page-id="5-1-1">Editing user-defined dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/dashboards/dashboard-beta-filters" class="gtm-nav-link"><div class="option" data-page-id="5-1-2">Adding and editing user-defined dashboard filters</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/filter-expressions" class="gtm-nav-link"><div class="option" data-page-id="5-1-3">Looker filter expressions</div></a><a href="/web/20210802034918/https://docs.looker.com/dashboards/cross-filtering" class="gtm-nav-link"><div class="option" data-page-id="5-1-4">Cross-filtering dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/dashboards/embedding-dashboards-beta" class="gtm-nav-link"><div class="option" data-page-id="5-1-5">Embedding dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/dashboards/legacy-dashboards-landing" class="gtm-nav-link"><div class="option" data-page-id="5-1-6">Legacy dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data#creating_user-defined_dashboards" class="gtm-nav-link"><div class="option" data-page-id="5-1-7">Video tutorials</div></a></div><div class="menu-column pages 5-2"><a href="/web/20210802034918/https://docs.looker.com/dashboards/creating-lookml-dashboards" class="gtm-nav-link"><div class="option" data-page-id="5-2-0">Building LookML dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/lookml-dashboard-overview" class="gtm-nav-link"><div class="option" data-page-id="5-2-1">LookML dashboard reference</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/dashboard-reference/lookml-visualization-reference" class="gtm-nav-link"><div class="option" data-page-id="5-2-2">Dashboard element parameters</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/dashboard-reference/lookml-reference-lines-reference" class="gtm-nav-link"><div class="option" data-page-id="5-2-3">Dashboard reference line parameters</div></a><a href="/web/20210802034918/https://docs.looker.com/dashboards/lookml-to-user-dashboard" class="gtm-nav-link"><div class="option" data-page-id="5-2-4">Converting from LookML to user-defined dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/dashboards/creating-lookml-dashboards#create_a_lookml_copy_of_a_user-defined_dashboard" class="gtm-nav-link"><div class="option" data-page-id="5-2-5">Converting from user-defined to LookML dashboards</div></a></div><div class="menu-column pages 6-0"><a href="/web/20210802034918/https://docs.looker.com/data-modeling" class="gtm-nav-link"><div class="option" data-page-id="6-0-0">Get ready for development</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/how-project-works" class="gtm-nav-link"><div class="option" data-page-id="6-0-1">How a project works in Looker</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/dev-mode-prod-mode" class="gtm-nav-link"><div class="option" data-page-id="6-0-2">Development Mode and Production Mode</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/file-types-in-project" class="gtm-nav-link"><div class="option" data-page-id="6-0-3">LookML project files</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/model-development" class="gtm-nav-link"><div class="option" data-page-id="6-0-4">Understanding model and view files</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/other-project-files" class="gtm-nav-link"><div class="option" data-page-id="6-0-5">Understanding other project files</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/ide-folders" class="gtm-nav-link"><div class="option" data-page-id="6-0-6">Working with folders in the IDE</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/object-browser" class="gtm-nav-link"><div class="option" data-page-id="6-0-7">Navigating projects with the object browser panel</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/lookml-metadata" class="gtm-nav-link"><div class="option" data-page-id="6-0-8">Metadata for LookML objects</div></a></div><div class="menu-column pages 6-1"><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/how-looker-generates-sql" class="gtm-nav-link"><div class="option" data-page-id="6-1-0">How Looker generates SQL</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/sql-runner" class="gtm-nav-link"><div class="option" data-page-id="6-1-1">SQL Runner basics</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/sql-runner-create-queries" class="gtm-nav-link"><div class="option" data-page-id="6-1-2">Using SQL Runner to create queries and Explores</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/sql-runner-create-dts" class="gtm-nav-link"><div class="option" data-page-id="6-1-3">Using SQL Runner to create derived tables</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/sql-runner-manage-db" class="gtm-nav-link"><div class="option" data-page-id="6-1-4">Managing database functions with SQL Runner</div></a></div><div class="menu-column pages 6-2"><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/create-projects" class="gtm-nav-link"><div class="option" data-page-id="6-2-0">Creating a new LookML project</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/manage-projects" class="gtm-nav-link"><div class="option" data-page-id="6-2-1">Accessing and editing project information</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/connect-to-db-and-generate-model" class="gtm-nav-link"><div class="option" data-page-id="6-2-2">Generating a model</div></a></div><div class="menu-column pages 6-3"><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/setting-up-git-connection" class="gtm-nav-link"><div class="option" data-page-id="6-3-0">Setting up and testing a Git connection</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/git-options" class="gtm-nav-link"><div class="option" data-page-id="6-3-1">Configuring project version control settings</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/webhook-deploy-secret" class="gtm-nav-link"><div class="option" data-page-id="6-3-2">Configuring the webhook deploy secret</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/advanced-deploy-mode" class="gtm-nav-link"><div class="option" data-page-id="6-3-3">Advanced deploy mode</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/version-control-and-deploying-changes" class="gtm-nav-link"><div class="option" data-page-id="6-3-4">Using version control and deploying</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/git-command-reference" class="gtm-nav-link"><div class="option" data-page-id="6-3-5">Git command reference</div></a></div><div class="menu-column pages 6-4"><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/enabling-secure-db" class="gtm-nav-link"><div class="option" data-page-id="6-4-0">Enabling secure database access</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/database-config" class="gtm-nav-link"><div class="option" data-page-id="6-4-1">Database configuration instructions</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/connecting-to-db" class="gtm-nav-link"><div class="option" data-page-id="6-4-2">Connecting Looker to your database</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/connecting-to-db/testing-db-connectivity" class="gtm-nav-link"><div class="option" data-page-id="6-4-3">Testing database connectivity</div></a></div><div class="menu-column pages 6-5"><a href="/web/20210802034918/https://docs.looker.com/data-modeling/marketplace" class="gtm-nav-link"><div class="option" data-page-id="6-5-0">Using the Looker Marketplace</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/marketplace/customize-blocks" class="gtm-nav-link"><div class="option" data-page-id="6-5-1">Customizing Looker Marketplace Blocks</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/marketplace/adding-block-marketplace" class="gtm-nav-link"><div class="option" data-page-id="6-5-2">Developing a custom block for the Looker Marketplace</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/marketplace/adding-viz-marketplace" class="gtm-nav-link"><div class="option" data-page-id="6-5-3">Developing a custom visualization for the Looker Marketplace</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework/data-dictionary" class="gtm-nav-link"><div class="option" data-page-id="6-5-4">Using the Looker Data Dictionary</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework/lookml-diagram-admins" class="gtm-nav-link"><div class="option" data-page-id="6-5-5">Configuring the LookML Diagram</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework/lookml-diagram" class="gtm-nav-link"><div class="option" data-page-id="6-5-6">Using the LookML Diagram</div></a></div><div class="menu-column pages 6-6"><a href="/web/20210802034918/https://docs.looker.com/video-library/data-modeling" class="gtm-nav-link"><div class="option" data-page-id="6-6-0">Video tutorials</div></a></div><div class="menu-column pages 7-0"><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml" class="gtm-nav-link"><div class="option" data-page-id="7-0-0">Steps to learning LookML</div></a><a href="/web/20210802034918/https://docs.looker.com/video-library/data-modeling" class="gtm-nav-link"><div class="option" data-page-id="7-0-1">Video tutorials</div></a></div><div class="menu-column pages 7-1"><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/what-is-lookml" class="gtm-nav-link"><div class="option" data-page-id="7-1-0">What is LookML?</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/lookml-terms-and-concepts" class="gtm-nav-link"><div class="option" data-page-id="7-1-1">LookML terms and concepts</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/lookml-validation" class="gtm-nav-link"><div class="option" data-page-id="7-1-2">Editing and validating LookML</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/look-validation" class="gtm-nav-link"><div class="option" data-page-id="7-1-3">Content validation</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/sql-and-referring-to-lookml" class="gtm-nav-link"><div class="option" data-page-id="7-1-4">Incorporating SQL and referring to LookML objects</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/advanced-lookml-concepts" class="gtm-nav-link"><div class="option" data-page-id="7-1-5">Additional LookML basics</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/working-with-joins" class="gtm-nav-link"><div class="option" data-page-id="7-1-6">Working with joins in LookML</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/derived-tables" class="gtm-nav-link"><div class="option" data-page-id="7-1-7">Derived tables in Looker</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/creating-ndts" class="gtm-nav-link"><div class="option" data-page-id="7-1-8">Creating native derived tables</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/incremental-pdts" class="gtm-nav-link"><div class="option" data-page-id="7-1-9">Incremental PDTs</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/explore-menu-and-field-picker" class="gtm-nav-link"><div class="option" data-page-id="7-1-10">Changing the Explore menu and field picker</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/filter-suggestions" class="gtm-nav-link"><div class="option" data-page-id="7-1-11">Changing filter suggestions</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/looker-blocks" class="gtm-nav-link"><div class="option" data-page-id="7-1-12">Looker Blocks</div></a></div><div class="menu-column pages 7-2"><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/caching" class="gtm-nav-link"><div class="option" data-page-id="7-2-0">Caching queries and rebuilding PDTs with datagroups</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/aggregate_awareness" class="gtm-nav-link"><div class="option" data-page-id="7-2-1">Aggregate awareness</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/extends" class="gtm-nav-link"><div class="option" data-page-id="7-2-2">Reusing code with extends</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/refinements" class="gtm-nav-link"><div class="option" data-page-id="7-2-3">LookML refinements</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/importing-projects" class="gtm-nav-link"><div class="option" data-page-id="7-2-4">Importing files from other projects</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/templated-filters" class="gtm-nav-link"><div class="option" data-page-id="7-2-5">Templated filters and Liquid parameters</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/liquid-variables" class="gtm-nav-link"><div class="option" data-page-id="7-2-6">Liquid variable reference</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/security/html-sanitization" class="gtm-nav-link"><div class="option" data-page-id="7-2-7">HTML sanitization</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/model-localization" class="gtm-nav-link"><div class="option" data-page-id="7-2-8">Localizing your model</div></a></div><div class="menu-column pages 7-3"><a href="/web/20210802034918/https://docs.looker.com/reference/lookml" class="gtm-nav-link"><div class="option" data-page-id="7-3-0">LookML parameter reference by function</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/lookml-quick-reference" class="gtm-nav-link"><div class="option" data-page-id="7-3-1">LookML quick reference</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/manifest-reference" class="gtm-nav-link"><div class="option" data-page-id="7-3-2">Project manifest parameters</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/model-reference" class="gtm-nav-link"><div class="option" data-page-id="7-3-3">Model parameters</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/explore-reference" class="gtm-nav-link"><div class="option" data-page-id="7-3-4">Explore parameters</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/join-reference" class="gtm-nav-link"><div class="option" data-page-id="7-3-5">Join parameters</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/view-reference" class="gtm-nav-link"><div class="option" data-page-id="7-3-6">View parameters</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/field-reference" class="gtm-nav-link"><div class="option" data-page-id="7-3-7">Field parameters</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/field-reference/dimension-type-reference" class="gtm-nav-link"><div class="option" data-page-id="7-3-8">Dimension, filter, and parameter types</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/field-reference/measure-type-reference" class="gtm-nav-link"><div class="option" data-page-id="7-3-9">Measure types</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/filter-expressions" class="gtm-nav-link"><div class="option" data-page-id="7-3-10">Looker filter expressions</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/liquid-variables" class="gtm-nav-link"><div class="option" data-page-id="7-3-11">Liquid variable reference</div></a></div><div class="menu-column pages 8-0"><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-getting-started" class="gtm-nav-link"><div class="option" data-page-id="8-0-0">Getting started with the Looker API</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-auth" class="gtm-nav-link"><div class="option" data-page-id="8-0-1">Looker API authentication</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-cors" class="gtm-nav-link"><div class="option" data-page-id="8-0-2">Looker API authentication using OAuth</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-versioning" class="gtm-nav-link"><div class="option" data-page-id="8-0-3">Looker API versioning</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-explorer" class="gtm-nav-link"><div class="option" data-page-id="8-0-4">Using the API Explorer</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-reference/v3.0" class="gtm-nav-link"><div class="option" data-page-id="8-0-5">Looker 3.0 API (legacy) reference</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-reference/v3.1" class="gtm-nav-link"><div class="option" data-page-id="8-0-6">Looker 3.1 API reference</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-reference/v4.0" class="gtm-nav-link"><div class="option" data-page-id="8-0-7">Looker 4.0 API reference (experimental)</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-sdk" class="gtm-nav-link"><div class="option" data-page-id="8-0-8">Looker API SDKs</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-troubleshooting" class="gtm-nav-link"><div class="option" data-page-id="8-0-9">Looker API troubleshooting</div></a></div><div class="menu-column pages 8-1"><a href="/web/20210802034918/https://docs.looker.com/reference/embedding/security" class="gtm-nav-link"><div class="option" data-page-id="8-1-0">Security best practices for embedded analytics</div></a><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/embedding" class="gtm-nav-link"><div class="option" data-page-id="8-1-1">Private embedding</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/embedding/sso-embed" class="gtm-nav-link"><div class="option" data-page-id="8-1-2">Single sign-on (SSO) embedding</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/embedding/viewing" class="gtm-nav-link"><div class="option" data-page-id="8-1-3">Viewing embedded Looks, Explores, and dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/embedding/embed-javascript-events" class="gtm-nav-link"><div class="option" data-page-id="8-1-4">Embedded Javascript events</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/embedding/timezones" class="gtm-nav-link"><div class="option" data-page-id="8-1-5">SSO embedding time zone reference</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/settings/themes" class="gtm-nav-link"><div class="option" data-page-id="8-1-6">Custom themes for embedded dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/reference/embed-sdk" class="gtm-nav-link"><div class="option" data-page-id="8-1-7">Embed SDK</div></a></div><div class="menu-column pages 8-2"><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework" class="gtm-nav-link"><div class="option" data-page-id="8-2-0">Getting started with the Looker extension framework</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework/permissions" class="gtm-nav-link"><div class="option" data-page-id="8-2-1">Setting permissions for Looker extensions</div></a><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework/filter-components" class="gtm-nav-link"><div class="option" data-page-id="8-2-2">Looker filter components</div></a></div><div class="menu-column pages 9-0"><a href="/web/20210802034918/https://docs.looker.com/admin-options" class="gtm-nav-link"><div class="option" data-page-id="9-0-0">Set up and administer Looker overview</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/supported-browsers" class="gtm-nav-link"><div class="option" data-page-id="9-0-1">Supported browsers</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/supported-looker-versions" class="gtm-nav-link"><div class="option" data-page-id="9-0-2">Supported Looker versions</div></a></div><div class="menu-column pages 9-1"><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/looker-hosted-install" class="gtm-nav-link"><div class="option" data-page-id="9-1-0">Looker-hosted installation steps</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/on-prem-install" class="gtm-nav-link"><div class="option" data-page-id="9-1-1">Customer-hosted installation steps</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/on-prem-mgmt" class="gtm-nav-link"><div class="option" data-page-id="9-1-2">Managing a customer-hosted deployment</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/signin-options" class="gtm-nav-link"><div class="option" data-page-id="9-1-3">Getting started with users</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/on-prem-install/auto-provision-user" class="gtm-nav-link"><div class="option" data-page-id="9-1-4">Auto-provisioning a new Looker instance</div></a></div><div class="menu-column pages 9-2"><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/enabling-secure-db" class="gtm-nav-link"><div class="option" data-page-id="9-2-0">Enabling secure database access</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/database-config" class="gtm-nav-link"><div class="option" data-page-id="9-2-1">Database configuration instructions</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/connecting-to-db" class="gtm-nav-link"><div class="option" data-page-id="9-2-2">Connecting Looker to your database</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/connecting-to-db/testing-db-connectivity" class="gtm-nav-link"><div class="option" data-page-id="9-2-3">Testing database connectivity</div></a><a href="/web/20210802034918/https://docs.looker.com/video-library/data-modeling#setting_up_a_connection" class="gtm-nav-link"><div class="option" data-page-id="9-2-4">Video tutorials</div></a></div><div class="menu-column pages 9-3"><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/permissions" class="gtm-nav-link"><div class="option" data-page-id="9-3-0">Access control and permission management</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/access-controls" class="gtm-nav-link"><div class="option" data-page-id="9-3-1">Designing and configuring a system of access levels</div></a><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/tutorials/clustering" class="gtm-nav-link"><div class="option" data-page-id="9-3-2">Clustering Looker</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/connections" class="gtm-nav-link"><div class="option" data-page-id="9-3-3">Creating connections</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/system-activity" class="gtm-nav-link"><div class="option" data-page-id="9-3-4">System Activity pages</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/system-activity" class="gtm-nav-link"><div class="option" data-page-id="9-3-5">Creating Looker usage reports with System Activity Explores</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/notify-users" class="gtm-nav-link"><div class="option" data-page-id="9-3-6">Making announcements to your users</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/managing-bizusers/bizuser-features" class="gtm-nav-link"><div class="option" data-page-id="9-3-7">Managing business user features</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/delete-user" class="gtm-nav-link"><div class="option" data-page-id="9-3-8">Deleting personal user information</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/timezones" class="gtm-nav-link"><div class="option" data-page-id="9-3-9">Using time zone settings</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/localizing-looker" class="gtm-nav-link"><div class="option" data-page-id="9-3-10">Supported user-interface languages</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/localizing-number-formatting" class="gtm-nav-link"><div class="option" data-page-id="9-3-11">Localizing number formatting</div></a></div><div class="menu-column pages 9-4"><a href="/web/20210802034918/https://docs.looker.com/admin-options/settings" class="gtm-nav-link"><div class="option" data-page-id="9-4-0">General pages</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/system-activity/sa-dashboards" class="gtm-nav-link"><div class="option" data-page-id="9-4-1">System Activity dashboards</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/settings/page-users" class="gtm-nav-link"><div class="option" data-page-id="9-4-2">Users pages</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/database" class="gtm-nav-link"><div class="option" data-page-id="9-4-3">Database pages</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/scheduler" class="gtm-nav-link"><div class="option" data-page-id="9-4-4">Alerts & Schedules pages</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/platform" class="gtm-nav-link"><div class="option" data-page-id="9-4-5">Platform pages</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/security" class="gtm-nav-link"><div class="option" data-page-id="9-4-6">Authentication pages</div></a><a href="/web/20210802034918/https://docs.looker.com/admin-options/server" class="gtm-nav-link"><div class="option" data-page-id="9-4-7">Server pages</div></a></div><div class="menu-column pages 10-0"><a href="/web/20210802034918/https://docs.looker.com/mobile-app" class="gtm-nav-link"><div class="option" data-page-id="10-0-0">Looker mobile application</div></a><a href="/web/20210802034918/https://docs.looker.com/mobile-app/enabling-mobile" class="gtm-nav-link"><div class="option" data-page-id="10-0-1">Enabling the Looker mobile application for your instance</div></a><a href="/web/20210802034918/https://docs.looker.com/mobile-app/installation" class="gtm-nav-link"><div class="option" data-page-id="10-0-2">Installing the Looker mobile application on your mobile device</div></a><a href="/web/20210802034918/https://docs.looker.com/mobile-app/signing-in" class="gtm-nav-link"><div class="option" data-page-id="10-0-3">Signing in to the Looker mobile application</div></a><a href="/web/20210802034918/https://docs.looker.com/mobile-app/navigating-mobile-app" class="gtm-nav-link"><div class="option" data-page-id="10-0-4">Navigating to content in the Looker mobile application</div></a><a href="/web/20210802034918/https://docs.looker.com/mobile-app/viewing-looks" class="gtm-nav-link"><div class="option" data-page-id="10-0-5">Viewing Looks in the Looker mobile application</div></a><a href="/web/20210802034918/https://docs.looker.com/mobile-app/viewing-dashboards" class="gtm-nav-link"><div class="option" data-page-id="10-0-6">Viewing dashboards in the Looker mobile application</div></a></div> <!-- this is an add-on, not a partial, etc --> <!-- Instructions --> <div id="instructions"> <span>Hover over a category to see its contents</span> </div> </div> </section> <div id="release"> <a href="/web/20210802034918/https://docs.looker.com/relnotes/intro">Release</a> </div> </div> <div id="search"> <div style="position:relative;"> <form> <input type="text" class="st-default-search-input" placeholder="Search docs"></input> </form> <div id="search-tips">Hint: Press [Enter] or [Return] after typing a search term to see more results and spelling suggestions</div> </div> </div> <div id="reader-options"> <div id="mobile-search"> <form> <input type="text" class="st-default-search-input" placeholder="Search docs"></input> </form> </div> <div id="mobile-search-close"> <i class="material-icons">close</i> </div> <div id="mobile-options"> <i class="material-icons">settings</i> </div> <div class="version-container"> <div id="looker-picker"> Looker <span id="current-looker"></span> <i class="material-icons">keyboard_arrow_down</i> <div id="looker-choices"></div> </div> </div> <div class="version-container lang-container"> <div id="lang-picker"> <i class="material-icons globe-icon">language</i> <i class="material-icons">keyboard_arrow_down</i> <div id="lang-choices"> <div class="lang" data-lang-abbr="en">English</div> <div class="lang" data-lang-abbr="fr">Français</div> <div class="lang" data-lang-abbr="de">Deutsch</div> <div class="lang" data-lang-abbr="ja">日本語</div> </div> </div> </div> <div id="mobile-search-button"> <i class="material-icons">search</i> </div> <div id="print"> <i class="material-icons">print</i> </div> </div> </header> <main> <section id="mobile-menu"> <ul><li>Looker introduction<ul class="child-nav"><li>Quick start pages<ul class="child-nav"><li><a href="https://web.archive.org/web/20210802034918/https://vimeo.com/215917994" class="gtm-nav-link">Logging in video tutorial</a></li><li><a href="/web/20210802034918/https://docs.looker.com/intro" class="gtm-nav-link">Looker introduction</a></li><li><a href="/web/20210802034918/https://docs.looker.com/relnotes/intro" class="gtm-nav-link">Latest features</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing" class="gtm-nav-link">Find and organize content</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/send-share-intro" class="gtm-nav-link">Send and share content</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/retrieve-chart-intro" class="gtm-nav-link">Retrieve and chart data</a></li><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/dashboards-reports-intro" class="gtm-nav-link">Create and edit dashboards and reports</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling" class="gtm-nav-link">Get ready for development</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/lookml-intro" class="gtm-nav-link">Write LookML</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-embedding-intro" class="gtm-nav-link">Use embedding and the API</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options" class="gtm-nav-link">Set up and administer Looker</a></li></ul></li><li>Personalizing Looker<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-menu" class="gtm-nav-link">Personalizing your user profile</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-account" class="gtm-nav-link">Personalizing user account settings</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-history" class="gtm-nav-link">Viewing your query history</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-schedules" class="gtm-nav-link">Viewing your scheduled data deliveries</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-alerts" class="gtm-nav-link">Viewing your conditional alert notifications</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/user-sessions" class="gtm-nav-link">Viewing information about your session</a></li></ul></li><li>Keyboard shortcuts<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/exploring-data/keyboard-shortcuts" class="gtm-nav-link">Keyboard shortcuts in Looker</a></li></ul></li><li>Video tutorials<ul class="child-nav"><li><a href="https://web.archive.org/web/20210802034918/https://vimeo.com/268498280" class="gtm-nav-link">Why use Looker?</a></li><li><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data" class="gtm-nav-link">Business user tutorials</a></li><li><a href="/web/20210802034918/https://docs.looker.com/video-library/data-modeling" class="gtm-nav-link">Admin and developer tutorials</a></li></ul></li><li>Looker glossary<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/reference/glossary" class="gtm-nav-link">Looker glossary</a></li></ul></li><li>Looker error catalog<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/reference/looker-error-catalog" class="gtm-nav-link">Looker error catalog</a></li></ul></li></ul></li></ul><ul><li>Latest features<ul class="child-nav"><li>Latest features<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/relnotes" class="gtm-nav-link">Looker 21 release highlights</a></li><li><a href="/web/20210802034918/https://docs.looker.com/relnotes/v21-changelog" class="gtm-nav-link">Looker 21 changelog</a></li><li><a href="/web/20210802034918/https://docs.looker.com/relnotes/v7-release-notes" class="gtm-nav-link">Looker 7 release highlights</a></li><li><a href="/web/20210802034918/https://docs.looker.com/relnotes/v7-changelog" class="gtm-nav-link">Looker 7 changelog</a></li><li><a href="/web/20210802034918/https://docs.looker.com/relnotes/esr-notes" class="gtm-nav-link">Extended support release notes</a></li><li><a href="/web/20210802034918/https://docs.looker.com/relnotes/v6-release-notes" class="gtm-nav-link">Looker 6 release notes</a></li><li><a href="/web/20210802034918/https://docs.looker.com/relnotes/v5-release-notes" class="gtm-nav-link">Looker 5 release notes</a></li><li><a href="/web/20210802034918/https://docs.looker.com/relnotes/v4-release-notes" class="gtm-nav-link">Looker 4 release notes</a></li><li><a href="/web/20210802034918/https://docs.looker.com/relnotes/v3-release-notes" class="gtm-nav-link">Looker 3 release notes</a></li></ul></li></ul></li></ul><ul><li>Find and organize content<ul class="child-nav"><li>Finding and viewing content<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/finding-content" class="gtm-nav-link">Finding content in Looker</a></li><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/new-dashboard-experience" class="gtm-nav-link">Viewing dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/viewing-user-dashboards" class="gtm-nav-link">Viewing legacy dashboards in Looker</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/viewing-looks" class="gtm-nav-link">Viewing Looks in Looker</a></li><li><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data#find_and_view_content" class="gtm-nav-link">Video tutorials</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/filter-expressions" class="gtm-nav-link">Looker filter expressions</a></li></ul></li><li>Organizing content<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/organizing-spaces" class="gtm-nav-link">Organizing and managing access to content</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/presenting-content" class="gtm-nav-link">Presenting content with boards</a></li></ul></li><li>For developers and admins<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/admin-spaces" class="gtm-nav-link">Deleted and unused content for admins</a></li></ul></li></ul></li></ul><ul><li>Send and share content<ul class="child-nav"><li>Sharing data overview<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/sharing-data" class="gtm-nav-link">Sharing data</a></li></ul></li><li>One-time sharing<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/downloading" class="gtm-nav-link">Downloading content</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/publishing-looks-with-public-urls" class="gtm-nav-link">Public sharing, importing, and embedding of Looks</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/sharing-urls" class="gtm-nav-link">Sharing data from URLs</a></li></ul></li><li>Periodic sharing<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/scheduling" class="gtm-nav-link">Using the Looker Scheduler to Deliver Content</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/scheduling-new-dashboards" class="gtm-nav-link">Scheduling and sending dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/scheduling-slack" class="gtm-nav-link">Scheduling deliveries to the Slack integration</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/action-hub" class="gtm-nav-link">Sharing data through an action hub</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/scheduling-for-admins" class="gtm-nav-link">Configuring content deliveries for Looker users (Looker admins)</a></li></ul></li><li>Conditional sharing<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/delivering-looks-explores#send_this_schedule_if" class="gtm-nav-link">Conditionally delivering Looks and Explores</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/alerts" class="gtm-nav-link">Conditional alerts overview</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/alerts-for-admins" class="gtm-nav-link">Configuring conditional alerts for Looker users (Looker admins)</a></li></ul></li><li>Video tutorials<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data#send_and_share_content" class="gtm-nav-link">Video tutorials</a></li></ul></li></ul></li></ul><ul><li>Retrieve and chart data<ul class="child-nav"><li>Retrieving data<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/exploring-data" class="gtm-nav-link">Exploring data in Looker</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/filtering-and-limiting" class="gtm-nav-link">Filtering and limiting data</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/exploring-data/merged-results" class="gtm-nav-link">Merging results from different Explores</a></li><li><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data#how_to_retrieve_data" class="gtm-nav-link">Video tutorials</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/filter-expressions" class="gtm-nav-link">Looker filter expressions</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/creating-looker-expressions/looker-functions-and-operators" class="gtm-nav-link">Looker functions and operators</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/custom-formatting" class="gtm-nav-link">Adding custom formatting to numeric fields</a></li></ul></li><li>Creating your own fields<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/using-table-calculations" class="gtm-nav-link">Using table calculations</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/adding-fields/custom-measure" class="gtm-nav-link">Adding custom fields</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/creating-looker-expressions" class="gtm-nav-link">Creating Looker expressions</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/creating-looker-expressions/looker-functions-and-operators" class="gtm-nav-link">Looker functions and operators</a></li></ul></li><li>Creating charts<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/visualizing-query-results" class="gtm-nav-link">Creating visualizations and graphs</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/visualizing-query-results/visualization-types" class="gtm-nav-link">Visualization types</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/visualizing-query-results/color-collections" class="gtm-nav-link">Color collections</a></li><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/visualizing-query-results/time-formatting-for-charts" class="gtm-nav-link">Time formatting for charts</a></li><li><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data#how_to_create_charts" class="gtm-nav-link">Video tutorials</a></li></ul></li></ul></li></ul><ul><li>Create dashboards and reports<ul class="child-nav"><li>Creating saved reports (Looks)<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/exploring-data/saving-and-editing-looks" class="gtm-nav-link">Saving and editing Looks</a></li></ul></li><li>Creating user-defined dashboards<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/creating-dashboards-beta" class="gtm-nav-link">Creating user-defined dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/editing-dashboards-beta" class="gtm-nav-link">Editing user-defined dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/dashboard-beta-filters" class="gtm-nav-link">Adding and editing user-defined dashboard filters</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/filter-expressions" class="gtm-nav-link">Looker filter expressions</a></li><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/cross-filtering" class="gtm-nav-link">Cross-filtering dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/embedding-dashboards-beta" class="gtm-nav-link">Embedding dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/legacy-dashboards-landing" class="gtm-nav-link">Legacy dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/video-library/exploring-data#creating_user-defined_dashboards" class="gtm-nav-link">Video tutorials</a></li></ul></li><li>Creating and managing LookML dashboards<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/creating-lookml-dashboards" class="gtm-nav-link">Building LookML dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/lookml-dashboard-overview" class="gtm-nav-link">LookML dashboard reference</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/dashboard-reference/lookml-visualization-reference" class="gtm-nav-link">Dashboard element parameters</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/dashboard-reference/lookml-reference-lines-reference" class="gtm-nav-link">Dashboard reference line parameters</a></li><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/lookml-to-user-dashboard" class="gtm-nav-link">Converting from LookML to user-defined dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/dashboards/creating-lookml-dashboards#create_a_lookml_copy_of_a_user-defined_dashboard" class="gtm-nav-link">Converting from user-defined to LookML dashboards</a></li></ul></li></ul></li></ul><ul><li>Get ready for development<ul class="child-nav"><li>Development basics<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling" class="gtm-nav-link">Get ready for development</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/how-project-works" class="gtm-nav-link">How a project works in Looker</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/dev-mode-prod-mode" class="gtm-nav-link">Development Mode and Production Mode</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/file-types-in-project" class="gtm-nav-link">LookML project files</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/model-development" class="gtm-nav-link">Understanding model and view files</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/other-project-files" class="gtm-nav-link">Understanding other project files</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/ide-folders" class="gtm-nav-link">Working with folders in the IDE</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/object-browser" class="gtm-nav-link">Navigating projects with the object browser panel</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/lookml-metadata" class="gtm-nav-link">Metadata for LookML objects</a></li></ul></li><li>SQL in Looker<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/how-looker-generates-sql" class="gtm-nav-link">How Looker generates SQL</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/sql-runner" class="gtm-nav-link">SQL Runner basics</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/sql-runner-create-queries" class="gtm-nav-link">Using SQL Runner to create queries and Explores</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/sql-runner-create-dts" class="gtm-nav-link">Using SQL Runner to create derived tables</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/sql-runner-manage-db" class="gtm-nav-link">Managing database functions with SQL Runner</a></li></ul></li><li>Creating and editing projects<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/create-projects" class="gtm-nav-link">Creating a new LookML project</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/manage-projects" class="gtm-nav-link">Accessing and editing project information</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/connect-to-db-and-generate-model" class="gtm-nav-link">Generating a model</a></li></ul></li><li>Git and version control<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/setting-up-git-connection" class="gtm-nav-link">Setting up and testing a Git connection</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/git-options" class="gtm-nav-link">Configuring project version control settings</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/webhook-deploy-secret" class="gtm-nav-link">Configuring the webhook deploy secret</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/advanced-deploy-mode" class="gtm-nav-link">Advanced deploy mode</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/version-control-and-deploying-changes" class="gtm-nav-link">Using version control and deploying</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/git-command-reference" class="gtm-nav-link">Git command reference</a></li></ul></li><li>Setting up a database connection<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/enabling-secure-db" class="gtm-nav-link">Enabling secure database access</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/database-config" class="gtm-nav-link">Database configuration instructions</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/connecting-to-db" class="gtm-nav-link">Connecting Looker to your database</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/connecting-to-db/testing-db-connectivity" class="gtm-nav-link">Testing database connectivity</a></li></ul></li><li>Looker Marketplace<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/marketplace" class="gtm-nav-link">Using the Looker Marketplace</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/marketplace/customize-blocks" class="gtm-nav-link">Customizing Looker Marketplace Blocks</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/marketplace/adding-block-marketplace" class="gtm-nav-link">Developing a custom block for the Looker Marketplace</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/marketplace/adding-viz-marketplace" class="gtm-nav-link">Developing a custom visualization for the Looker Marketplace</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework/data-dictionary" class="gtm-nav-link">Using the Looker Data Dictionary</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework/lookml-diagram-admins" class="gtm-nav-link">Configuring the LookML Diagram</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework/lookml-diagram" class="gtm-nav-link">Using the LookML Diagram</a></li></ul></li><li>Video tutorials<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/video-library/data-modeling" class="gtm-nav-link">Video tutorials</a></li></ul></li></ul></li></ul><ul><li>Write LookML<ul class="child-nav"><li>Getting started with LookML<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml" class="gtm-nav-link">Steps to learning LookML</a></li><li><a href="/web/20210802034918/https://docs.looker.com/video-library/data-modeling" class="gtm-nav-link">Video tutorials</a></li></ul></li><li>Basic concepts<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/what-is-lookml" class="gtm-nav-link">What is LookML?</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/lookml-terms-and-concepts" class="gtm-nav-link">LookML terms and concepts</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/lookml-validation" class="gtm-nav-link">Editing and validating LookML</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/getting-started/look-validation" class="gtm-nav-link">Content validation</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/sql-and-referring-to-lookml" class="gtm-nav-link">Incorporating SQL and referring to LookML objects</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/advanced-lookml-concepts" class="gtm-nav-link">Additional LookML basics</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/working-with-joins" class="gtm-nav-link">Working with joins in LookML</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/derived-tables" class="gtm-nav-link">Derived tables in Looker</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/creating-ndts" class="gtm-nav-link">Creating native derived tables</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/incremental-pdts" class="gtm-nav-link">Incremental PDTs</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/explore-menu-and-field-picker" class="gtm-nav-link">Changing the Explore menu and field picker</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/filter-suggestions" class="gtm-nav-link">Changing filter suggestions</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/looker-blocks" class="gtm-nav-link">Looker Blocks</a></li></ul></li><li>Advanced concepts<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/caching" class="gtm-nav-link">Caching queries and rebuilding PDTs with datagroups</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/aggregate_awareness" class="gtm-nav-link">Aggregate awareness</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/extends" class="gtm-nav-link">Reusing code with extends</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/refinements" class="gtm-nav-link">LookML refinements</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/importing-projects" class="gtm-nav-link">Importing files from other projects</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/templated-filters" class="gtm-nav-link">Templated filters and Liquid parameters</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/liquid-variables" class="gtm-nav-link">Liquid variable reference</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/security/html-sanitization" class="gtm-nav-link">HTML sanitization</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/model-localization" class="gtm-nav-link">Localizing your model</a></li></ul></li><li>LookML reference<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/reference/lookml" class="gtm-nav-link">LookML parameter reference by function</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/lookml-quick-reference" class="gtm-nav-link">LookML quick reference</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/manifest-reference" class="gtm-nav-link">Project manifest parameters</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/model-reference" class="gtm-nav-link">Model parameters</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/explore-reference" class="gtm-nav-link">Explore parameters</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/join-reference" class="gtm-nav-link">Join parameters</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/view-reference" class="gtm-nav-link">View parameters</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/field-reference" class="gtm-nav-link">Field parameters</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/field-reference/dimension-type-reference" class="gtm-nav-link">Dimension, filter, and parameter types</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/field-reference/measure-type-reference" class="gtm-nav-link">Measure types</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/filter-expressions" class="gtm-nav-link">Looker filter expressions</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/liquid-variables" class="gtm-nav-link">Liquid variable reference</a></li></ul></li></ul></li></ul><ul><li>Use embedding, the API, and the extension framework<ul class="child-nav"><li>Looker API<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-getting-started" class="gtm-nav-link">Getting started with the Looker API</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-auth" class="gtm-nav-link">Looker API authentication</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-cors" class="gtm-nav-link">Looker API authentication using OAuth</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-versioning" class="gtm-nav-link">Looker API versioning</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-explorer" class="gtm-nav-link">Using the API Explorer</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-reference/v3.0" class="gtm-nav-link">Looker 3.0 API (legacy) reference</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-reference/v3.1" class="gtm-nav-link">Looker 3.1 API reference</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-reference/v4.0" class="gtm-nav-link">Looker 4.0 API reference (experimental)</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-sdk" class="gtm-nav-link">Looker API SDKs</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/api-and-integration/api-troubleshooting" class="gtm-nav-link">Looker API troubleshooting</a></li></ul></li><li>Embedding<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/reference/embedding/security" class="gtm-nav-link">Security best practices for embedded analytics</a></li><li><a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/embedding" class="gtm-nav-link">Private embedding</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/embedding/sso-embed" class="gtm-nav-link">Single sign-on (SSO) embedding</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/embedding/viewing" class="gtm-nav-link">Viewing embedded Looks, Explores, and dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/embedding/embed-javascript-events" class="gtm-nav-link">Embedded Javascript events</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/embedding/timezones" class="gtm-nav-link">SSO embedding time zone reference</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/settings/themes" class="gtm-nav-link">Custom themes for embedded dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/reference/embed-sdk" class="gtm-nav-link">Embed SDK</a></li></ul></li><li>Extension framework and UI components<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework" class="gtm-nav-link">Getting started with the Looker extension framework</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework/permissions" class="gtm-nav-link">Setting permissions for Looker extensions</a></li><li><a href="/web/20210802034918/https://docs.looker.com/data-modeling/extension-framework/filter-components" class="gtm-nav-link">Looker filter components</a></li></ul></li></ul></li></ul><ul><li>Set up and administer Looker<ul class="child-nav"><li>Getting started with setup and admin<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/admin-options" class="gtm-nav-link">Set up and administer Looker overview</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/supported-browsers" class="gtm-nav-link">Supported browsers</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/supported-looker-versions" class="gtm-nav-link">Supported Looker versions</a></li></ul></li><li>Installation and maintenance<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/looker-hosted-install" class="gtm-nav-link">Looker-hosted installation steps</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/on-prem-install" class="gtm-nav-link">Customer-hosted installation steps</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/on-prem-mgmt" class="gtm-nav-link">Managing a customer-hosted deployment</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/signin-options" class="gtm-nav-link">Getting started with users</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/on-prem-install/auto-provision-user" class="gtm-nav-link">Auto-provisioning a new Looker instance</a></li></ul></li><li>Setting up a database connection<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/enabling-secure-db" class="gtm-nav-link">Enabling secure database access</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/database-config" class="gtm-nav-link">Database configuration instructions</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/connecting-to-db" class="gtm-nav-link">Connecting Looker to your database</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/connecting-to-db/testing-db-connectivity" class="gtm-nav-link">Testing database connectivity</a></li><li><a href="/web/20210802034918/https://docs.looker.com/video-library/data-modeling#setting_up_a_connection" class="gtm-nav-link">Video tutorials</a></li></ul></li><li>Admin tutorials<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/permissions" class="gtm-nav-link">Access control and permission management</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/access-controls" class="gtm-nav-link">Designing and configuring a system of access levels</a></li><li><a href="/web/20210802034918/https://docs.looker.com/setup-and-management/tutorials/clustering" class="gtm-nav-link">Clustering Looker</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/connections" class="gtm-nav-link">Creating connections</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/system-activity" class="gtm-nav-link">System Activity pages</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/system-activity" class="gtm-nav-link">Creating Looker usage reports with System Activity Explores</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/notify-users" class="gtm-nav-link">Making announcements to your users</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/managing-bizusers/bizuser-features" class="gtm-nav-link">Managing business user features</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/delete-user" class="gtm-nav-link">Deleting personal user information</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/timezones" class="gtm-nav-link">Using time zone settings</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/localizing-looker" class="gtm-nav-link">Supported user-interface languages</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/tutorials/localizing-number-formatting" class="gtm-nav-link">Localizing number formatting</a></li></ul></li><li>Admin panel reference<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/settings" class="gtm-nav-link">General pages</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/system-activity/sa-dashboards" class="gtm-nav-link">System Activity dashboards</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/settings/page-users" class="gtm-nav-link">Users pages</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/database" class="gtm-nav-link">Database pages</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/scheduler" class="gtm-nav-link">Alerts & Schedules pages</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/platform" class="gtm-nav-link">Platform pages</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/security" class="gtm-nav-link">Authentication pages</a></li><li><a href="/web/20210802034918/https://docs.looker.com/admin-options/server" class="gtm-nav-link">Server pages</a></li></ul></li></ul></li></ul><ul><li>Looker mobile application<ul class="child-nav"><li>Looker mobile application<ul class="child-nav"><li><a href="/web/20210802034918/https://docs.looker.com/mobile-app" class="gtm-nav-link">Looker mobile application</a></li><li><a href="/web/20210802034918/https://docs.looker.com/mobile-app/enabling-mobile" class="gtm-nav-link">Enabling the Looker mobile application for your instance</a></li><li><a href="/web/20210802034918/https://docs.looker.com/mobile-app/installation" class="gtm-nav-link">Installing the Looker mobile application on your mobile device</a></li><li><a href="/web/20210802034918/https://docs.looker.com/mobile-app/signing-in" class="gtm-nav-link">Signing in to the Looker mobile application</a></li><li><a href="/web/20210802034918/https://docs.looker.com/mobile-app/navigating-mobile-app" class="gtm-nav-link">Navigating to content in the Looker mobile application</a></li><li><a href="/web/20210802034918/https://docs.looker.com/mobile-app/viewing-looks" class="gtm-nav-link">Viewing Looks in the Looker mobile application</a></li><li><a href="/web/20210802034918/https://docs.looker.com/mobile-app/viewing-dashboards" class="gtm-nav-link">Viewing dashboards in the Looker mobile application</a></li></ul></li></ul></li></ul> <!-- this is an add-on, not a partial, etc --> </section> <section id="mobile-reader-options"></section> <nav> <div id="on-this-page" class="section-label">On this page</div> </nav> <article id="docs-content" data-swiftype-index="true"> <aside data-swiftype-index="false"> <!-- ============= VIDEOS ============= --> <!-- ============= RELATED CONTENT ============= --> <div id="related-links"> <div class="section-label">Related content</div> <div id="related-links-container"> <!-- Help Center --> <a id="help-center-link" href="#" target="_blank"> <div class="related-box"> <div class="related-location"> <i class="material-icons">help_center</i> Help Center </div> <div class="related-search"> Search for <span class="related-page-title">Caching queries and rebuilding PDTs with datagroups</span> </div> </div> </a> <!-- Community --> <a id="community-link" href="#" target="_blank"> <div class="related-box"> <div class="related-location"> <i class="material-icons">forum</i> Community </div> <div class="related-search"> Search for <span class="related-page-title">Caching queries and rebuilding PDTs with datagroups</span> </div> </div> </a> </div> </div> </aside> <div id="page-title">Caching queries and rebuilding PDTs with datagroups</div> <!-- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ --> <p><a name="overview"></a></p> <h1>Overview</h1> <p>Looker reduces the load on your database and improves performance by using cached results of prior queries when available and permitted by your caching policy. In addition, you can create complex queries as <a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/derived-tables#persistent_derived_tables_(pdts)">persistent derived tables (PDTs)</a>, which store their results to simplify later queries.</p> <p>Using datagroups is the most powerful technique for defining a caching policy, and for specifying when to rebuild PDTs.</p> <p>You can use one or more <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/datagroup"><code>datagroup</code></a> parameters to name caching policies and specify the desired behavior. Then you can use <code>persist_with</code> parameters at the <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/persist_with">model level</a> or the <a href="/web/20210802034918/https://docs.looker.com/reference/explore-params/persist_with">Explore level</a> to specify which Explores use each policy. You also can use the <a href="/web/20210802034918/https://docs.looker.com/reference/view-params/datagroup_trigger"><code>datagroup_trigger</code></a> parameter in a PDT definition to specify which policy to use in rebuilding the PDTs.</p> <p>Typical use cases for datagroups include:</p> <ul> <li>Wanting to integrate Looker more closely with the ETL phase of your data pipeline, such as loading data in batch through a nightly ETL job and wanting to clear any cached queries once that data is loaded</li> <li>Having PDTs that are regenerated infrequently, even though the underlying tables update frequently, so queries against the PDTs can be cached longer</li> </ul> <!-- <a name="improving_performance_and_reducing_database_load"></a> ## Improving performance and reducing database load --> <p><a name="how_looker_uses_cached_queries" class="anchor"></a></p> <h2>How Looker uses cached queries</h2> <p>For queries, the caching mechanism in Looker works as follows:</p> <ol> <li>Once a user runs a specific query, the result of that query is cached. Cache results are stored in an encrypted file on your Looker instance.</li> <li><p>When a new query is written, the cache is checked to see if the exact same query was previously run. All fields, filters, and parameters must be the same, including things such as the row limits. If the query is not found, then Looker runs the query against the database to get fresh database results (and those results are then cached).</p> <p><a href="/web/20210802034918/https://docs.looker.com/admin-options/server/usage#sql_comments"><strong>Context Comments</strong></a> do not affect caching. Looker adds a unique comment to the beginning of each SQL query. But as long as the SQL query itself is the same as a previous query (not including the context comments), Looker will use cached results.</p></li> <li>If the query is found in the cache, then Looker checks the caching policy defined in the model to see if the cache is still valid. By default, Looker invalidates cached results after an hour. You can use a <code>persist_for</code> parameter (at the <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/persist_for-for-model">model level</a> or the <a href="/web/20210802034918/https://docs.looker.com/reference/explore-params/persist_for-for-explore">Explore level</a>) or the more powerful <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/datagroup"><code>datagroup</code></a> parameter to specify the caching policy for when or in what circumstances the cached results become invalid and should be ignored. An admin can also invalidate the cached results for a datagroup. <ul> <li>If the cache is still valid, then those results are used.</li> <li>If the cache is no longer valid, then Looker runs the query against the database to get fresh query results. (Those new results are also cached.)</li> </ul></li> </ol> <p><a name="how_looker_uses_pdts_and_rebuilds_them" class="anchor"></a> <a name="how_looker_uses_and_rebuilds_pdts" class="anchor"></a></p> <h2>How Looker uses and rebuilds PDTs</h2> <p><a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/derived-tables#persistent_derived_tables_(pdts)">Persistent derived tables (PDTs)</a> are queries, typically very complex queries, that you can create as the basis of a view. For example, your query might identify the customer’s first and most recent orders plus the lifetime value of all their orders.</p> <p>When you create a PDT, you define it with one of these <a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/derived-tables#persistence_strategies">persistence strategies</a>:</p> <ul> <li>A set time period (using <a href="/web/20210802034918/https://docs.looker.com/reference/view-params/persist_for-for-derived_table"><code>persist_for</code></a>)</li> <li>A trigger caused by a change in the database (using <a href="/web/20210802034918/https://docs.looker.com/reference/view-params/sql_trigger_value"><code>sql_trigger_value</code></a>)</li> <li>A caching policy definition in a <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/datagroup"><code>datagroup</code></a>, triggered by a change using <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/datagroup#sql_trigger"><code>sql_trigger</code></a>, and assigned to the PDT using <a href="/web/20210802034918/https://docs.looker.com/reference/view-params/datagroup_trigger"><code>datagroup_trigger</code></a></li> </ul> <p>Using a datagroup gives you the most control over when the PDT is rebuilt. This page discusses setting up a datagroup for query caching and PDT rebuilding.</p> <!-- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ --> <p><a class="anchor" name="specifying_caching_policies_with_datagroup_parameters"></a></p> <h1>Specifying caching policies with <code>datagroup</code> parameters</h1> <p>You use one or more <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/datagroup"><code>datagroup</code></a> parameters at the model level to assign a caching policy to Explores and/or PDTs. If you want different caching policies for different Explores and/or PDTs, then specify each caching policy in a separate datagroup. You can also specify the <code>label</code> and <code>description</code> subparameters. These subparameters are visible from the <strong>Datagroups</strong> page in the <strong>Database</strong> section of the <strong>Admin</strong> panel.</p> <blockquote> <p>For connections using <a href="/web/20210802034918/https://docs.looker.com/admin-options/settings/user-attributes#connections">user attributes to specify the connection parameters</a>, you must create a separate connection using the <a href="/web/20210802034918/https://docs.looker.com/setup-and-management/connecting-to-db#pdt-overrides">PDT override fields</a> if you want to do either of the following:<br/> <b>•</b> Use PDTs in your model.<br/> <b>•</b> Define a datagroup caching policy using a <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/datagroup#sql_trigger">SQL query trigger</a>.<br/> Without the PDT overrides, you can still use a datagroup for the model and its Explores, as long as you define the datagroup’s caching policy using only <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/datagroup#max_cache_age"><code>max_cache_age</code></a>, not <code>sql_trigger</code>.</p> </blockquote> <p>Each datagroup specifies a policy using one or both of these subparameters:</p> <ul> <li>The <code>sql_trigger</code> parameter specifies a SQL query that returns one row with one column. If the value returned by the query is different than the query’s prior results, then the datagroup goes into a triggered state. See the <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/datagroup#sql_trigger">datagroup</a> documentation page for more information.</li> <li>The <code>max_cache_age</code> parameter is a string defining a time period. When the age of a query’s cache exceeds the time period, Looker invalidates the cache. The next time the query is issued, Looker sends the query to the database for fresh results. See the <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/datagroup#max_cache_age">datagroup</a> documentation page for more information.</li> </ul> <p>Often the best solution is to use the two parameters in combination. You specify a <code>sql_trigger</code> SQL query that will be triggered by your data load (ETL) into your database. In addition, you specify a <code>max_cache_age</code> that will invalidate old data if your ETL fails. The <code>max_cache_age</code> parameter ensures that if the cache for a datagroup isn’t cleared by the <code>sql_trigger</code>, then the cache entries will expire by a certain time. So the failure mode for a datagroup will be to query the database rather than serve stale data from the Looker cache.</p> <!-- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ --> <p><a name="using_a_datagroup's_caching_policy" class="anchor"></a> <a name="using_a_datagroups_caching_policy" class="anchor"></a> <a name="specifying_using_a_datagroup's_caching_policy"></a></p> <h1>Using a datagroup’s caching policy</h1> <p>You can use a datagroup’s caching policy for</p> <ul> <li>queries using a specific model</li> <li>queries on one or a group of Explores</li> <li>the contents of one or more PDTs</li> </ul> <p><a name="using_a_datagroup_for_query_results"></a></p> <h2>Using a datagroup for query results</h2> <p>You can specify a datagroup’s caching policy based on how you’d like it applied:</p> <ul> <li><strong>For a specific Explore:</strong> Use the datagroup in a <code>persist_with</code> parameter for that Explore’s definition.</li> <li><strong>For a group of Explores:</strong> Use the datagroup in a <code>persist_with</code> parameter for each of those Explore’s definitions.</li> <li><strong>As a default for all Explores:</strong> Use the datagroup in a single <code>persist_with</code> parameter at the model level.</li> </ul> <p>In the following example, we’ve included in the model file a datagroup named <code>orders_datagroup</code>. The datagroup has a <code>sql_trigger</code> parameter specifying that the query <code>select max(id) from my_tablename</code> will be used to detect when an ETL has happened. Even if that ETL doesn’t happen for a while, the datagroup’s <code>max_cache_age</code> specifies that the cached data will be used only for a maximum of 24 hours.</p> <p>The model’s <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/persist_with"><code>persist_with</code></a> parameter points to the <code>orders_datagroup</code> caching policy, which means this will be the default caching policy for all Explores in the model. But we don’t want to use the model’s default caching policy for the <code>customer_facts</code> and <code>customer_background</code> Explores, so we can add the <a href="/web/20210802034918/https://docs.looker.com/reference/explore-params/persist_with"><code>persist_with</code></a> parameter to specify a different caching policy for these two Explores. The <code>orders</code> and <code>orders_facts</code> Explores don’t have a <code>persist_with</code> parameter, so they will use the model’s default caching policy: <code>orders_datagroup</code>.</p> <p><div class="code" ace-mode="ace/mode/lookml" ace-theme="ace/theme/lookml" ace-gutter=""> datagroup: orders_datagroup { sql_trigger: SELECT max(id) FROM my_tablename ;; max_cache_age: "24 hours" } datagroup: customers_datagroup { sql_trigger: SELECT max(id) FROM my_other_tablename ;; } persist_with: orders_datagroup explore: orders { … } explore: order_facts { … } explore: customer_facts { persist_with: customers_datagroup … } explore: customer_background { persist_with: customers_datagroup … } </div></p> <p>If both <code>persist_with</code> and <code>persist_for</code> are specified, then you will receive a validation warning and the <code>persist_with</code> will be used.</p> <p><a name="using_a_datagroup_for_a_pdt" class="anchor"></a></p> <h2>Using a datagroup for a PDT</h2> <p>To use a datagroup’s caching policy to trigger rebuilding a PDT, you use the <code>datagroup_trigger</code> in the PDT’s definition and specify the name of the datagroup. If you use <code>datagroup_trigger</code> for your PDT, you don’t need to use the <a href="/web/20210802034918/https://docs.looker.com/reference/view-params/sql_trigger_value"><code>sql_trigger_value</code></a> or <a href="/web/20210802034918/https://docs.looker.com/reference/view-params/persist_for-for-derived_table"><code>persist_for</code></a> parameters. If you do, you will get a warning in the Looker IDE, and only the <code>datagroup_trigger</code> will be used.</p> <p>For example, if we wanted to set the PDT to rebuild as specified by the <code>customers_datagroup</code> datagroup, we could use the following definition. This definition also adds several indexes, on both <code>customer_id</code> and <code>first_order_date</code>. For more information about defining PDTs, see the <a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/derived-tables#adding_persistence">Derived tables in Looker</a> documentation page.</p> <p><div class="code" ace-mode="ace/mode/lookml" ace-theme="ace/theme/lookml" ace-gutter=""> view: customer_order_facts { derived_table: { sql: … ;; datagroup_trigger: customers_datagroup indexes: ["customer_id", "first_order_date"] } } </div></p> <blockquote> <p>If you have <a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/derived-tables#cascading_derived_tables">cascading PDTs</a>, PDTs that are dependent on other PDTs, be careful not to specify incompatible datagroup caching policies.</p> </blockquote> <p>See the <a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/derived-tables#datagroup_trigger">Derived tables in Looker</a> documentation page for more information how datagroups work with PDTs.</p> <!-- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ --> <p><a name="using_the_admin_panel_for_datagroups"></a></p> <h1>Using the Admin panel for datagroups</h1> <p>If you have the Looker admin role, you can use the Admin tab’s <a href="/web/20210802034918/https://docs.looker.com/admin-options/database/datagroups"><strong>Datagroups</strong> page</a> to view the existing datagroups. You can see the connection and model of each datagroup, as well as the datagroups’ current status and a label and description for each datagroup, if specified in the LookML. You can also reset the cache for a datagroup, trigger the datagroup, or navigate to the datagroup’s LookML.</p> <p><img style="" src="/web/20210802034918im_/https://docs.looker.com/assets/images/admin-datagroups-74.png"/></p> <!-- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ --> <p><a name="using_datagroups_to_trigger_scheduled_deliveries"></a></p> <h1>Using datagroups to trigger scheduled deliveries</h1> <p>Datagroups can also be used to trigger a delivery of a <a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/scheduling-new-dashboards#schedules_triggered_by_datagroup_updates">dashboard</a>, a <a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/delivering-legacy-dashboards#specifying_the_datagroup_trigger">legacy dashboard</a>, or a <a href="/web/20210802034918/https://docs.looker.com/sharing-and-publishing/scheduling-and-sharing/delivering-looks-explores#specifying_the_datagroup_trigger">Look</a>. With this option, Looker will send your data when the datagroup completes, so that the scheduled content is up to date.</p> <p><a name="seeing_whether_a_query_was_returned_from_cache"></a></p> <h1>Seeing whether a query was returned from cache</h1> <p>You can determine whether or not a query has been returned from the cache by looking in the upper right corner after running a query.</p> <table style="border:none;max-width:600px;"> <tr> <td style="border:none;padding-left:0;">If results are from a fresh query,<br/>you will see …</td> <td style="border:none;">If the results are from the cache,<br/>you will see …</td> </tr> <tr> <td style="border:none;padding-left:0;"><img src="/web/20210802034918im_/https://docs.looker.com/assets/images/develop-not-from-cache-418.png" style="width:153px;"></td> <td style="border:none;"><img src="/web/20210802034918im_/https://docs.looker.com/assets/images/develop-from-cache-418.png" style="width:199px;"></td> </tr> </table> <!-- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ --> <p><a name="forcing_new_results_to_be_generated_from_the_database"></a></p> <h1>Forcing new results to be generated from the database</h1> <p>Users can also force new results to be retrieved from the database. Select the <strong>Clear Cache & Refresh</strong> option from the gear menu, which you’ll find in the upper right of the screen after running a query (including <a href="/web/20210802034918/https://docs.looker.com/exploring-data/exploring-data/merged-results">merged results</a> queries):</p> <p><img style=";border:none" src="/web/20210802034918im_/https://docs.looker.com/assets/images/develop-caching-clear-cache-720.png"/> </p> <p>A persistent derived table normally is regenerated based on the specified <code>datagroup</code>, <code>persist_for</code>, or <code>sql_trigger_value</code> parameter. You can force the derived table to regenerate early if your admin has given you the <a href="/web/20210802034918/https://docs.looker.com/admin-options/settings/roles#develop"><code>develop</code></a> permission, and you are viewing an Explore that includes fields from the PDT. Select the <strong>Rebuild Derived Tables & Run</strong> option from the gear drop-down menu, which you’ll find in the upper right of the screen after running a query:</p> <p><img style="width:879px;border:none" src="/web/20210802034918im_/https://docs.looker.com/assets/images/develop-caching-rebuild-derived-tables-720.png"/> </p> <p>See the <a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/derived-tables#manually_rebuilding_persistent_tables_for_a_query">Derived tables in Looker</a> documentation page for further details about the <strong>Rebuild Derived Tables & Run</strong> option.</p> <!-- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ --> <p><a name="data_delete"></a> <a name="how_long_is_data_stored_in_the_cache?"></a></p> <h1>How long is data stored in the cache?</h1> <p>To specify the amount of time before the cached results become invalid, use the <code>persist_for</code> parameter (<a href="/web/20210802034918/https://docs.looker.com/reference/model-params/persist_for-for-model">for a model</a> or <a href="/web/20210802034918/https://docs.looker.com/reference/explore-params/persist_for-for-explore">for an Explore</a>) or the <a href="/web/20210802034918/https://docs.looker.com/reference/model-params/datagroup#max_cache_age"><code>max_cache_age</code></a> parameter (for a datagroup). Here are the different behaviors along the timeline, depending on whether the <code>persist_for</code> or <code>max_cache_age</code> time has expired:</p> <ul> <li>Before the <code>persist_for</code> or <code>max_cache_age</code> time expires: If the query is rerun, Looker pulls data from the cache.</li> <li>When the <code>persist_for</code> or <code>max_cache_age</code> time expires: Looker deletes data from the cache, unless you have enabled the <strong>Instant Dashboards</strong> <a href="/web/20210802034918/https://docs.looker.com/admin-options/settings/labs#labs_overview">Looker Labs</a> feature.</li> <li>After the <code>persist_for</code> or <code>max_cache_age</code> time expires: If the query is rerun, Looker pulls the data from the database directly and resets the <code>persist_for</code> or <code>max_cache_age</code> timer.</li> </ul> <p>One key point here is that the data is <em>deleted</em> from the cache when the <code>persist_for</code> or <code>max_cache_age</code> time expires, as long as the <strong>Instant Dashboards</strong> Looker Labs feature is disabled. (The <strong>Instant Dashboards</strong> feature requires the cache in order to immediately load cached results into a dashboard.) If you enable <strong>Instant Dashboards</strong>, data stays in the cache for 30 days, or until the cache storage limits are reached. If the cache reaches the storage limit, data is ejected based on a Least Recently Used (LRU) algorithm, with no guarantee that data with expired <code>persist_for</code> or <code>max_cache_age</code> timers will be deleted all at once.</p> <p><a name="minimizing_the_time_your_data_spends_in_the_cache"></a></p> <h2>Minimizing the time your data spends in the cache</h2> <p>Looker requires the disk cache for internal processes, so data will always be written to the cache, even if you set the <code>persist_for</code> and <code>max_cache_age</code> parameters to 0. Once written to the cache, the data will be flagged for deletion but may live up to 10 minutes on disk.</p> <p>However, all customer data that appears in the disk cache is Advanced Encryption Standard (AES) encrypted, and you can minimize the amount of time that data is stored in the cache by making these changes:</p> <ul> <li>Disable the <strong>Instant Dashboards</strong> <a href="/web/20210802034918/https://docs.looker.com/admin-options/settings/labs#labs_overview">Looker Labs</a> feature, which requires Looker to store data in cache.</li> <li>For any <code>persist_for</code> parameter (for a model or an Explore) or <code>max_cache_age</code> parameter (for a datagroup), set the value to 0. For Looker instances with Instant Dashboards off, Looker deletes the cache when the <code>persist_for</code> time expires, or when the data reaches the <code>max_cache_age</code> specified in its <a href="/web/20210802034918/https://docs.looker.com/data-modeling/learning-lookml/caching#specifying_caching_policies_with_datagroup_parameters">datagroup</a>. (This is not necessary for the <a href="/web/20210802034918/https://docs.looker.com/reference/view-params/persist_for-for-derived_table"><code>persist_for</code> parameter of persistent derived tables</a>, because persistent derived tables are written to the database itself, and not to the cache.)</li> <li>Set the <a href="/web/20210802034918/https://docs.looker.com/reference/field-params/suggest_persist_for"><code>suggest_persist_for</code></a> parameter to a small amount of time. The <code>suggest_persist_for</code> value specifies how long Looker should keep filter suggestions in the cache. The filter suggestions are based on a query of the values for the field being filtered. These query results are kept in the cache so Looker can quickly provide suggestions as the user types in the filter text field. The default is to cache the filter suggestions for 6 hours. To minimize the amount of time your data is in the cache, set the <code>suggest_persist_for</code> value to something lower, such as 5 minutes.</li> </ul> </article> </main> <footer> <h2>Other resources</h2> <div id="resource-container"> <div id="discourse" class="resource"> <h3><i class="material-icons">help_center</i> Help Center</h3> <p>Our Help Center contains additional, short articles on specific use cases and special situations.</p> <a href="https://web.archive.org/web/20210802034918/https://help.looker.com/"><button>Go to Help Center</button></a> </div> <div id="discourse" class="resource"> <h3><i class="material-icons">forum</i> Community</h3> <p>Looker’s Community forums are a great place to discuss best practices, troubleshoot unique issues, and communicate with other Looker customers.</p> <a href="https://web.archive.org/web/20210802034918/https://community.looker.com/" class="gtm-discourse-link"><button>Go to Community</button></a> </div> <div id="support" class="resource"> <h3><i class="material-icons">school</i> Learn</h3> <p>Learn is Looker’s sandbox environment, primarily for developers. It includes lessons linked to real datasets in a real Looker instance, so you can understand the impact of developer changes.</p> <a href="https://web.archive.org/web/20210802034918/https://learn.looker.com/" class="gtm-learn-link"><button>Go to Learn</button></a> </div> </div> <div id="legal"> Examples are based on hypothetical data.<br/> © 2012-<script>document.write(new Date().getFullYear())</script> Looker Data Sciences, Inc.<br/> <a href="https://web.archive.org/web/20210802034918/https://looker.com/privacy">Privacy Policy</a> | <a href="https://web.archive.org/web/20210802034918/https://looker.com/terms">Terms & Conditions</a> </div> </footer> <!-- Back to Top Widget --> <a href="#0" class="cd-top">Top</a> </body> </html> <script> var selectedLooker = '21.12'; var lookerVersions = ['21.12','21.10','21.8','21.6','21.4']; var oldLookml = "New LookML rolled out in October of 2016 as part of Looker 4.0, so we've moved old LookML documentation to oldlookmldocs.looker.com. Click [OK] to go there or [Cancel] to stay here."; var browserLangSupport = false; var redirects = { }; </script> <script src="/web/20210802034918js_/https://docs.looker.com/_themes/docs/js/article.js?v=1"></script> <!-- FILE ARCHIVED ON 03:49:18 Aug 02, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 20:08:06 Dec 04, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.803 exclusion.robots: 0.024 exclusion.robots.policy: 0.015 esindex: 0.009 cdx.remote: 18.009 LoadShardBlock: 242.511 (3) PetaboxLoader3.datanode: 239.148 (4) PetaboxLoader3.resolve: 105.93 (2) load_resource: 176.047 -->