{"cssClassNames":"page basicpage summit-page","allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"language":"en","title":"Operational Excellence","templateName":"quickstart-page-template","analyticsPageType":"quickstart-page-template","analyticsCategory":"general","analyticsSubCategory":"","excludeFromAnalytics":false,":hierarchyType":"page",":path":"/content/snowflake-site/global/en/developers/guides/well-architected-framework-operational-excellence","analyticsEnabled":true,"coveoConfig":{"apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d","organizationId":"snowflakecomputingproduction8neljofn","searchHub":"snowflake.com","pipeline":"snowflake.com"},"analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"","pageType":"quickstart-page-template","templateName":"quickstart-page-template","siteName":"snowflake","pageUrl":"/content/snowflake-site/global/en/developers/guides/well-architected-framework-operational-excellence","language":"en","category":"general","pageName":"Operational Excellence","contentTags":["snowflake-site:taxonomy/solution-center/certification/well-architected-framework"]},":mappedPath":"/en/developers/guides/well-architected-framework-operational-excellence/",":type":"snowflake-site/components/structure/page","isPasswordProtected":false,"analyticsContentTags":["snowflake-site:taxonomy/solution-center/certification/well-architected-framework"],":items":{"root":{"columnClassNames":{"markup_editor_1950346551":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-banner":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-header":"aem-GridColumn aem-GridColumn--default--12","responsivegrid":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-footer":"aem-GridColumn aem-GridColumn--default--12","modal_container":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnCount":12,":items":{"experiencefragment-banner":{"id":"experiencefragment-748614a9c0","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/master/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"columnClassNames":{"pushdown_banner_copy":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-d3886a367a","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container",":items":{"pushdown_banner_copy":{"id":"pushdown-banner-eb7bfdbb52","contentHeadline":"Snowflake World Tour hits your city","contentDescription":"See how leading teams deploy agents at scale. Find a stop near you. Register free.","contentJustifyContent":"center","linkStyle":"text-white","linkCTA":{"id":"link-cta","heapButtonClasses":["pushdown_banner"],"showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"/en/world-tour/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Register now"},":type":"snowflake-site/components/pushdown-banner","appliedCssClassNames":"snowflake-pushdown-banner-text-white snowflake-pushdown-banner-background-black"}},":itemsOrder":["pushdown_banner_copy"]},"image":{":type":"nt:unstructured"},"cq:metadata":{":type":"nt:unstructured"}},":itemsOrder":["root","image","cq:metadata"]},"experiencefragment-header":{"id":"experiencefragment-1c7e883d80","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"columnClassNames":{"mega_header":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-7951f74ff7","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container",":items":{"markup_editor":{"id":"markup-editor-2ab4d5535d","title":" ","cssContent":".footer-nav__link-group .snowflake-button-container,.subnav__item--button,.snowflake-card-v2-advanced-button .snowflake-button-container{justify-content:flex-start}.mega-nav__sign-in.snowflake-button-container{display:none}@media screen and (min-width:768px){.mega-nav__sign-in.snowflake-button-container{display:inline-block;font-family:'Texta',sans-serif;font-weight:800 !important}}@media screen and (min-width:1024px) and (max-width:1199px){.snowflake-mega-nav-header-buttons-container .snowflake-button-blue .snowflake-button-container{font-size:13px !important}.snowflake-language-navigation .language-icon{width:18px !important;height:18px !important;margin-right:4px !important}}.mega-nav__sign-in svg{display:none}.nav-item__platform-parent-why-sf.snowflake-mega-nav-nav-item\u003Ea:hover,.nav-item__platform-parent.snowflake-mega-nav-nav-item\u003Ea:hover{background-color:transparent !important}.nav-platform-sidebar .snowflake-mega-nav-nav-item:hover.blue-icon .snowflake-mega-nav-nav-item-icon__inner{background-color:var(--ui-01) !important}@media screen and (min-width:1024px){.snowflake-mega-nav-navigation-dropdown{overflow:hidden}.meganav-platform-features{padding-left:64px}.meganav-platform-features::before{content:'';transform:translateX(-64px);display:block;z-index:0;width:100%;height:100%;position:absolute;top:0;background:#f7f9fa}.nav-item--si.snowflake-mega-nav-nav-item\u003Ea:hover{background-color:transparent}.nav-item--si{border-bottom:1px solid #ccc;padding-bottom:16px;margin-bottom:8px}.nav-item__platform-parent{border-bottom:1px solid #ccc;margin-bottom:8px;padding-bottom:16px}.nav-item__platform-parent-why-sf .snowflake-mega-nav-nav-item-description::after{content:'What Snowflake can do for you \u003E';display:block;color:var(--ui-01);margin-top:16px}.nav-item__platform-parent .snowflake-mega-nav-nav-item-description::after{content:'View the platform \u003E';display:block;color:var(--ui-01);margin-top:16px}}@media screen and (min-width:1367px){.snowflake-mega-nav-nav-item-description{font-size:13px !important;line-height:20px !important}.snowflake-mega-nav-nav-item-title-wrapper\u003E.snowflake-mega-nav-nav-item-title{font-size:17px !important}.nav-item__platform-parent-why-sf .snowflake-mega-nav-nav-item-title,.nav-item__platform-parent .snowflake-mega-nav-nav-item-title{font-size:24px !important;line-height:32px !important;margin-bottom:8px !important}.nav-item__platform-parent-why-sf .snowflake-mega-nav-nav-item-description,.nav-item__platform-parent .snowflake-mega-nav-nav-item-description{font-size:14px !important;line-height:20px !important}}html.wf-texta-n9-loading .display-1-v2{font-size:48px!important;line-height:50px!important;letter-spacing:-.5px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .heading-4-v2{font-size:18px!important;line-height:24px!important;font-family:sans-serif!important}@media screen and (min-width:768px){html.wf-texta-n9-loading .display-2-v2{font-size:48px!important;line-height:50px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .display-1-v2{font-size:55.5px!important;line-height:54px!important;letter-spacing:-.5px!important;font-family:sans-serif!important}html.wf-lato-n4-loading .body-2,html.wf-lato-n4-loading .heading-5-v2,html.wf-lato-n4-loading .snowflake-card-v2-advanced-text .snowflake-text p{font-size:15.5px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .heading-2,html.wf-texta-n9-loading .heading-2-v2{font-size:34px!important;line-height:38px!important;letter-spacing:-.75px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .heading-6-v2.snowflake-mega-nav-navigation-title{font-size:13.5px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .heading-4,html.wf-texta-n8-loading .snowflake-button-container,html.wf-texta-n8-loading .snowflake-button-regular .snowflake-button-container{font-size:13px!important;line-height:20px!important;letter-spacing:.25px!important;font-family:sans-serif!important}}@media screen and (min-width:1024px){html.wf-lato-n4-loading .snowflake-mega-nav-nav-item-description{font-size:11.5px!important;font-family:sans-serif!important}html.wf-lato-n4-loading .body-2,html.wf-lato-n4-loading .text-size-regular .snowflake-text li,html.wf-lato-n4-loading .text-size-regular .snowflake-text p,html.wf-lato-n4-loading .text-size-regular .snowflake-text span[data-testid=text-content],html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom li,html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom p,html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom span[data-testid=text-content]{font-size:13.5px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .snowflake-button-compact .snowflake-button-container{font-size:12px!important;letter-spacing:0!important;line-height:18px!important}}@media screen and (min-width:1367px){html.wf-lato-n4-loading .hp-hero__eyebrow a\u003Eb:first-child{font-size:11px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .hp-hero__eyebrow a{font-size:13px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .display-2-v2{font-size:61px!important;line-height:60px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .display-1-v2{font-size:74.5px!important;line-height:74px!important;letter-spacing:-.75px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .heading-2,html.wf-texta-n9-loading .heading-2-v2{font-size:41px!important;letter-spacing:-.75px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .heading-3-v2{font-family:sans-serif!important;letter-spacing:-.75px!important;font-size:33.75px!important}html.wf-texta-n9-loading .heading-4-v2{font-size:19.5px!important;line-height:26px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .heading-6-v2{font-size:12px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .heading-6-v2.snowflake-mega-nav-navigation-title{font-size:14px!important;font-family:sans-serif!important}html.wf-lato-n4-loading .body-1,html.wf-lato-n4-loading .cq-Editable-dom[data-cq-data-path*=text] ol\u003Eli,html.wf-lato-n4-loading .snowflake-text li,html.wf-lato-n4-loading .snowflake-text p,html.wf-lato-n4-loading .text-size-large .snowflake-text li,html.wf-lato-n4-loading .text-size-large .snowflake-text p,html.wf-lato-n4-loading .text-size-large .snowflake-text span[data-testid=text-content],html.wf-lato-n4-loading .text-size-large.cq-Editable-dom li,html.wf-lato-n4-loading .text-size-large.cq-Editable-dom p,html.wf-lato-n4-loading .text-size-large.cq-Editable-dom span[data-testid=text-content],html.wf-lato-n4-loading.cq-Editable-dom[data-cq-data-path*=text]\u003Ep,html.wf-lato-n4-loading.cq-Editable-dom[data-cq-data-path*=text]\u003Eul\u003Eli{font-size:17.5px!important;font-family:sans-serif!important}html.wf-lato-n4-loading .body-2,html.wf-lato-n4-loading .text-size-regular .snowflake-text li,html.wf-lato-n4-loading .text-size-regular .snowflake-text p,html.wf-lato-n4-loading .text-size-regular .snowflake-text span[data-testid=text-content],html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom li,html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom p,html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom span[data-testid=text-content],html.wf-texta-n8-loading .snowflake-button-link .snowflake-button-container,html.wf-texta-n8-loading .snowflake-button-link-back .snowflake-button-container{font-size:15.5px!important;font-family:sans-serif!important}html.wf-lato-n4-loading .body-3,html.wf-lato-n4-loading .text-size-small .snowflake-text li,html.wf-lato-n4-loading .text-size-small .snowflake-text p,html.wf-lato-n4-loading .text-size-small .snowflake-text span[data-testid=text-content],html.wf-lato-n4-loading .text-size-small.cq-Editable-dom li,html.wf-lato-n4-loading .text-size-small.cq-Editable-dom p,html.wf-lato-n4-loading .text-size-small.cq-Editable-dom span[data-testid=text-content]{font-size:13.5px!important;font-family:sans-serif!important}}#industryPlatformSection,.sc-hero{background-position:top left;background-size:20% auto}.bwalignc,.bwalignr{list-style-position:inside}.snowflake-text p sup{font-size:10px}#industryPlatformSection .industry-platform__row .snowflake-flexible-column-container-items,.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container,.snowflake-hero-system-content-container{gap:16px}.agenda-item p,.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv,.partner-details p{margin:0!important}.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container::after,.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container::before,.hide-logo .snowflake-case-study-card-logo,.partner-page__powered-by-logo,.sc-hero div.code-toolbar\u003E.toolbar,.snowflake-card-v2-advanced.no-link .snowflake-card-v2-advanced-button,.snowflake-partner-hero-card-badge-container{display:none!important}.section--card-mobile-carousel .snowflake-flexible-column-container-items-with-carousel{max-width:100%!important}@media screen and (min-width:768px){.button-group-pair .snowflake-button-container.inline-button--desktop,.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:auto!important;display:inline-block!important}.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container{align-items:center;justify-content:flex-start!important}.button-group-pair.center\u003E.container\u003E.cmp-container\u003E.aem-container{justify-content:center!important}.section--card-mobile-carousel{margin-left:var(--tablet-portrait-margin,48px)!important;margin-right:var(--tablet-portrait-margin,48px);width:calc(100% - 96px)!important;width:calc(100% - var(--tablet-portrait-margin) * 2)!important}}@media screen and (min-width:1024px){.section--card-mobile-carousel{margin-left:var(--tablet-horizontal-margin,48px)!important;margin-right:var(--tablet-horizontal-margin,48px);width:calc(100% - 96px)!important;width:calc(100% - var(--tablet-horizontal-margin) * 2)!important}.snowflake-mega-nav-header-mobile-icon{display:none!important}}@media screen and (min-width:1367px){.section--card-mobile-carousel{margin-left:var(--desktop-margin,6.5%)!important;margin-right:var(--desktop-margin,6.5%);width:87%!important;width:calc(100% - var(--desktop-margin) * 2)!important}.logo-container{min-width:143px}.sc-hero__headline .heading-1-v2{font-size:60px}.snowflake-mega-nav-navigation-title{font-size:17px}.snowflake-mega-nav-dropdown-footer-wrapper .snowflake-title-v2 .snowflake-title-v2-line:first-child{font-size:16px!important;line-height:24px!important}}.hero--home{overflow:hidden;background-color:var(--ui-01);z-index:2}.hp-hero__subheadline{width:90%}.hero--home .snowflake-button-container{transition:.3s}.hero--home .snowflake-button-primary a:hover,.hero--home .snowflake-button-secondary a:hover,.hero--home .snowflake-button-white a:hover{transition:.3s;background-color:var(--ui-02)!important;color:var(--ui-05)!important}.hero--home .snowflake-button-secondary a:hover{border-color:var(--ui-05)!important}.hero--home .snowflake-button-primary a:hover,.hero--home .snowflake-button-white a:hover{border-color:var(--ui-02)!important}.bwalignc,.hp-hero__eyebrow{text-align:center}.hp-hero__eyebrow a{display:inline-flex;flex-direction:column;justify-content:center;cursor:pointer;padding:8px;border-radius:var(--spacing-01);gap:8px;align-items:center;background-color:#45aee3;color:var(--ui-03);font-family:Texta,sans-serif;font-weight:800;font-size:16px;line-height:22px;transition:background-color .3s}.hp-hero__eyebrow a:hover{background-color:#7fc6ea;text-decoration:none;transition:background-color .3s}.hp-hero__eyebrow a\u003Eb:first-child{text-transform:uppercase;white-space:nowrap;display:inline-block;background-color:var(--ui-02);color:var(--ui-05);font-size:12px!important;line-height:16px!important;font-family:Lato,sans-serif;font-weight:500!important;padding:3px 6px;border-radius:2px;letter-spacing:1px}@media screen and (min-width:767px){.hp-hero__eyebrow{text-align:left}.hp-hero__eyebrow a{flex-direction:row;text-align:left}}.hero--home__inner .offset-video,.hero--home__inner .snowflake-experience-fragment,.offset-video__bg-image{max-height:200px;overflow:hidden}.hero--home__inner .offset-video .wistia-responsive-padding{padding-top:100%}.hero--home__inner .snowflake-experience-fragment,.offset-video__bg-image{position:absolute!important;top:0;left:0;width:100%}.offset-video__bg-image{z-index:-1}@media screen and (min-width:768px){.hero--home__inner .snowflake-experience-fragment,.offset-video,.offset-video__bg-image{position:absolute!important;max-height:none;top:0;left:0;width:250%;padding-bottom:250%;transform:translate(0,-50%);height:0}.workloads_7.unistore{max-width:317px}}.promo-banner--homepage{z-index:2}.homepage-banner-offset-container::after{content:\"\";display:block;position:absolute;bottom:0;z-index:1;left:0;width:100%;height:80%;background:#fff}.section--quicklinks .snowflake-button-full-width a{padding-left:24px!important;padding-right:24px!important;transition:box-shadow .25s cubic-bezier(.4,0,.2,1);text-align:left;display:flex;justify-content:center;align-items:center}.section--quicklinks .snowflake-button-full-width a:hover{box-shadow:0 16px 16px 0 rgb(0 0 0 / .16);transition:box-shadow .25s cubic-bezier(.4,0,.2,1)}.section--quicklinks .snowflake-button-container:focus-visible a::before,.section--quicklinks .snowflake-button-full-width a::before{content:\"\";width:23px;height:23px;flex-shrink:0;margin-right:12px;display:inline-block;background-size:cover;background-repeat:no-repeat;background-position:center}#industryPartnerSlider .snowflake-navigation-icon.swiper-button-disabled,#partnerResources .section--resource-hub a svg,.button-tabs span.snowflake-tabs-navigation-item:after,.customer-card--hide-cta .snowflake-case-study-card-button,.dot-tabs span.snowflake-tabs-navigation-item::after,.partner-sidebar__mobile-expand,html:not(.aem-AuthorLayer-initial):not(.aem-AuthorLayer-Edit) .tab-content:not(.is-active){display:none}.section--quicklinks .snowflake-button-full-width a.pricing::before{background-image:url(https://www.snowflake.com/content/dam/snowflake-site/general/icons/decorative-icons/pricing-icon.svg)}.section--quicklinks .snowflake-button-full-width a.snowflake_on_snowflake::before{background-image:url(https://www.snowflake.com/content/dam/snowflake-site/general/icons/navigation/nav-icon_snowflake-bug.svg)}.section--quicklinks .snowflake-button-full-width a.virtual_hands_on_labs::before{background-image:url(https://www.snowflake.com/content/dam/snowflake-site/general/icons/navigation/nav-icon__training.svg)}.section--quicklinks .snowflake-button-full-width a.weekly_demo::before{background-image:url(https://www.snowflake.com/content/dam/snowflake-site/general/icons/navigation/nav-icon__webinars.svg)}@media screen and (min-width:1024px){.hero--home__inner .snowflake-experience-fragment,.offset-video,.offset-video__bg-image{left:-50%}.section--quicklinks .snowflake-flexible-column-container-items{gap:24px}.snowflake-quote-item-inner{padding:32px 24px 24px!important}}#communitiesOuter_overflowBottomGray::after{max-height:100px}#caseStudyOuter_overflowBottomMidBlue::after{max-height:180px}#caseStudyInner .snowflake-case-study-card .snowflake-wistia-video{border-radius:0!important}#caseStudyInner .snowflake-case-study-card{box-shadow:none!important;border-radius:0}#caseStudyInner{max-width:1200px;margin:0 auto;box-shadow:rgb(152 162 179 / .1) 0 10px 20px 0,rgb(152 162 179 / .25) 0 2px 6px 0;border-radius:8px;overflow:hidden;position:relative;z-index:1}.case-study__logo-bar\u003E.snowflake-flexible-column-container-items{background:#f7f9fa;padding:32px 16px 40px}.case-study__logo-bar .cmp-image__image{width:90%;margin:0 auto;max-width:240px}.hp-platform__text-group\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:not(:first-child),.sc-sidebar__group .snowflake-button-link{margin-top:8px}.workloads_7.unistore{margin-left:auto;margin-right:auto}#homepageFootnotesInner .snowflake-simple-stat-disclaimer .snowflake-text p{color:#fff!important}.snowflake-simple-stat-disclaimer .snowflake-text p\u003Ea{border-bottom:1px solid var(--ui-03);color:var(--text-03)}.snowflake-card-v2-advanced{color:inherit}#workloadCardGridOuter .snowflake-card-v2-base-front{gap:0}.video-modal.snowflake-modal-window-open-inner{background-color:#fff0;padding:8px;border:none}.snowflake-container-arrow-dotted-faded .snowflake-container-arrow-dotted-faded-image{width:40%!important;max-width:420px;top:4%!important}.list--blue-bullets ul{margin:0!important;padding:0!important;list-style-type:none}.list--blue-bullets li{margin:0;padding:0 0 0 32px;position:relative}.list--blue-bullets li::before{content:\"\";display:block;border-radius:100%;background:#29b5e8;width:18px;height:18px;position:absolute;top:4px;left:0;border:5px solid #e5f2f7;box-sizing:border-box}.list--blue-bullets li:not(:last-child){margin-bottom:1rem}.logo-tabs .snowflake-navigation-container,.snowflake-simple-stat-content:empty,.summit-speaker-card .snowflake-card-v2-advanced-text{margin-bottom:0}#techResourceInner,#techResourceOuter,div.overflow-bottom--blue,div.overflow-bottom--gray,div.overflow-bottom--mid-blue,div.overflow-bottom--white,div.overflow-top--blue,div.overflow-top--gray,div.overflow-top--mid-blue,div.overflow-top--white,div[id$=overflowBottomGray],div[id$=overflowBottomMidBlue],div[id$=overflowTopBlue],div[id$=overflowTopGray]{position:relative}div.overflow-bottom--blue::after,div.overflow-bottom--gray::after,div.overflow-bottom--mid-blue::after,div.overflow-bottom--white::after,div.overflow-top--blue::after,div.overflow-top--gray::after,div.overflow-top--mid-blue::after,div.overflow-top--white::after,div[id$=overflowBottomGray]::after,div[id$=overflowBottomMidBlue]::after,div[id$=overflowBottomWhite]::after,div[id$=overflowTopBlue]::after,div[id$=overflowTopGray]::after,div[id$=overflowTopWhite]::after{content:\"\";display:block;position:absolute;left:0;width:100%;height:40%}div.overflow-top--blue::after,div.overflow-top--gray::after,div.overflow-top--mid-blue::after,div.overflow-top--white::after,div[id$=overflowTopBlue]::after,div[id$=overflowTopGray]::after,div[id$=overflowTopWhite]::after{top:0}div.overflow-bottom--blue::after,div.overflow-bottom--gray::after,div.overflow-bottom--mid-blue::after,div.overflow-bottom--white::after,div[id$=overflowBottomGray]::after,div[id$=overflowBottomMidBlue]::after,div[id$=overflowBottomWhite]::after{bottom:0}div.overflow-bottom--white::after,div.overflow-top--white::after,div[id$=overflowBottomWhite]::after,div[id$=overflowTopWhite]::after{background:#fff!important}div.overflow-bottom--gray::after,div.overflow-top--gray::after,div[id$=overflowBottomGray]::after,div[id$=overflowTopGray]::after{background:#f6f9fa!important}div.overflow-bottom--mid-blue::after,div.overflow-top--mid-blue::after,div[id$=overflowBottomMidBlue]::after,div[id$=overflowTopMidBlue]::after{background:#11567f!important}div.overflow-bottom--blue::after,div.overflow-top--blue::after,div[id$=overflowBottomBlue]::after,div[id$=overflowTopBlue]::after{background:#259edc!important}.snowflake-premium-content-banner.promo-banner--no-shadow{box-shadow:none!important}#industryPartnerSlider .cmp-image__image,#industryPartnerSlider .section--partner-tabs .snowflake-image-container .cmp-image__image,#partnerSidebar,.has-shadow .cmp-image__image{box-shadow:0 10px 20px 0 rgb(152 162 179 / .1),0 2px 6px 0 rgb(152 162 179 / .25)}.content-chip--has-desc{align-items:flex-start;padding:20px!important}.content-chip--has-desc .snowflake-content-chip-image{max-width:100px}.content-chip--has-desc .snowflake-content-chip-image__image{aspect-ratio:1}.content-chip--has-desc .snowflake-title-v2-line:first-child{font-size:18px!important}.content-chip--has-desc .snowflake-title-v2-line:nth-child(2){color:#000!important;font-weight:500!important;font-size:16px!important;line-height:22px!important;margin-top:2px!important}.content-chip--has-desc .snowflake-content-chip-button{margin-top:6px!important;font-size:18px!important;display:none}.square-image .snowflake-content-chip-image{aspect-ratio:1;max-width:120px}.section--logo-bar.smaller-logos .snowflake-image-container .cmp-image__image{max-width:200px;margin:0 auto}.snowflake-card-v2-advanced-tag,.snowflake-content-chip-tag{padding:3px 6px!important}.sc-overview__webinar-promo-banner .snowflake-content-chip-button,.snowflake-card-v2-advanced-title:first-child,.summit-pricing-block__aside ul{margin-top:0}.dot-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item{width:40px;height:40px;display:flex;justify-content:center;align-items:center;margin:0!important}.dot-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item p{width:12px;height:12px;background:var(--ui-12);border-radius:100%}.dot-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item p,.logo-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item p{font-size:0!important}.dot-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item.active p{background:var(--ui-01)}.button-tabs .snowflake-navigation-container .swiper-wrapper{padding:8px 0}.button-tabs .snowflake-navigation-container .swiper-slide{margin:0 6px}.button-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item{padding:8px 24px;background-color:#f6f9fa;border-radius:48px;margin:0}.button-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item p{text-transform:uppercase;font-family:Texta,sans-serif;font-weight:700}.button-tabs .border-top{border-top:1px solid #ccc}.button-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item.active{background-color:var(--ui-01);box-shadow:0 2px 6px 0 rgb(152 162 179 / .25),0 10px 20px 0 rgb(152 162 179 / .1)}.button-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item.active p{color:#fff}.button-tabs.has-icons .snowflake-navigation-container .snowflake-tabs-navigation-item p::before{content:\"\";display:inline-block;width:20px;height:20px;background-size:contain;background-repeat:no-repeat;background-position:center center;margin-right:12px;vertical-align:middle;margin-top:-3px}.logo-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item{width:220px;padding-bottom:50%;height:0;margin:0 8px!important;background-size:cover;background-repeat:no-repeat;opacity:.5;transition:opacity .3s}.logo-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item:hover{opacity:.75;transition:opacity .3s}.logo-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item.active{opacity:1;transition:opacity .3s}.dot-tabs .aem-container.cmp-tabs,.logo-tabs .aem-container.cmp-tabs{display:flex;flex-direction:column-reverse}.snowflake-icon.is-center{margin:0 auto;display:block}#industryPartnerSlider .snowflake-flexible-column-container-items,#partnerLogoSquare .snowflake-flexible-column-container-items{gap:24px}#techResourceOuter::after{content:\"\";display:block;position:absolute;top:0;left:0;width:100%;height:40%;background:#f6f9fa}#techResourceInner{z-index:1}.partner-tier-tag h6{display:inline-block!important;padding:2px 6px;border-radius:2px;color:#666}.partner-tier-tag.registered h6{background-color:#f6f9fa}.partner-tier-tag.elite h6{background-color:#11567f;color:#fff}.partner-tier-tag.premier h6{background-color:#b14c77;color:#fff}.partner-tier-tag.select h6{background-color:#5094a0;color:#fff}.partner-details\u003Espan{display:flex;gap:24px}.partner-details a{color:inherit!important;font-weight:400!important}.partner-details p::before{content:\"\";display:inline-block;vertical-align:middle;width:16px;height:16px;background-repeat:no-repeat;background-position:center;transform:translateY(-1px);background-size:auto 90%;margin-right:6px}.partner-details__location::before{background-image:url(\"data:image/svg+xml,%3Csvg width='13' height='18' viewBox='0 0 13 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.25 17.7531C6.4375 17.7531 6.6 17.6844 6.7375 17.5531C6.875 17.4219 6.95 17.2531 6.95 17.0531C6.95 16.8531 7.075 16.4281 7.3 15.7969C7.5875 15.0281 7.925 14.3156 8.30625 13.6406C8.8 12.7781 9.3125 12.1031 9.85 11.6094C10.75 10.7969 11.4125 9.96563 11.85 9.12188C12.2875 8.27813 12.5063 7.40313 12.5063 6.49063C12.5063 5.36563 12.2187 4.31563 11.6437 3.33438C11.0937 2.40313 10.3438 1.65938 9.4 1.10938C8.43125 .534376 7.375 .246876 6.24375 .246876C5.1125 .246876 4.06875 .534376 3.0875 1.10938C2.15625 1.65938 1.4125 2.40313 .862498 3.33438C.287498 4.31563 0 5.36563 0 6.49063C0 7.47188 .262499 8.42813 .787499 9.35938C1.14375 10.0031 1.65625 10.6656 2.3125 11.3344C2.75625 11.8031 3.24375 12.4781 3.78125 13.3656C4.225 14.0969 4.63125 14.8594 5 15.6656C5.35 16.3844 5.53125 16.8531 5.55625 17.0656C5.55625 17.2594 5.625 17.4156 5.7625 17.5531C5.9 17.6844 6.0625 17.7531 6.25 17.7531ZM6.16875 14.9156C5.775 14.0656 5.325 13.2469 4.825 12.4594C4.275 11.5594 3.7625 10.8719 3.28125 10.3969C2.625 9.71563 2.1375 9.05938 1.825 8.43438C1.5125 7.80313 1.35625 7.16563 1.35625 6.50313C1.35625 5.61563 1.575 4.80313 2.0125 4.05313C2.45 3.30313 3.04375 2.71563 3.7875 2.27813C4.5375 1.84063 5.35 1.62188 6.2375 1.62188C7.125 1.62188 7.9375 1.84063 8.6875 2.27813C9.4375 2.71563 10.0312 3.30313 10.475 4.04688C10.9187 4.80313 11.1375 5.62188 11.1375 6.50313C11.1375 7.90313 10.3937 9.26563 8.9125 10.5969C8.35 11.1094 7.8125 11.7906 7.3 12.6406C6.88125 13.3344 6.50625 14.0969 6.16875 14.9219V14.9156ZM6.26875 8.36563C6.65625 8.36563 7.01875 8.26563 7.35625 8.07188C7.69375 7.87813 7.95625 7.60938 8.14375 7.28438C8.3375 6.95313 8.43125 6.59063 8.43125 6.19688C8.43125 5.80313 8.33125 5.43438 8.1375 5.10313C7.9375 4.76563 7.675 4.50313 7.3375 4.31563C7 4.12813 6.6375 4.02813 6.24375 4.02813C5.85 4.02813 5.4875 4.12813 5.15625 4.32188C4.825 4.52188 4.56875 4.78438 4.375 5.12188C4.18125 5.45938 4.0875 5.82188 4.0875 6.20938C4.0875 6.59688 4.1875 6.95938 4.38125 7.29688C4.58125 7.63438 4.84375 7.89688 5.18125 8.08438C5.51875 8.27813 5.88125 8.37188 6.26875 8.37188V8.36563ZM6.24375 7.50313C5.8875 7.50313 5.575 7.37188 5.31875 7.11563C5.0625 6.85938 4.93125 6.55313 4.93125 6.19063C4.93125 5.82813 5.0625 5.52188 5.31875 5.26563C5.575 5.00938 5.88125 4.87813 6.24375 4.87813C6.60625 4.87813 6.9125 5.00938 7.16875 5.26563C7.425 5.52188 7.55625 5.82813 7.55625 6.19063C7.55625 6.55313 7.425 6.85938 7.16875 7.11563C6.9125 7.37188 6.60625 7.50313 6.24375 7.50313Z' fill='%2329B5E8'/%3E%3C/svg%3E%0A\")}.partner-details__website::before{background-image:url(\"data:image/svg+xml,%3Csvg width='18' height='16' viewBox='0 0 18 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.61587 2.96889C2.61587 2.75109 2.79633 2.57062 3.01413 2.57062C3.23192 2.57062 3.41238 2.75109 3.41238 2.96889C3.41238 3.18669 3.23192 3.36716 3.01413 3.36716C2.79633 3.36716 2.61587 3.18669 2.61587 2.96889ZM4.21512 2.96889C4.21512 2.75109 4.39558 2.57062 4.61338 2.57062C4.83117 2.57062 5.01163 2.75109 5.01163 2.96889C5.01163 3.18669 4.83117 3.36716 4.61338 3.36716C4.39558 3.36716 4.21512 3.18669 4.21512 2.96889ZM5.81438 2.96889C5.81438 2.75109 5.99484 2.57062 6.21264 2.57062C6.43043 2.57062 6.61089 2.75109 6.61089 2.96889C6.61089 3.18669 6.43043 3.36716 6.21264 3.36716C5.99484 3.36716 5.81438 3.18669 5.81438 2.96889ZM17.2518 .697559H1.19085C.811258 .697559 .506348 1.0025 .506348 1.38209V14.6179C.506348 14.9975 .811258 15.3024 1.19085 15.3024H17.2518C17.6314 15.3024 17.9363 14.9975 17.9363 14.6179V1.38209C17.9363 1.0025 17.6314 .697559 17.2518 .697559ZM16.5673 2.06035V3.90853H1.86914V2.06035H16.5673ZM1.86914 13.9334V4.78593H16.5673V13.9334H1.86914Z' fill='%2329B5E8'/%3E%3C/svg%3E%0A\")}#partnerSidebar{border-radius:4px;background-color:#fff;padding:24px 24px 32px;border-bottom:6px solid #29b5e8}#partnerSidebar h5,.newsletter-disclaimer p{font-size:14px!important}#partnerSidebar ul{margin-top:0;list-style-type:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}#partnerSidebar li{border:1px solid;border-radius:2px;padding:0 4px!important;font-size:11px!important;letter-spacing:.25px;text-transform:uppercase}div.snowflake-partner-hero-card{width:100%;margin:0}.partner-details__logo{max-width:380px;margin:0 auto}@media screen and (max-width:767px){.left-alignment .hp-hero__subheadline{margin-left:auto;margin-right:auto}.left-alignment .hp-hero__headline .snowflake-title-v2-line,.left-alignment .hp-hero__subheadline .snowflake-title-v2-line{text-align:center}.hero--home__inner .snowflake-flexible-column-container-items-top-padding-large{padding-top:var(--spacing-02)}.section--logo-bar\u003E.snowflake-flexible-column-container-items{display:flex;flex-wrap:wrap;flex-direction:row;justify-content:center;gap:8px}.section--logo-bar\u003E.snowflake-flexible-column-container-items\u003Ediv{width:calc(33.33% - 8px)}.partner-sidebar__mobile-expand{display:inline-block;color:#249edc;border-color:#249edc!important}#partnerSidebar li:nth-child(n+6),.summit-nav__links .snowflake-button-tertiary{display:none}.sc-body__sidebar{background-color:#f6f9fa;padding:24px}.sc-body__content{padding:0 24px 24px}.summit-speaker-card .snowflake-card-v2-advanced-content{padding:24px}}#partnerResources h6,.snowflake-tabs-navigation-item p.body-1{font-size:16px!important}#partnerResources .section--resource-hub{padding:0 16px}#partnerResources .section--resource-hub a,.bwalignl{text-align:left}@media screen and (max-width:1023px){.hero--workload .snowflake-hero-system-media-container{width:100%}}.section--timely-content .snowflake-content-chip,.snowflake-mega-nav-dropdown-footer-wrapper{align-items:center}.section--timely-content .snowflake-content-chip-image{max-width:94px}.section--timely-content .snowflake-content-chip-image__inner{line-height:0}.section--timely-content .snowflake-content-chip-image__image{aspect-ratio:1;height:auto}.section--workload-overview .workload-overview__headline{max-width:280px;margin:0 auto}#industryPartnerSlider .swiper-slide{margin-top:0!important;padding:0 12px}#industryPartnerSlider .snowflake-tabs-navigation-item{margin-left:0!important;margin-right:0!important}#industryPartnerSlider .snowflake-premium-content-banner-background-grad-white .snowflake-premium-content-banner{box-shadow:none}#industryPartnerSlider .logo-slider__slide .aem-container{display:flex;padding:0 8px!important;flex-wrap:wrap;gap:16px!important;justify-content:center}#industryPartnerSlider .logo-slider__slide .aem-container\u003Ediv{width:48%;max-width:200px}#useCaseTabs{padding-top:24px;padding-bottom:24px;padding-right:24px}#useCaseTabs .tab-content.is-active{display:block}#useCaseTabs .vert-tab{border-bottom:1px solid #a0bbcc;padding-bottom:16px}#useCaseTabs .vert-tab p{display:inline-block}#useCaseTabs .vert-tab p:hover{cursor:pointer}#useCaseTabs .vert-tab p,#useCaseTabs .vert-tab.is-active p.not-active{color:#249edc}#useCaseTabs .vert-tab p.is-active,#useCaseTabs .vert-tab.is-active p{color:#000}#industryPlatformSection{background-image:url(/adobe/dynamicmedia/deliver/dm-aid--db074ad5-7122-4c51-87a3-76c3aa466182/double-arrow-bg%403x.png);background-repeat:no-repeat}.snowflake-text p.featured-quote__source{font-weight:900!important;text-transform:uppercase;font-size:16px!important;margin-top:2rem!important}.snowflake-text p.featured-quote__title{margin-top:0!important;font-size:16px!important}.snowflake-case-study-card-logo img{width:auto!important;height:100px!important;transform:translateX(-15%)}.snowflake-quote-item-quote-text{font-weight:600!important}#customerStoryStatsInner\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row}#customerStoryStat1,#customerStoryStat2{max-width:240px}#storyHighlights{border-radius:4px;padding:1rem}.sc-overview__webinar-promo-banner .snowflake-content-chip-content .snowflake-title-v2-line,.summit-pricing-block__tile .black-blue-text-color .snowflake-title-v2-line{color:#000!important}.snowflake-youtube-embedded-wrapper{border-radius:var(--small-border-radius)}#arcticNavItem::before,#offset::before,#open-source::before{color:var(--text-05);font-family:Texta,sans-serif!important}#offset,.sc-architecture-caption{margin-top:16px}.hero--press .snowflake-title-v2-line{text-transform:none!important}@media screen and (min-width:768px){.subpage-timely-content__inner\u003E.snowflake-flexible-column-container-items{box-shadow:0 10px 20px 0 rgb(152 162 179 / .1),0 2px 6px 0 rgb(152 162 179 / .25);padding:var(--spacing-04);border-radius:4px;overflow:hidden}#partnerLogoSquare{padding:0 0 0 48px}.hero--workload .snowflake-container{max-width:1440px;margin:0 auto!important;align-items:center}#industryPartnerSlider.snowflake-flexible-column-container-2-column-40-60\u003E.snowflake-flexible-column-container-items{grid-template-columns:minmax(40%,4fr) minmax(0,6fr)}#industryPartnerSlider .swiper-slide{padding:0 24px}.sc-body{padding:48px}.sc-body\u003E.snowflake-flexible-column-container-items{grid-template-columns:7fr 3fr;gap:124px}}.snowflake-button-container.has-icon{display:inline-flex;justify-content:center;align-items:center;text-align:left}.snowflake-button-container.has-icon::before{content:\"\";display:inline-block;width:20px;height:20px;margin-right:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.snowflake-button-container.is-video::before{background-image:url(\"data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 1.28663C13.2523 1.28663 16.7134 4.74768 16.7134 9C16.7134 13.2523 13.2523 16.7134 9 16.7134C4.74768 16.7198 1.28663 13.2588 1.28663 9C1.28663 4.74124 4.74768 1.28663 9 1.28663ZM9 0C4.0336 0 0 4.0336 0 9C0 13.9664 4.0336 18 9 18C13.9728 18 18 13.9664 18 9C18 4.0336 13.9728 0 9 0Z' fill='white'/%3E%3Cpath d='M7.75106 6.18211C7.42941 6.16925 7.16565 6.42658 7.16565 6.74823V11.2772C7.16565 11.7082 7.65457 11.9848 8.02126 11.7597L11.7975 9.4952C12.1578 9.27647 12.1578 8.74252 11.7975 8.52379L8.02126 6.25931C7.93763 6.21428 7.84756 6.18211 7.75106 6.18211Z' fill='white'/%3E%3C/svg%3E%0A\")}.snowflake-button-container.is-github::before{background-image:url(\"data:image/svg+xml,%3Csvg width='20' height='21' viewBox='0 0 20 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10 .651794C4.475 .651794 0 5.12679 0 10.6518C0 15.0768 2.8625 18.8143 6.8375 20.1393C7.3375 20.2268 7.525 19.9268 7.525 19.6643C7.525 19.4268 7.5125 18.6393 7.5125 17.8018C5 18.2643 4.35 17.1893 4.15 16.6268C4.0375 16.3393 3.55 15.4518 3.125 15.2143C2.775 15.0268 2.275 14.5643 3.1125 14.5518C3.9 14.5393 4.4625 15.2768 4.65 15.5768C5.55 17.0893 6.9875 16.6643 7.5625 16.4018C7.65 15.7518 7.9125 15.3143 8.2 15.0643C5.975 14.8143 3.65 13.9518 3.65 10.1268C3.65 9.03929 4.0375 8.13929 4.675 7.43929C4.575 7.18929 4.225 6.16429 4.775 4.78929C4.775 4.78929 5.6125 4.52679 7.525 5.81429C8.325 5.58929 9.175 5.47679 10.025 5.47679C10.875 5.47679 11.725 5.58929 12.525 5.81429C14.4375 4.51429 15.275 4.78929 15.275 4.78929C15.825 6.16429 15.475 7.18929 15.375 7.43929C16.0125 8.13929 16.4 9.02679 16.4 10.1268C16.4 13.9643 14.0625 14.8143 11.8375 15.0643C12.2 15.3768 12.5125 15.9768 12.5125 16.9143C12.5125 18.2518 12.5 19.3268 12.5 19.6643C12.5 19.9268 12.6875 20.2393 13.1875 20.1393C17.1375 18.8143 20 15.0643 20 10.6518C20 5.12679 15.525 .651794 10 .651794Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\")}.snowflake-button-container.is-quickstart::before{background-image:url(\"data:image/svg+xml,%3Csvg width='15' height='21' viewBox='0 0 15 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8489 2.79368H11.6439V2.38493C11.6439 1.71368 11.1451 .967427 10.4251 .967427H8.94762C8.80887 .359927 8.37387 .299927 7.89762 .299927H7.23012C6.85512 .299927 6.26637 .299927 6.08637 .967427H4.68387C3.94887 .967427 3.35637 1.74368 3.35637 2.38493V2.79368H1.15137C.738867 2.79368 .401367 3.13118 .401367 3.54368V20.2537C.401367 20.6662 .738867 21.0037 1.15137 21.0037H13.8489C14.2614 21.0037 14.5989 20.6662 14.5989 20.2537V3.54368C14.5989 3.13118 14.2614 2.79368 13.8489 2.79368ZM4.29387 2.38493C4.29387 2.18243 4.54137 1.90493 4.68387 1.90493H6.50262C6.76137 1.90493 6.97137 1.69493 6.97137 1.43618C6.97137 1.33868 6.97887 1.27868 6.98637 1.24118C7.05012 1.23368 7.15512 1.23368 7.23387 1.23368H7.90137C7.95012 1.23368 8.00637 1.23368 8.05137 1.23368C8.05512 1.27868 8.05887 1.34243 8.05887 1.43243C8.05887 1.69118 8.26887 1.90118 8.52762 1.90118H10.4289C10.5301 1.90118 10.7101 2.14493 10.7101 2.38118V2.78993H4.29762V2.38118L4.29387 2.38493ZM13.0989 19.4999H1.90137V4.29368H13.0989V19.5037V19.4999Z' fill='%23249EDC'/%3E%3Cpath d='M3.82512 16.0424H11.1751C11.4339 16.0424 11.6439 15.8324 11.6439 15.5736V6.88486C11.6439 6.62611 11.4339 6.41611 11.1751 6.41611H3.82512C3.56637 6.41611 3.35637 6.62611 3.35637 6.88486V15.5736C3.35637 15.8324 3.56637 16.0424 3.82512 16.0424ZM4.29387 15.1049V13.3686H10.7064V15.1049H4.29387ZM10.7101 7.35361V12.4311H4.29762V7.35361H10.7101Z' fill='%23249EDC'/%3E%3Cpath d='M6.16512 9.35989H8.83887C9.09762 9.35989 9.30762 9.14989 9.30762 8.89114C9.30762 8.63239 9.09762 8.42239 8.83887 8.42239H6.16512C5.90637 8.42239 5.69637 8.63239 5.69637 8.89114C5.69637 9.14989 5.90637 9.35989 6.16512 9.35989Z' fill='%23249EDC'/%3E%3Cpath d='M6.16512 11.3624H8.83887C9.09762 11.3624 9.30762 11.1524 9.30762 10.8937C9.30762 10.6349 9.09762 10.4249 8.83887 10.4249H6.16512C5.90637 10.4249 5.69637 10.6349 5.69637 10.8937C5.69637 11.1524 5.90637 11.3624 6.16512 11.3624Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\")}.snowflake-button-container.is-download::before{background-image:url(\"data:image/svg+xml,%3Csvg width='16' height='18' viewBox='0 0 16 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.2017 17.1637H.798265C.364425 17.1637 0 16.7993 0 16.3655V12.3568C0 11.923 .364425 11.5585 .798265 11.5585C1.2321 11.5585 1.59653 11.923 1.59653 12.3568V15.5498H14.4035V12.3568C14.4035 11.923 14.7679 11.5585 15.2017 11.5585C15.6356 11.5585 16 11.923 16 12.3568V16.3655C16 16.7993 15.6529 17.1637 15.2017 17.1637Z' fill='%23249EDC'/%3E%3Cpath d='M7.94793 12.9642C7.84381 12.9642 7.73969 12.9468 7.63557 12.8947C7.34056 12.7733 7.14967 12.4783 7.14967 12.1485L7.18437 .938127C7.18437 .504287 7.5488 .139862 7.98264 .139862C8.41648 .139862 8.7809 .504287 8.7809 .938127L8.7462 10.257L12.8416 6.33509C13.154 6.02273 13.6746 6.04008 13.9696 6.35244C14.282 6.66481 14.2646 7.18542 13.9523 7.48043L8.50325 12.7386C8.36442 12.8774 8.15617 12.9642 7.94793 12.9642Z' fill='%23249EDC'/%3E%3Cpath d='M7.94793 12.9642C7.73969 12.9642 7.54881 12.8947 7.39262 12.7386L2.03037 7.53249C1.718 7.22012 1.70065 6.71687 2.01301 6.40451C2.32538 6.09214 2.82863 6.07479 3.141 6.38715L8.50325 11.5932C8.81562 11.9056 8.83297 12.4088 8.52061 12.7212C8.36442 12.8774 8.15617 12.9642 7.94793 12.9642Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\")}.snowflake-button-container.is-expand::before{background-image:url(\"data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.64375 10.9125C6.9375 11.2062 6.93125 11.6812 6.64375 11.9687L2.57502 16H3.79375C4.20625 16 4.54376 16.3375 4.54376 16.75C4.54376 17.1625 4.20625 17.5 3.79375 17.5H.756264C.556264 17.5 .36876 17.4187 .22501 17.2812C.22501 17.2812 .206248 17.25 .193748 17.2375C.143748 17.1812 .100004 17.1125 .0625038 17.0437C.0375038 16.9687 .0187492 16.8937 .0187492 16.8187C.0187492 16.8 .0062561 16.7813 .0062561 16.7625V13.725C.0187561 13.3125 .356257 12.9875 .768757 12.9937C1.16876 13 1.48752 13.325 1.50002 13.725V14.9688L5.5875 10.9187C5.88125 10.6312 6.35 10.6312 6.64375 10.9187V10.9125ZM17.5063 .743732C17.5063 .543732 17.425 .356235 17.2875 .218735C17.2875 .218735 17.2562 .199998 17.2437 .193748C17.1875 .137498 17.1188 .0937347 17.0438 .0624847C16.9688 .0374847 16.8938 .0187492 16.8188 .0187492C16.8 .0187492 16.7813 .00623703 16.7625 .00623703H13.725C13.3125 .00623703 12.975 .343745 12.975 .756245C12.975 1.16874 13.3125 1.50623 13.725 1.50623H14.9688L11.1312 5.37498C10.8437 5.67498 10.8563 6.14999 11.1563 6.43124C11.45 6.71249 11.9063 6.70624 12.1938 6.43124L16.0125 2.575V3.79375C16.0125 4.20625 16.35 4.54372 16.7625 4.54372C17.175 4.54372 17.5125 4.20625 17.5125 3.79375V.756245L17.5063 .743732ZM16.7562 12.9688C16.3437 12.9688 16.0063 13.3063 16.0063 13.7188V14.8937L12.1938 10.925C11.9063 10.625 11.4375 10.6188 11.1375 10.9063C10.8375 11.1938 10.8313 11.6625 11.1188 11.9625L15 16.0062H13.7188C13.3063 16.0062 12.9688 16.3437 12.9688 16.7562C12.9688 17.1687 13.3063 17.5063 13.7188 17.5063H16.7562C16.85 17.5063 16.95 17.4875 17.0375 17.45C17.0875 17.425 17.1313 17.3937 17.175 17.3625C17.2063 17.3437 17.2438 17.325 17.275 17.3C17.3313 17.2375 17.375 17.1687 17.4125 17.1C17.4188 17.0875 17.4375 17.075 17.4438 17.0562C17.45 17.025 17.4563 16.9938 17.4625 16.9625C17.4813 16.9 17.5 16.8375 17.5 16.7687V13.725C17.5 13.3125 17.1687 12.975 16.7562 12.975V12.9688ZM.750008 4.53125C1.16251 4.53125 1.50002 4.19374 1.50002 3.78124V2.5L5.59376 6.43124C5.89376 6.71874 6.36251 6.70626 6.65001 6.41251C6.93751 6.11876 6.92501 5.64375 6.63126 5.35625L2.61251 1.49998H3.7875C4.2 1.49998 4.53751 1.16249 4.53751 .749989C4.53751 .337489 4.2 0 3.7875 0H.743752C.668752 0 .600004 .0187355 .531254 .0437355C.506254 .0499855 .481263 .0437477 .462513 .0562477C.443763 .0687477 .425015 .0812462 .406265 .0937462C.337515 .124996 .275004 .168741 .218754 .224991H.212498C.212498 .224991 .175 .28125 .15625 .3125C.11875 .3625 .0812477 .4125 .0562477 .46875C.0374977 .525 .0249992 .587499 .0187492 .643749C.0124992 .674999 0 .712482 0 .743732V3.78124C0 4.19374 .337508 4.53125 .750008 4.53125Z' fill='white'/%3E%3C/svg%3E%0A\")}@keyframes slow-scroll{100%{transform:translateY(-50%)}}.sc-hero{overflow:hidden;background-color:#212d35;background-repeat:repeat-y;background-image:url(\"data:image/svg+xml,%3Csvg width='389' height='17' viewBox='0 0 389 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M.638672 7.80824L.638672 9.2566C.638672 9.52364 .85538 9.74024 1.12262 9.74024H2.57204C2.83928 9.74024 3.05598 9.52364 3.05598 9.2566V7.80824C3.05598 7.54119 2.83928 7.32472 2.57204 7.32472L1.12262 7.32472C.85538 7.32472 .638672 7.54119 .638672 7.80824Z' fill='url(%23paint0_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.9639 7.80824V9.2566C10.9639 9.52364 11.1806 9.74024 11.4478 9.74024L12.8972 9.74024C13.1645 9.74024 13.3812 9.52364 13.3812 9.2566V7.80824C13.3812 7.54119 13.1645 7.32471 12.8972 7.32471L11.4478 7.32471C11.1806 7.32471 10.9639 7.54119 10.9639 7.80824Z' fill='url(%23paint1_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M21.2891 7.80823V9.2566C21.2891 9.52364 21.5058 9.74024 21.773 9.74024L23.2224 9.74024C23.4897 9.74024 23.7064 9.52364 23.7064 9.2566V7.80823C23.7064 7.54119 23.4897 7.32471 23.2224 7.32471L21.773 7.32471C21.5058 7.32471 21.2891 7.54119 21.2891 7.80823Z' fill='url(%23paint2_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M31.6143 7.80823V9.2566C31.6143 9.52364 31.831 9.74024 32.0982 9.74024H33.5476C33.8149 9.74024 34.0316 9.52364 34.0316 9.2566V7.80823C34.0316 7.54119 33.8149 7.32471 33.5476 7.32471L32.0982 7.32471C31.831 7.32471 31.6143 7.54119 31.6143 7.80823Z' fill='url(%23paint3_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M41.9395 7.80823V9.2566C41.9395 9.52364 42.1562 9.74024 42.4234 9.74024H43.8728C44.1401 9.74024 44.3568 9.52364 44.3568 9.2566V7.80823C44.3568 7.54119 44.1401 7.32471 43.8728 7.32471L42.4234 7.32471C42.1562 7.32471 41.9395 7.54119 41.9395 7.80823Z' fill='url(%23paint4_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M52.5076 7.80823V9.2566C52.5076 9.52364 52.7243 9.74024 52.9916 9.74024H54.441C54.7082 9.74024 54.9249 9.52364 54.9249 9.2566V7.80823C54.9249 7.54119 54.7082 7.32471 54.441 7.32471L52.9916 7.32471C52.7243 7.32471 52.5076 7.54119 52.5076 7.80823Z' fill='url(%23paint5_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M62.8331 7.80823V9.2566C62.8331 9.52364 63.0493 9.74024 63.3165 9.74024H64.7664C65.0332 9.74024 65.2504 9.52364 65.2504 9.2566V7.80823C65.2504 7.54119 65.0332 7.32471 64.7664 7.32471L63.3165 7.32471C63.0493 7.32471 62.8331 7.54119 62.8331 7.80823Z' fill='url(%23paint6_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M73.1583 7.80823V9.2566C73.1583 9.52364 73.3745 9.74024 73.6417 9.74024H75.0916C75.3584 9.74024 75.5756 9.52364 75.5756 9.2566V7.80823C75.5756 7.54119 75.3584 7.32471 75.0916 7.32471L73.6417 7.32471C73.3745 7.32471 73.1583 7.54119 73.1583 7.80823Z' fill='url(%23paint7_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M83.4835 7.80823V9.2566C83.4835 9.52364 83.6997 9.74024 83.9669 9.74024H85.4168C85.6836 9.74024 85.9008 9.52364 85.9008 9.2566V7.80823C85.9008 7.54119 85.6836 7.32471 85.4168 7.32471L83.9669 7.32471C83.6997 7.32471 83.4835 7.54119 83.4835 7.80823Z' fill='url(%23paint8_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M93.8087 7.80823V9.2566C93.8087 9.52364 94.0249 9.74024 94.2921 9.74024H95.742C96.0088 9.74024 96.226 9.52364 96.226 9.2566V7.80823C96.226 7.54119 96.0088 7.32471 95.742 7.32471L94.2921 7.32471C94.0249 7.32471 93.8087 7.54119 93.8087 7.80823Z' fill='url(%23paint9_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M104.134 7.80823V9.2566C104.134 9.52364 104.35 9.74024 104.617 9.74024H106.067C106.334 9.74024 106.551 9.52364 106.551 9.2566V7.80823C106.551 7.54119 106.334 7.32471 106.067 7.32471L104.617 7.32471C104.35 7.32471 104.134 7.54119 104.134 7.80823Z' fill='url(%23paint10_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M114.702 7.80823V9.2566C114.702 9.52364 114.918 9.74024 115.185 9.74024L116.635 9.74024C116.902 9.74024 117.119 9.52364 117.119 9.25659V7.80823C117.119 7.54119 116.902 7.32471 116.635 7.32471L115.185 7.32471C114.918 7.32471 114.702 7.54119 114.702 7.80823Z' fill='url(%23paint11_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M125.027 7.80823V9.25659C125.027 9.52364 125.243 9.74024 125.511 9.74024L126.961 9.74024C127.227 9.74024 127.445 9.52364 127.445 9.25659V7.80823C127.445 7.54119 127.227 7.32471 126.961 7.32471L125.511 7.32471C125.243 7.32471 125.027 7.54119 125.027 7.80823Z' fill='url(%23paint12_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M135.352 7.80823V9.25659C135.352 9.52364 135.569 9.74024 135.836 9.74024H137.286C137.553 9.74024 137.77 9.52364 137.77 9.25659V7.80823C137.77 7.54119 137.553 7.32471 137.286 7.32471L135.836 7.32471C135.569 7.32471 135.352 7.54119 135.352 7.80823Z' fill='url(%23paint13_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M145.678 7.80823V9.25659C145.678 9.52364 145.894 9.74024 146.161 9.74024H147.611C147.878 9.74024 148.095 9.52364 148.095 9.25659V7.80823C148.095 7.54119 147.878 7.32471 147.611 7.32471L146.161 7.32471C145.894 7.32471 145.678 7.54119 145.678 7.80823Z' fill='url(%23paint14_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M156.003 7.80823V9.25659C156.003 9.52364 156.219 9.74024 156.486 9.74024H157.936C158.203 9.74024 158.42 9.52364 158.42 9.25659V7.80823C158.42 7.54119 158.203 7.32471 157.936 7.32471L156.486 7.32471C156.219 7.32471 156.003 7.54119 156.003 7.80823Z' fill='url(%23paint15_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M166.328 7.80823V9.25659C166.328 9.52363 166.544 9.74024 166.811 9.74024H168.261C168.528 9.74024 168.745 9.52363 168.745 9.25659V7.80823C168.745 7.54119 168.528 7.32471 168.261 7.32471L166.811 7.32471C166.544 7.32471 166.328 7.54119 166.328 7.80823Z' fill='url(%23paint16_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M176.896 7.80823V9.25659C176.896 9.52363 177.112 9.74023 177.38 9.74023H178.83C179.096 9.74023 179.313 9.52363 179.313 9.25659V7.80823C179.313 7.54119 179.096 7.32471 178.83 7.32471L177.38 7.32471C177.112 7.32471 176.896 7.54119 176.896 7.80823Z' fill='url(%23paint17_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M187.221 7.80823V9.25659C187.221 9.52363 187.438 9.74023 187.705 9.74023H189.155C189.421 9.74023 189.639 9.52363 189.639 9.25659V7.80823C189.639 7.54119 189.421 7.32471 189.155 7.32471L187.705 7.32471C187.438 7.32471 187.221 7.54119 187.221 7.80823Z' fill='url(%23paint18_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M199.639 7.80824V9.2566C199.639 9.52364 199.855 9.74024 200.123 9.74024H201.572C201.839 9.74024 202.056 9.52364 202.056 9.2566V7.80824C202.056 7.54119 201.839 7.32472 201.572 7.32472L200.123 7.32472C199.855 7.32472 199.639 7.54119 199.639 7.80824Z' fill='url(%23paint19_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M209.964 7.80824V9.2566C209.964 9.52364 210.181 9.74024 210.448 9.74024L211.897 9.74024C212.164 9.74024 212.381 9.52364 212.381 9.2566V7.80824C212.381 7.54119 212.164 7.32471 211.897 7.32471L210.448 7.32471C210.181 7.32471 209.964 7.54119 209.964 7.80824Z' fill='url(%23paint20_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M220.289 7.80823V9.2566C220.289 9.52364 220.506 9.74024 220.773 9.74024L222.222 9.74024C222.49 9.74024 222.706 9.52364 222.706 9.2566V7.80823C222.706 7.54119 222.49 7.32471 222.222 7.32471L220.773 7.32471C220.506 7.32471 220.289 7.54119 220.289 7.80823Z' fill='url(%23paint21_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M230.614 7.80823V9.2566C230.614 9.52364 230.831 9.74024 231.098 9.74024H232.548C232.815 9.74024 233.032 9.52364 233.032 9.2566V7.80823C233.032 7.54119 232.815 7.32471 232.548 7.32471L231.098 7.32471C230.831 7.32471 230.614 7.54119 230.614 7.80823Z' fill='url(%23paint22_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M240.939 7.80823V9.2566C240.939 9.52364 241.156 9.74024 241.423 9.74024H242.873C243.14 9.74024 243.357 9.52364 243.357 9.2566V7.80823C243.357 7.54119 243.14 7.32471 242.873 7.32471L241.423 7.32471C241.156 7.32471 240.939 7.54119 240.939 7.80823Z' fill='url(%23paint23_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M251.508 7.80823V9.2566C251.508 9.52364 251.724 9.74024 251.992 9.74024H253.441C253.708 9.74024 253.925 9.52364 253.925 9.2566V7.80823C253.925 7.54119 253.708 7.32471 253.441 7.32471L251.992 7.32471C251.724 7.32471 251.508 7.54119 251.508 7.80823Z' fill='url(%23paint24_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M261.833 7.80823V9.2566C261.833 9.52364 262.049 9.74024 262.317 9.74024H263.766C264.033 9.74024 264.25 9.52364 264.25 9.2566V7.80823C264.25 7.54119 264.033 7.32471 263.766 7.32471L262.317 7.32471C262.049 7.32471 261.833 7.54119 261.833 7.80823Z' fill='url(%23paint25_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M272.158 7.80823V9.2566C272.158 9.52364 272.374 9.74024 272.642 9.74024H274.092C274.358 9.74024 274.576 9.52364 274.576 9.2566L274.576 7.80823C274.576 7.54119 274.358 7.32471 274.092 7.32471L272.642 7.32471C272.374 7.32471 272.158 7.54119 272.158 7.80823Z' fill='url(%23paint26_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M282.483 7.80823V9.2566C282.483 9.52364 282.7 9.74024 282.967 9.74024H284.417C284.684 9.74024 284.901 9.52364 284.901 9.2566V7.80823C284.901 7.54119 284.684 7.32471 284.417 7.32471L282.967 7.32471C282.7 7.32471 282.483 7.54119 282.483 7.80823Z' fill='url(%23paint27_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M292.809 7.80823L292.809 9.2566C292.809 9.52364 293.025 9.74024 293.292 9.74024H294.742C295.009 9.74024 295.226 9.52364 295.226 9.2566V7.80823C295.226 7.54119 295.009 7.32471 294.742 7.32471L293.292 7.32471C293.025 7.32471 292.809 7.54119 292.809 7.80823Z' fill='url(%23paint28_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M303.134 7.80823L303.134 9.2566C303.134 9.52364 303.35 9.74024 303.617 9.74024H305.067C305.334 9.74024 305.551 9.52364 305.551 9.2566V7.80823C305.551 7.54119 305.334 7.32471 305.067 7.32471L303.617 7.32471C303.35 7.32471 303.134 7.54119 303.134 7.80823Z' fill='url(%23paint29_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M313.702 7.80823L313.702 9.2566C313.702 9.52364 313.918 9.74024 314.185 9.74024L315.635 9.74024C315.902 9.74024 316.119 9.52364 316.119 9.25659V7.80823C316.119 7.54119 315.902 7.32471 315.635 7.32471L314.185 7.32471C313.918 7.32471 313.702 7.54119 313.702 7.80823Z' fill='url(%23paint30_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M324.027 7.80823V9.25659C324.027 9.52364 324.243 9.74024 324.511 9.74024L325.961 9.74024C326.227 9.74024 326.445 9.52364 326.445 9.25659V7.80823C326.445 7.54119 326.227 7.32471 325.961 7.32471L324.511 7.32471C324.243 7.32471 324.027 7.54119 324.027 7.80823Z' fill='url(%23paint31_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M334.352 7.80823V9.25659C334.352 9.52364 334.569 9.74024 334.836 9.74024H336.286C336.553 9.74024 336.77 9.52364 336.77 9.25659L336.77 7.80823C336.77 7.54119 336.553 7.32471 336.286 7.32471L334.836 7.32471C334.569 7.32471 334.352 7.54119 334.352 7.80823Z' fill='url(%23paint32_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M344.678 7.80823V9.25659C344.678 9.52364 344.894 9.74024 345.161 9.74024H346.611C346.878 9.74024 347.095 9.52364 347.095 9.25659L347.095 7.80823C347.095 7.54119 346.878 7.32471 346.611 7.32471L345.161 7.32471C344.894 7.32471 344.678 7.54119 344.678 7.80823Z' fill='url(%23paint33_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M355.003 7.80823V9.25659C355.003 9.52364 355.219 9.74024 355.486 9.74024H356.936C357.203 9.74024 357.42 9.52364 357.42 9.25659L357.42 7.80823C357.42 7.54119 357.203 7.32471 356.936 7.32471L355.486 7.32471C355.219 7.32471 355.003 7.54119 355.003 7.80823Z' fill='url(%23paint34_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M365.328 7.80823V9.25659C365.328 9.52363 365.544 9.74024 365.811 9.74024H367.261C367.528 9.74024 367.745 9.52363 367.745 9.25659V7.80823C367.745 7.54119 367.528 7.32471 367.261 7.32471L365.811 7.32471C365.544 7.32471 365.328 7.54119 365.328 7.80823Z' fill='url(%23paint35_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M375.896 7.80823V9.25659C375.896 9.52363 376.112 9.74023 376.38 9.74023H377.83C378.096 9.74023 378.313 9.52363 378.313 9.25659V7.80823C378.313 7.54119 378.096 7.32471 377.829 7.32471L376.38 7.32471C376.112 7.32471 375.896 7.54119 375.896 7.80823Z' fill='url(%23paint36_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M386.221 7.80823V9.25659C386.221 9.52363 386.438 9.74023 386.705 9.74023H388.155C388.421 9.74023 388.639 9.52363 388.639 9.25659V7.80823C388.639 7.54119 388.421 7.32471 388.155 7.32471L386.705 7.32471C386.438 7.32471 386.221 7.54119 386.221 7.80823Z' fill='url(%23paint37_linear_8295_70635)'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint1_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint2_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint3_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint4_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint5_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint6_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint7_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint8_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint9_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint10_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint11_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint12_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint13_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint14_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint15_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint16_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint17_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint18_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint19_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint20_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint21_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint22_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint23_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint24_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint25_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint26_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint27_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint28_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint29_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint30_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint31_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint32_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint33_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint34_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint35_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint36_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint37_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E%0A\")}.sc-hero__inner\u003E.snowflake-flexible-column-container-items\u003Ediv:first-child{position:relative;z-index:3}.sc-hero__inner\u003E.snowflake-flexible-column-container-items\u003Ediv:last-child{position:absolute;height:100%;width:100%;top:0;left:-24px}.sc-hero__inner\u003E.snowflake-flexible-column-container-items\u003Ediv:last-child::before{content:\"\";display:block;z-index:1;position:absolute;top:-64px;left:0;width:150%;height:calc(100% + 160px);background-color:rgb(32 44 53 / .9)}.sc-body__content .heading-3-v2,.sc-hero__headline .heading-1-v2{text-transform:none}.sc-body__content span.snowflake-image-caption{display:block!important;font-style:italic}.sc-body__content .snowflake-text p+ul{margin-top:24px!important;padding-left:16px!important}.white-blue-text-color .snowflake-title-v2.solution-center-hero__certification .snowflake-typographyv2\u003Espan.snowflake-title-v2-line{color:#e9eaeb!important;font-size:16px}.white-blue-text-color .snowflake-title-v2.solution-center-hero__certification.is-large .snowflake-typographyv2\u003Espan.snowflake-title-v2-line{color:#fff!important;font-size:18px}.solution-center-hero__certification\u003E.snowflake-title-v2-line\u003Espan:first-child{display:flex;justify-content:flex-start;align-items:center;gap:8px}.solution-center-hero__certification\u003E.snowflake-title-v2-line\u003Espan:first-child::before{content:\"\";display:inline-block;width:16px;height:16px;background-image:url(\"data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 0C3.58146 0 0 3.58146 0 8C0 12.4185 3.58146 16 8 16C12.4185 16 16 12.4185 16 8C16 3.58146 12.4185 0 8 0ZM12.7184 5.91984L7.33471 11.3026C7.31293 11.3244 7.31293 11.3454 7.29198 11.3454L7.20653 11.4308C6.94933 11.688 6.54132 11.7525 6.21962 11.6235C6.11238 11.5808 6.00514 11.5163 5.9197 11.4308L5.83425 11.3454C5.83425 11.3454 5.83425 11.3236 5.81246 11.3236L3.28149 8.79347C2.93799 8.44997 2.93799 7.87107 3.28149 7.50664L3.36694 7.42119C3.71044 7.07769 4.28934 7.07769 4.65377 7.42119L6.58401 9.35143L11.3877 4.5477C11.7312 4.2042 12.3101 4.2042 12.6746 4.5477L12.76 4.63315C13.0826 4.99758 13.0828 5.55541 12.7184 5.91984Z' fill='%230E8A16'/%3E%3C/svg%3E%0A\");background-size:contain;background-repeat:no-repeat;background-color:#fff;border-radius:100%}.sc-hero__byline{padding-top:8px}.sc-hero__byline p{color:#e2e2e2;margin-top:0!important}.sc-hero pre[class*=language-]{overflow:visible}.snowflake-code-snippet,.snowflake-code-snippet code,.snowflake-code-snippet pre{font-size:16px}.sc-hero__code-snippet:not(pre)\u003Ecode[class*=language-],.sc-hero__code-snippet pre[class*=language-]{background:0 0}.sc-hero__code-snippet{opacity:.8;background-color:transparent!important;position:absolute;top:0;right:0;width:100%;animation:240s linear 1s forwards slow-scroll}.sc-hero__button-container .snowflake-flexible-column-container-items{padding:0 0 24px;margin-top:-8px;margin-left:24px}.sc-sidebar__partner-logo{width:100%;max-width:140px;margin-top:8px}.sc-sidebar__partner-logo .cmp-image__image{border-radius:0}.sc-tag-cluster.snowflake-text ul{list-style-type:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:0}.sc-tag-cluster.snowflake-text li{color:#373f41;border-radius:4px;display:inline-block;padding:6px;text-transform:uppercase;letter-spacing:1px;font-size:12px!important;line-height:12px!important;margin:0!important;background-color:#f3f3f3}.sc-body .share-icon svg{height:24px;cursor:pointer}.sc-body .share-icon svg:hover path{fill:var(--ui-02)}.sc-overview__webinar-promo-banner{align-items:center;border:1px solid #ccc;padding:var(--spacing-02)}.sc-overview__webinar-promo-banner .snowflake-content-chip-image{max-width:32px;margin-right:var(--spacing-02);line-height:0}.sc-overview__webinar-promo-banner .snowflake-content-chip-image__image,.summit-speaker-card .snowflake-card-v2-advanced-image__image{aspect-ratio:1}.sc-overview__webinar-promo-banner .snowflake-content-chip-content .heading-5-v2{font-size:14px;font-family:Lato,sans-serif}.sc-overview__webinar-promo-banner .snowflake-content-chip-content .snowflake-title-v2-line:not(:first-child){font-weight:400}.sc-overview__webinar-promo-banner .snowflake-content-chip-button .snowflake-button-container{font-size:14px!important}.diagram-group__button{position:absolute;bottom:24px;right:24px;background-color:#212c35!important}.section--mountains-bottom,.summit-hp-hero{position:relative}.sc-cert-banner{background-color:#212d35;border-radius:8px;padding:24px;overflow:hidden}.sc-cert-banner\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row;align-items:center}:root{--text-secondary:#706f6f;--summit-bg-ltblue:#eaf8fd;--summit-bg-blue:#249edc;--summit-border:#d2d1d4;--summit-border-radius:8px;--summit-card-padding:32px;--summit-card-padding-sm:28px}.section--mountains-bottom::after,.section--mountains-bottom::before{content:\"\";display:block;position:absolute;bottom:-1px;max-width:400px;background-size:100% auto;height:100%;width:30%;line-height:0;background-repeat:no-repeat}.button-group\u003E.container\u003E.cmp-container\u003E.aem-container{justify-content:center;align-items:center}.button-group\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:auto!important;margin:0 8px!important}.button-group .snowflake-button-container{font-family:Texta,sans-serif}.section--summit-bg-ltblue{background-color:var(--summit-bg-ltblue)}.section--summit-bg-blue,.summit-hero-secondary{background-color:var(--summit-bg-blue)}.section--mountains-bottom::before{left:0;background-image:url(\"data:image/svg+xml,%3Csvg width='402' height='309' viewBox='0 0 402 309' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M401.523 308.761H0V0L181.63 182.431L228.479 135.531L401.523 308.761Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\");background-position:bottom left}.section--mountains-bottom::after{right:0;background-image:url(\"data:image/svg+xml,%3Csvg width='402' height='309' viewBox='0 0 402 309' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 308.761H401.523V0L219.893 182.431L173.044 135.531L0 308.761Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\");background-position:bottom right}.summit-hp-hero{overflow:hidden}.summit-hero__bg-video{position:absolute;top:50%;left:50%;width:120%;height:100%;opacity:.3;transform:translate(-50%,-50%)}.summit-hero__bg-svg,.summit-prefooter__bg-image,.summit-secondary-hero__bg-image{position:absolute;bottom:0;left:0;width:100%}.summit-hp-promo-banner__headline .heading-4-v2{font-weight:900}.summit-hero-secondary .hero-lottie__left{position:absolute;bottom:0;left:0;width:30%;line-height:0}.summit-timeline__card::after,.summit-timeline__card::before{bottom:0;left:50%;position:absolute;display:block;background-color:var(--ui-01);content:\"\"}.summit-hero-secondary .snowflake-text p{font-size:24px!important;line-height:32px!important;max-width:720px;margin:0 auto}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;justify-content:center}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:auto!important;max-width:25%}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:not(:last-child){border-right:1px solid #fff}.summit-timeline__card{border:1px solid var(--summit-border);border-radius:var(--summit-border-radius);padding:var(--summit-card-padding);position:relative;background-color:#fff}.summit-timeline__card::before{width:20px;height:20px;border-radius:100%;transform:translate(-50%,50%)}.summit-timeline__card::after{width:3px;height:50px;transform:translate(-50%,100%)}.summit-timeline-card__icon{width:48px;height:48px}.summit-timeline-card__headline .heading-3-v2{font-size:32px}.faq-group{border:1px solid var(--ui-12);border-radius:4px;background-color:#fff}.faq-group__question{padding:24px}.faq-group__question:hover{color:var(--ui-01);cursor:pointer}.faq-group__question .heading-4-v2,.faq-group__question .heading-5-v2{position:relative;padding-right:64px}.faq-group__question .heading-4-v2::after,.faq-group__question .heading-5-v2::after{content:\"\";display:block;width:32px;height:32px;background-image:url(\"data:image/svg+xml,%3Csvg width='29' height='16' viewBox='0 0 29 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M14.16 14.6807C14.2537 14.7957 14.3719 14.8884 14.506 14.952C14.64 15.0157 14.7866 15.0487 14.935 15.0487C15.0834 15.0487 15.2299 15.0157 15.3639 14.952C15.498 14.8884 15.6162 14.7957 15.71 14.6807V14.6807L28.51 2.00068C29.07 1.43068 29.07 .92068 28.51 .44068C27.95 -.0393204 27.43 -.11932 26.96 .44068L14.94 12.0007L2.99996 .45068C2.90725 .322624 2.7855 .218374 2.6447 .146483C2.50389 .0745926 2.34805 .0371094 2.18996 .0371094C2.03187 .0371094 1.87603 .0745926 1.73522 .146483C1.59442 .218374 1.47267 .322624 1.37996 .45068C.819961 .93068 .819961 1.45068 1.37996 2.01068L14.16 14.6807Z' fill='black'/%3E%3C/svg%3E%0A\");background-size:80% auto;background-repeat:no-repeat;background-position:center;position:absolute;top:-2px;right:0;transition:.3s 150ms}.faq-group__question .heading-5-v2::after{top:-4px}.faq-group__answer{max-height:0;overflow:hidden;width:95%;padding:0 24px;transition:.5s}.faq-group__answer\u003Espan{display:block;padding-bottom:24px}.is-open .faq-group__answer{max-height:600px;transition:1s}.is-open .faq-group__question .heading-4-v2::after,.is-open .faq-group__question .heading-5-v2::after{transform:rotate(180deg);transition:.3s}.summit-agenda{box-shadow:2px 4px 10px 0 rgb(156 156 156 / .52);border-radius:8px;background-color:#fff;max-width:980px;margin-left:auto;margin-right:auto;padding:40px;width:90%}.agenda-item{border-radius:8px;background-color:#d4f0fa;padding:16px;border-left:4px solid var(--ui-01);position:relative}.summit-pricing-block__tile.is-past,.summit-pricing-block__tile.is-upcoming{pointer-events:none;border-color:#d2d1d4}p.agenda-item__time{width:25%;font-family:Texta!important;font-size:32px!important;font-weight:900!important;text-transform:uppercase!important;max-width:140px}@media screen and (max-width:991px){#partnerResources .section--resource-hub .snowflake-button-link .snowflake-button-container{font-size:14px!important;line-height:20px!important;margin-top:4px}#industryPartnerSlider\u003E.snowflake-flexible-column-container-items{display:flex;flex-direction:column}#industryPartnerSlider\u003E.snowflake-flexible-column-container-items\u003Ediv{width:100%}.sc-cert-banner__left{text-align:center}.sc-cert-banner__left .solution-center-hero__certification .snowflake-title-v2-line{justify-content:center}.summit-hero__bg-video{width:200%}.summit-leadership-grid .snowflake-flexible-column-container-items{grid-template-columns:repeat(2,1fr)}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:50%!important;max-width:50%!important}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:not(:last-child){border-right:none!important}.summit-agenda{padding:24px}p.agenda-item__time{font-size:24px!important;width:auto;white-space:nowrap;padding-right:24px}}.agenda-item\u003Espan{display:flex;align-items:center}.summit-add-on-block,.summit-pricing-block{border:1px solid #d2d1d4;border-radius:8px;overflow:hidden;box-shadow:2px 4px 10px 0 rgb(156 156 156 / .52);background-color:#fff}.summit-add-on-block__content,.summit-pricing-block__content{padding:0 20px 20px}.summit-pricing-block__tile{padding:24px 20px;border-radius:4px;background:#fff;border:1px solid var(--ui-01);position:relative;transition:background-color .3s}.summit-pricing-block__tile:hover{background-color:var(--ui-01);transition:background-color .3s}.summit-pricing-block__tile.is-past{background-color:#d4f0fa}.summit-pricing-block__tile:hover .black-blue-text-color .snowflake-title-v2-line{color:#fff!important;transition:color .3s}.partner-card__logo-grid\u003E.container\u003E.cmp-container\u003E.aem-container::after,.partner-card__logo-grid\u003E.container\u003E.cmp-container\u003E.aem-container::before,.summit-add-on-block__content\u003E.container\u003E.cmp-container\u003E.aem-container::after,.summit-add-on-block__content\u003E.container\u003E.cmp-container\u003E.aem-container::before,.summit-pricing-block__tile.is-past .snowflake-content-chip-button,.summit-pricing-block__tile.is-upcoming .snowflake-content-chip-button,.summit-speaker-card .snowflake-card-v2-advanced-tag-indicator{display:none}.summit-pricing-block__tile.is-past .black-blue-text-color .snowflake-title-v2-line{color:#7cc7eb!important}.summit-pricing-block__tile.is-upcoming .black-blue-text-color .snowflake-title-v2-line{color:#8c8c8c!important}.summit-pricing-block__aside{background-color:#d4f0fa;border:1px solid #d2d1d4;border-radius:8px;padding:24px;width:100%}.summit-pricing-block__aside li::marker{color:var(--ui-01)}.summit-pricing-block__aside-headline .heading-5-v2{font-weight:900;margin-bottom:12px}.summit-pricing-block__header{background:#000;padding:24px 40px}.summit-pricing-block__header .heading-4-v2{font-weight:900;letter-spacing:.5px}.bwwidth100,.snowflake-mega-nav-dropdown-footer-content,.summit-pricing-block__tile .black-blue-text-color{width:100%}.summit-pricing-block__tile .heading-5-v2{position:static}.summit-pricing-block__tile .heading-5-v2 span.snowflake-title-v2-line:first-child{text-transform:uppercase;font-weight:900!important;letter-spacing:.25px;font-size:24px!important}.summit-pricing-block__tile .heading-5-v2 span.snowflake-title-v2-line:nth-child(2){margin-top:8px;font-family:Lato,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:16px}.summit-pricing-block__tile .heading-5-v2 span.snowflake-title-v2-line:last-child{font-weight:900!important;font-size:40px!important}.snowflake-mega-nav-nav-item\u003Ea:hover .snowflake-mega-nav-nav-item-title-wrapper\u003E.snowflake-mega-nav-nav-item-title,.summit-pricing-block__tile:not(.is-upcoming):not(.is-past) .heading-5-v2 span.snowflake-title-v2-line:last-child{color:var(--ui-01)!important}.summit-pricing-block__tile:hover:not(.is-upcoming):not(.is-past) .heading-5-v2 span.snowflake-title-v2-line:last-child{color:#fff!important}.summit-pricing-block__tile.is-past .heading-5-v2 span.snowflake-title-v2-line:last-child{text-decoration:line-through}.summit-pricing-block__tile .snowflake-content-chip-button{margin-top:0;white-space:nowrap;display:none}.snowflake-card-v2-advanced.no-link{pointer-events:none!important}.snowpro-card{border:1px solid var(--summit-border);border-radius:var(--summit-border-radius);padding:var(--summit-card-padding-sm);display:flex;height:100%}.snowpro-card__headline{margin:24px 0 12px}.snowpro-card__pricing{margin-top:48px}.snowpro-card .snowflake-text .snowpro-card__price{color:var(--ui-01);font-weight:900;font-size:40px!important;font-family:Texta,sans-serif}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row;flex-wrap:wrap}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:not(:last-child){border-right:1px solid var(--summit-border)}.summit-stat-card{padding:0 40px}.summit-stat .heading-2-v2 .snowflake-title-v2-line:first-child{font-size:64px;line-height:52px;margin-bottom:8px}.summit-stat .heading-2-v2 .snowflake-title-v2-line:last-child{font-size:32px;line-height:30px;margin-bottom:16px}.summit-speaker-card .snowflake-card-v2-advanced-title{margin-bottom:var(--spacing-01)}.summit-add-on-card{padding:24px;border:1px solid #d2d1d4;border-radius:8px}.summit-add-on__subhead{padding-left:40px;padding-right:40px}.partner-card__logo-grid,.partner-card__logo-single{padding:40px}.partner-card__logo-grid .snowflake-image-container .cmp-image__image,.partner-card__logo-single .snowflake-image-container .cmp-image__image{border-radius:0;max-width:240px;margin:0 auto}.partner-card\u003E.container,.partner-card\u003E.container\u003E.aem-container,.partner-card\u003E.container\u003E.cmp-container{height:100%}.summit-add-on-block__content\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row;gap:24px;align-items:stretch}.partner-card__logo-grid\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:40px 24px;justify-content:center;align-items:center}.partner-card__logo-grid\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(33.3333% - 24px);margin:0!important}.partner-card{border-radius:8px;border:1px solid #d2d1d4;overflow:hidden;height:100%;background-color:#fff}.partner-card__header{padding:16px 24px;border-bottom:1px solid #d2d1d4}.partner-card__header.is-purple{background-color:#7d44cf}.partner-card__header h4{display:flex;flex-direction:row!important;align-items:center;gap:12px}.partner-card__header h4::before{vertical-align:middle;content:\"\";display:inline-block;width:20px;height:20px;background-size:contain;background-repeat:no-repeat;background-image:url(\"data:image/svg+xml,%3Csvg width='21' height='23' viewBox='0 0 21 23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M20.0375 12.8374C20.1644 12.439 20.2172 12.0289 20.2077 11.6237C20.193 11.3305 20.1548 11.0373 20.0712 10.7441C19.8196 9.83306 19.223 9.01989 18.3294 8.50724L5.61817 1.2017C3.82388 .173815 1.53618 .784335 .506483 2.56804C-.533615 4.34915 .0797871 6.62351 1.87408 7.65398L8.97715 11.7427L1.87408 15.8201C.0797871 16.8527 -.531016 19.1271 .506483 20.9156C1.53618 22.6941 3.82388 23.302 5.61817 22.2746L18.3294 14.9643C19.1871 14.4728 19.7693 13.7027 20.0375 12.8374Z' fill='black'/%3E%3C/svg%3E%0A\")}.partner-card__header.is-purple h4::before{background-image:url(\"data:image/svg+xml,%3Csvg width='21' height='23' viewBox='0 0 21 23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M20.0375 12.8374C20.1644 12.439 20.2172 12.0289 20.2077 11.6237C20.193 11.3305 20.1548 11.0373 20.0712 10.7441C19.8196 9.83306 19.223 9.01989 18.3294 8.50724L5.61817 1.2017C3.82388 .173815 1.53618 .784335 .506483 2.56804C-.533615 4.34915 .0797871 6.62351 1.87408 7.65398L8.97715 11.7427L1.87408 15.8201C.0797871 16.8527 -.531016 19.1271 .506483 20.9156C1.53618 22.6941 3.82388 23.302 5.61817 22.2746L18.3294 14.9643C19.1871 14.4728 19.7693 13.7027 20.0375 12.8374Z' fill='white'/%3E%3C/svg%3E%0A\")}.sf-blue-mountains{background-size:90% auto;background-repeat:no-repeat;background-position:center bottom;background-image:url(\"data:image/svg+xml,%3Csvg width='1361' height='410' viewBox='0 0 1361 410' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1360.25 410L1065.53 114.309L976.256 203.875L773.049 0L364.393 410H1360.25Z' fill='%233AA8DF'/%3E%3Cpath d='M274.778 410L137.467 272.238L.15625 410H274.778Z' fill='%233AA8DF'/%3E%3C/svg%3E%0A\")}.bwalignr,.main-pr-body .bwalignr{text-align:right}.bwblockalignl{margin-left:0;margin-right:auto}.bwcellpmargin{margin-top:0;margin-bottom:0}.bwlistdisc{list-style-type:disc}.bwpadb3{padding-bottom:4px}.bwpadb4{padding-bottom:5px}.bwpadl0{padding-left:0}.bwpadl3{padding-left:15px}.bwpadl6{padding-left:30px}.bwpadl9{padding-left:45px}.bwpadl12{padding-left:60px}.bwpadr0{padding-right:0}.bwtablemarginb{margin-bottom:10px}.bwvertalignb{vertical-align:bottom}.bwvertalignt{vertical-align:top}.bwsinglebottom{border-bottom:1pt solid #000}.bwdoublebottom{border-bottom:2.25pt double #000}.bwwidth1{width:1%}.bwwidth2{width:2%}.bwwidth6{width:6%}.bwwidth7{width:7%}.bwwidth8{width:8%}.bwwidth10{width:10%}.bwwidth12{width:12%}.bwwidth32{width:32%}.bwwidth44{width:44%}.bwwidth72{width:72%}.bwwidth97{width:97%}.main-pr-body{font-size:18px;line-height:26px}.main-pr-body img{display:block;width:100%;height:auto!important;border-radius:var(--small-border-radius)}.main-pr-body table{width:100%;display:block}.main-pr-body tbody{background-color:#f7f7f7}.main-pr-body .bwsinglebottom{border-bottom:1pt solid #000!important}.main-pr-body td.bwwidth44{padding-right:40px}.main-pr-body .bw-release-story{font-family:Lato,sans-serif}.main-pr-body .bw-release-story sup,.snowflake-mega-nav-dropdown-header-content-right a{white-space:nowrap}.main-pr-body .bw-release-story\u003E*,.main-pr-body\u003Espan\u003E*{margin-bottom:2rem!important}.snowflake-text.main-pr-body tbody,.snowflake-text.main-pr-body tbody p{font-size:14px!important;line-height:20px!important;width:100%;display:block}.press-body .snowflake-flexible-column-container-items{gap:var(--spacing-08)}.about-snowflake{border:1px solid #ccc;background-color:var(--ui-background-05);padding:24px;border-radius:8px;margin-top:0}.about-snowflake__logo{max-width:140px;margin-top:16px}.hero--press .snowflake-hero-system-inner{max-width:1408px;margin:0 auto!important}#arcticNavItem{flex-direction:column}#arcticNavItem::before{content:\"Featured Open Source Technologies\";display:block;margin-top:48px;margin-bottom:24px;font-size:16px!important;line-height:16px!important;font-weight:800!important;text-transform:uppercase}@media screen and (min-width:768px){.sc-hero__inner\u003E.snowflake-flexible-column-container-items\u003Ediv:last-child{position:relative;height:100%;top:auto;left:auto;width:auto}.sc-hero__inner\u003E.snowflake-flexible-column-container-items\u003Ediv:last-child::before{background:linear-gradient(180deg,#202c35 -7.5%,#fff0 51.25%,#202c35 107.69%)}.sc-hero__byline\u003Espan{display:flex;flex-wrap:wrap}.sc-hero__byline p:not(:last-child)::after{content:\"|\";margin:0 12px;opacity:.5}.sc-hero__button-container .snowflake-flexible-column-container-items{position:absolute;bottom:0;padding:0;margin:0 24px 0 0}.sc-hero__button-container .hero-watch-the-demo{padding:12px 16px!important;float:right;margin-bottom:48px;background-color:rgb(35 45 54 / .8)}.summit-overview-stat{padding:0 40px}.summit-timeline{border-bottom:3px solid var(--ui-01);margin-bottom:64px}.summit-add-on-block__content,.summit-pricing-block__content{padding:0 40px 40px}#arcticNavItem::before{font-size:12px!important;margin-bottom:8px;margin-top:16px}.snowflake-mega-nav-nav-item-title-wrapper\u003E.snowflake-mega-nav-nav-item-title{line-height:20px!important}.snowflake-card .heading-2.snowflake-title-line{font-size:24px!important;line-height:28px!important}}@media screen and (min-width:992px){.hp-hero__eyebrow a{gap:12px;margin-left:0;margin-right:0}.hp-hero__eyebrow a::after{content:\"\";background-image:url(\"data:image/svg+xml,%3Csvg width='6' height='11' viewBox='0 0 6 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5.49134 5.79438C5.53447 5.75922 5.56923 5.71489 5.5931 5.66463C5.61697 5.61436 5.62935 5.55941 5.62935 5.50376C5.62935 5.44811 5.61697 5.39316 5.5931 5.34289C5.56923 5.29263 5.53447 5.2483 5.49134 5.21314L.736339 .413136C.522589 .203135 .331339 .203135 .151339 .413136C-.0286612 .623135 -.0586612 .818135 .151339 .994386L4.48634 5.50188L.155089 9.97938C.107068 10.0142 .0679743 10.0598 .0410153 10.1126C.0140562 10.1654 0 10.2238 0 10.2831C0 10.3424 .0140562 10.4009 .0410153 10.4537C.0679743 10.5065 .107068 10.5521 .155089 10.5869C.335089 10.7969 .530089 10.7969 .740089 10.5869L5.49134 5.79438Z' fill='black'/%3E%3C/svg%3E%0A\");display:inline-block;width:12px;height:12px;background-repeat:no-repeat;background-size:auto 100%;background-position:left center}.promo-banner--homepage{padding-top:32px}.homepage-banner-offset-container::after{height:50%}#storyHighlights{padding:2rem}.body-display-v2.snowflake-quote-item-quote-text{line-height:28px!important}.snowflake-hero-system-headline .heading-1-v2{line-height:48px;font-size:54px!important}.sc-overview__webinar-promo-banner .snowflake-content-chip-content{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.sc-overview__webinar-promo-banner .snowflake-content-chip-content .heading-5-v2{flex-direction:row}.sc-overview__webinar-promo-banner .snowflake-content-chip-content .snowflake-title-v2-line:not(:first-child)::before{content:\"|\";margin:0 6px}.sc-cert-banner{padding:40px}.sc-cert-banner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{margin:0!important;width:50%}.sc-cert-banner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{flex-grow:1;padding-right:24px}.sc-cert-banner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:last-child{max-width:240px}.summit-pricing-block__content\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:last-child{width:70%;padding-left:40px}.summit-pricing-block__content\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{width:30%}.summit-add-on-block__content\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(33.3333% - 24px);margin:0!important;display:flex}.summit-pricing-block__tile .snowflake-content-chip-content{display:flex;flex-direction:row;align-items:center;width:calc(100% - 200px)}.summit-pricing-block__tile .heading-5-v2 span.snowflake-title-v2-line:last-child{position:absolute;top:50%;transform:translate(0,-50%);right:40px}.press-body\u003E.snowflake-flexible-column-container-items\u003Ediv:last-child{position:sticky;top:120px}.snowflake-mega-nav-navigation-title:hover{color:var(--ui-01)}}@media screen and (min-width:1024px){.about-snowflake{padding:28px}.about-snowflake__logo{max-width:none;padding:0 0 0 48px;margin-bottom:0}.hero--press .snowflake-hero-system-layout-70-30 .snowflake-hero-system-content-container{width:85%}.snowflake-hero-system{padding-bottom:var(--spacing-04);padding-top:var(--spacing-07)}.hero--press .display-2-v2{font-size:64px;line-height:56px}.about-snowflake\u003E.container\u003E.cmp-container\u003E.aem-container{flex-direction:row;flex-wrap:nowrap;align-items:center}.about-snowflake\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:last-child{max-width:280px}.about-snowflake\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{flex-grow:1;margin-bottom:0!important}#polarisNavItem{margin-top:40px}.snowflake-mega-nav-nav-item-description{line-height:18px!important}.snowflake-mega-nav-column-items{gap:var(--spacing-01);grid-gap:var(--spacing-01)}.snowflake-mega-nav-navigation-title{text-transform:none}}div[id*=blueIcon] .snowflake-mega-nav-nav-item-icon__inner{background:var(--ui-01);padding:8px}div[id*=blueIcon]:hover .snowflake-mega-nav-nav-item-icon__inner{background:var(--ui-01)!important}.snowflake-mega-nav-nav-item-icon__inner{border-radius:4px;background:var(--ui-background-05);padding:6px}.snowflake-mega-nav-nav-item:hover .snowflake-mega-nav-nav-item-icon__inner{background:#fff!important}.snowflake-mega-nav-nav-item-icon.snowflake-image-container{height:40px;width:40px}.snowflake-mega-nav-dropdown-footer-links\u003E.snowflake-button-link\u003E.snowflake-button-container{font-size:16px!important;font-family:Texta!important;font-weight:800!important}.snowflake-mega-nav-dropdown-footer-icon.snowflake-image-container{margin-right:8px;width:40px!important;height:40px!important}#viewAllCapabilities a:hover{background:0 0!important}#platformFooter .snowflake-title-v2 .snowflake-title-v2-line:last-child{font-family:Lato;font-size:14px;font-weight:500}#platformFooter .snowflake-mega-nav-dropdown-footer-links{flex-grow:1;justify-content:flex-end;align-items:center}#platformFooter .snowflake-mega-nav-dropdown-footer-content{flex-direction:row}#offset,#open-source{flex-direction:column;border-top:1px solid #ccc}#offset::before,#open-source::before{content:\" \";display:block;width:100%;font-weight:800!important;font-size:12px!important;line-height:14px;text-transform:uppercase;white-space:nowrap;margin-top:16px;margin-bottom:8px}#open-source::before{content:\"Open Source Technologies\"}.snowflake-mega-nav-dropdown-menu-close-button{margin:var(--spacing-04) 0 var(--spacing-03)}.snowflake-mega-nav-column{gap:var(--spacing-02)!important}.snowflake-mega-nav-nav-item\u003Ea{width:100%;margin-left:-8px;padding:8px;border-radius:4px}.snowflake-mega-nav-nav-item\u003Ea:hover{background-color:var(--ui-background-05)}.snowflake-mega-nav-nav-item-description{margin-top:2px;display:block}#promobanner_overflowBottomDarkBlue::before{content:'';display:block;position:absolute;bottom:0;left:0;width:100%;height:50%;background:#212d35}#promobanner_overflowTopDarkBlue::before{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:50%;background:#212d35}.overview-card\u003Ediv{box-shadow:0 0 14px 0 rgba(0,0,0,.10);background-color:#fff;border-radius:16px;overflow:hidden}.overview-card-text{padding:40px}.overview-card-image img{border-radius:0 !important}.overview-card-text h3,.overview-card-text .heading-3-v2{font-size:18px;line-height:1.1;margin-top:0}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"mega_header":{"additionalClasses":"heap-nav-header","id":"container-6781faf48a","layout":"SIMPLE",":type":"snowflake-site/components/mega-header","appliedCssClassNames":"snowflake-header-container white",":items":{"nav_mega":{"activeItem":"item_1719963657751_c_663444255","id":"tabs-ac67028826",":type":"snowflake-site/components/nav/nav-mega",":items":{"item_1719963657751_c_663444255":{"id":"nav-dropdown-menu-42f4297b83","enableDropdown":true,"nav_column_container":{"id":"container-37365ef26b","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column":{"additionalClasses":"nav-platform-sidebar","numberOfSubColumns":"one-column","minWidth":"230","maxWidth":"350","id":"container-f6cb76916b","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_copy_2_793631646":{"id":"nav-item-0b24e8b210","additionalClasses":"nav-item__platform-parent is-platform","linkDescription":"Develop AI products, apps and more on a fully managed platform that securely connects businesses globally — across any type or scale of data.","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/platform/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"The Snowflake Platform"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-4d054e790c","additionalClasses":"nav-item nav-item--si is-si","linkDescription":"All your knowledge. One trusted enterprise agent.","flag":"NOW GA","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/snowflake-cowork/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Snowflake CoWork"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy_2_836345186":{"id":"nav-item-49f015aacb","additionalClasses":"blue-icon is-analytics","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/analytics/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Analytics"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy_2":{"id":"nav-item-cfc975d210","additionalClasses":"blue-icon is-ai","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/ai/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"AI"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy_2_1314771042":{"id":"nav-item-233d983e50","additionalClasses":"blue-icon is-data-eng","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/data-engineering/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Data Engineering"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_144634":{"id":"nav-item-e069fe41b1","additionalClasses":"blue-icon is-apps-collab","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/applications-and-collaboration/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Applications & Collaboration"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_144634_2013333117":{"id":"nav-item-dc2d84776b","additionalClasses":"blue-icon is-transactions","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/transactions/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Transactions"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_copy_2_793631646","nav_item","nav_item_copy_copy_2_836345186","nav_item_copy_copy_2","nav_item_copy_copy_2_1314771042","nav_item_copy_144634","nav_item_copy_144634_2013333117"]},"nav_column_copy_copy":{"additionalClasses":"meganav-platform-features","navColumnTitle":"Featured Capabilities","numberOfSubColumns":"one-column","id":"container-9e33fed415","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_212715":{"id":"nav-item-a423fdc365","additionalClasses":"is-cortex-code","linkDescription":"Snowflake-native AI coding agent ","flag":"New","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/snowflake-coco/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Snowflake CoCo"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-0978968122","additionalClasses":"is-cortex-ai","linkDescription":"Instant access to industry-leading LLMs","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/cortex/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Cortex AI"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590635":{"id":"nav-item-c10aae39ed","additionalClasses":"is-marketplace","linkDescription":"Third-party data sources connected within minutes","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/marketplace/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Marketplace"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590":{"id":"nav-item-b6b8eb22b5","additionalClasses":"is-snowpark","linkDescription":"Libraries and code execution environments that run Python and more","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/snowpark/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Snowpark"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590_983061516":{"id":"nav-item-8df7e0dde4","additionalClasses":"is-streamlit","linkDescription":"Framework for transforming Python scripts into web apps","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/streamlit-in-snowflake/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Streamlit"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_212715","nav_item","nav_item_copy_660590635","nav_item_copy_660590","nav_item_copy_660590_983061516"]},"nav_column_692142673":{"navColumnTitle":" ","numberOfSubColumns":"one-column","id":"container-ef2d126d20","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_660590_1739526127":{"id":"nav-item-b77ab6d3c4","additionalClasses":"is-postgres","linkDescription":"Fully compatible open source Postgres running on Snowflake","flag":"Now GA","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/postgres/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Postgres"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_185565":{"id":"nav-item-accd5a1687","additionalClasses":"is-dcr","linkDescription":"Streamlined model development and MLOps from a centralized UI","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/end-to-end-ml-workflows/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Snowflake ML"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_212715":{"id":"nav-item-0ac0c174a3","additionalClasses":"is-openflow","linkDescription":"Effortless data movement for integrations","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/openflow/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Openflow"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590":{"id":"nav-item-536825c69b","additionalClasses":"is-notebooks","linkDescription":"Interactive dev environment for data and AI teams","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/notebooks/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Notebooks"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_258535199":{"id":"nav-item-a6aad7a00c","propertiesId":"workload-nav-1","additionalClasses":"is-native-apps","linkDescription":"End-to-end, Snowflake-native app creation and distribution","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/native-apps/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Native Apps"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_660590_1739526127","nav_item_copy_185565","nav_item_copy_212715","nav_item_copy_660590","nav_item_258535199"]},"nav_column_782221091":{"navColumnTitle":" ","numberOfSubColumns":"one-column","id":"container-95d94ca037","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy":{"id":"nav-item-06bb3d531d","additionalClasses":"is-light-gray-icon is-horizon-catalog","linkDescription":"Universal AI catalog","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/horizon/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Horizon Catalog"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590_1293798742":{"id":"nav-item-fdbeab5d3a","additionalClasses":"is-snowflake-ml","linkDescription":"Governed context layer that keeps AI, BI and data apps working from one truth","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/horizon-context/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Horizon Context"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_511717659_c":{"id":"nav-item-c4a40bd8f1","additionalClasses":"is-unistore","linkDescription":"Unify transactional and analytical workloads in Snowflake for enhanced simplicity","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/unistore/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Unistore"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_511717659_c_1443811525":{"id":"nav-item-5e9d8f16ee","additionalClasses":"is-observe","linkDescription":"AI-powered observability for faster production troubleshooting","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/observe/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Observe"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_511717659_c_1006104884":{"id":"nav-item-a7dea2879f","additionalClasses":"is-observe","linkDescription":"Use any engine on a single governed data copy","flag":"Now GA","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/use-cases/interoperable-lakehouse/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Interoperable Lakehouse"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy","nav_item_copy_660590_1293798742","nav_item_511717659_c","nav_item_511717659_c_1443811525","nav_item_511717659_c_1006104884"]}},":itemsOrder":["nav_column","nav_column_copy_copy","nav_column_692142673","nav_column_782221091"]},":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Product"},"nav_dropdown_menu_2":{"id":"nav-dropdown-menu-ad2d81a373","enableDropdown":true,"nav_column_container":{"id":"container-e532a3949a","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column":{"navColumnTitle":"INDUSTRIES","numberOfSubColumns":"one-column","minWidth":"280","id":"container-96c2a62f4f","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column","appliedCssClassNames":"snowflake-responsive-container-inner-padding-extra-small",":items":{"nav_item_copy_361384_2056203141":{"id":"nav-item-bbcec3738b","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"All Industries"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-7ad5695bff","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/advertising-media-entertainment/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Advertising, Media & Entertainment"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-84510e29cc","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/financial-services/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Financial Services"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1970515619":{"id":"nav-item-48740bdd8e","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/healthcare-and-life-sciences/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Healthcare & Life Sciences"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1533429516":{"id":"nav-item-3290703d38","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/manufacturing/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Manufacturing"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1444458226":{"id":"nav-item-f680cc26fd","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/public-sector/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Public Sector"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1149488919":{"id":"nav-item-5c5dc462db","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/retail-consumer-goods/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Retail & Consumer Goods"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_57417040":{"id":"nav-item-87fcd08eb2","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/technology/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Technology"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_361384674":{"id":"nav-item-c10bcb3333","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/telecom/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Telecom"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_361384":{"id":"nav-item-1abdb0f3f7","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/travel-hospitality/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Travel & Hospitality"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_361384_2056203141","nav_item","nav_item_copy","nav_item_copy_1970515619","nav_item_copy_1533429516","nav_item_copy_1444458226","nav_item_copy_1149488919","nav_item_copy_57417040","nav_item_copy_361384674","nav_item_copy_361384"]},"nav_column_copy":{"navColumnTitle":"DEPARTMENTS","numberOfSubColumns":"one-column","minWidth":"160","id":"container-1894cc6079","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-1f468b020f","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/solutions/departments/finance/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Finance"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-6d3deef2ea","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/solutions/departments/information-technology/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"IT"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1970515619":{"id":"nav-item-7f65f6765b","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/solutions/departments/marketing/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Marketing"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_copy","nav_item_copy_1970515619"]},"nav_column_833417450":{"navColumnTitle":"Enablement Solutions","numberOfSubColumns":"one-column","id":"container-7c050471ff","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_107772":{"id":"nav-item-5142738894","linkDescription":"Confident migration to a unified platform","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/migrate-to-the-cloud/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Migrate to the AI Data Cloud"},"icon":{"id":"icon","alt":"Cloud icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/nav_dropdown_menu_2/nav_column_container/nav_column_833417450/nav_item_copy_107772/icon.coreimg.svg/1723828484100/nav-icon-cloud.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy":{"id":"nav-item-a29ee9a48e","linkDescription":"Snowflake experts to help you accelerate and achieve business goals","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/services-delivery/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Services Delivery"},"icon":{"id":"icon","alt":"Migrate icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/nav_dropdown_menu_2/nav_column_container/nav_column_833417450/nav_item_copy_copy/icon.coreimg.svg/1768354429188/nav-icon--migrate.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_107772","nav_item_copy_copy"]},"nav_column_copy_copy":{"navColumnTitle":"PARTNER SOLUTIONS","numberOfSubColumns":"one-column","id":"container-2bca8b6e7a","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-d6a5281557","linkDescription":"Programs with product, solutions and cloud partners","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/partners/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Snowflake Partner Network"},"icon":{"id":"icon","alt":"Partner Network icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/nav_dropdown_menu_2/nav_column_container/nav_column_copy_copy/nav_item/icon.coreimg.svg/1723828498700/nav-icon--partner-network.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-ed1c31cbbd","linkDescription":"Partners, apps and solutions for enhanced deployment","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/partners/all-partners/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Partner Finder"},"icon":{"id":"icon","alt":"Partner Finder icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/nav_dropdown_menu_2/nav_column_container/nav_column_copy_copy/nav_item_copy/icon.coreimg.svg/1726173927645/nav-icon--partner-finder.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1970515619":{"id":"nav-item-5a9ee0330d","linkDescription":"Live and virtual events","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/partners/event-partnership-opportunities/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Event Partnership Opportunities"},"icon":{"id":"icon","alt":"Calendar icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/nav_dropdown_menu_2/nav_column_container/nav_column_copy_copy/nav_item_copy_1970515619/icon.coreimg.svg/1726173935655/nav-icon--events.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_copy","nav_item_copy_1970515619"]}},":itemsOrder":["nav_column","nav_column_copy","nav_column_833417450","nav_column_copy_copy"]},":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Solutions"},"item_1719963657751_c":{"id":"nav-dropdown-menu-7c8a343827","enableDropdown":true,"nav_column_container":{"id":"container-5aaf7a6803","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column":{"numberOfSubColumns":"one-column","minWidth":"230","maxWidth":"350","id":"container-203f0e2e46","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_copy_2_793631646":{"id":"nav-item-90c5ba4b0c","additionalClasses":"nav-item__platform-parent-why-sf","linkDescription":"Collaborate locally and globally to reveal new insights, create previously unforeseen business opportunities, and identify your customers with seamless experiences.","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Why Snowflake"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_copy_2_793631646"]},"nav_column_copy_copy":{"additionalClasses":"meganav-platform-features","numberOfSubColumns":"two-columns","maxWidth":"1200","id":"container-d0c149a08e","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-c42d8ce8e3","propertiesId":"testID","linkDescription":"Case studies and videos showcasing how global organizations use Snowflake","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/customers/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Customers"},"icon":{"id":"icon","alt":"Customer icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item/icon.coreimg.svg/1739839279367/nav-icon--partner-network.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_258535199":{"id":"nav-item-d88a2ced28","propertiesId":"workload-nav-1","linkDescription":"Learn how to connect, share and integrate the data and apps on the AI Data Cloud","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/what-is-data-cloud/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"The AI Data Cloud Explained"},"icon":{"id":"icon","alt":"Cloud icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item_258535199/icon.coreimg.svg/1739840490955/nav-icon-cloud.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_185565":{"id":"nav-item-a5a468ac2b","linkDescription":"Comprehensive security through built-in features, robust cloud infrastructure protection, and more","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/snowflake-security-hub/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Security Hub"},"icon":{"id":"icon","alt":"User with security lock icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item_copy_185565/icon.coreimg.svg/1758909528089/user-security-admins-ciso-icon.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-3da4abb073","additionalClasses":"is-light-gray-icon","linkDescription":"Maximize economic value through minimizing TCO and continuously optimizing price for performance","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/pricing-options/cost-and-performance-optimization/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Cost and Performance Optimization"},"icon":{"id":"icon","alt":"Cost Optimization icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item_copy/icon.coreimg.svg/1758909542267/nav-icon-cost-optimization-performance.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_185565_903555964":{"id":"nav-item-6f8a9192c8","linkDescription":"Startups building applications in the AI Data Cloud","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/startup-program/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Snowflake for Startups"},"icon":{"id":"icon","alt":"Launch","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item_copy_185565_903555964/icon.coreimg.svg/1758732224323/launch.svg","height":"64","width":"65",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_258535199","nav_item_copy_185565","nav_item_copy","nav_item_copy_185565_903555964"]}},":itemsOrder":["nav_column","nav_column_copy_copy"]},":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Why Snowflake"},"item_1719961362824":{"id":"nav-dropdown-menu-6d5974ed69","enableDropdown":true,"nav_column_container":{"id":"container-5a7c778153","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column_copy":{"navColumnTitle":"Connect","numberOfSubColumns":"one-column","minWidth":"124","id":"container-910774bf1c","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-fa2ced53a4","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Blog"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_180298689":{"id":"nav-item-ea3525bd86","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/events/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Events"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_1639361946":{"id":"nav-item-3d43e4288a","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/support/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Support"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_680912746":{"id":"nav-item-2e12467cbd","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/contact/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Contact us"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_180298689","nav_item_1639361946","nav_item_680912746"]},"nav_column_44600420__826130542":{"navColumnTitle":"Learn","numberOfSubColumns":"two-columns","id":"container-1429d7aa15","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy":{"id":"nav-item-cd01ddb993","linkDescription":"Ebooks, videos, white papers and more","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/resources/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Resource Library"},"icon":{"id":"icon","alt":"Notebooks icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy/icon.coreimg.svg/1736877128196/nav-icon--notebooks.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-dccb0284e8","linkDescription":"Overview of Snowflake's educational offerings","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/resources/learn/training/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Training"},"icon":{"id":"icon","alt":"Training icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item/icon.coreimg.svg/1722385094416/nav-icon--training.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_144634_1984107859":{"id":"nav-item-5989943047","linkDescription":"Expert-led discussions and demos across industries and use cases","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/webinars/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Webinars"},"icon":{"id":"icon","alt":"Webinars icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_144634_1984107859/icon.coreimg.svg/1759424691990/nav-icon--webinars.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1438098918":{"id":"nav-item-8b80a119a5","linkDescription":"Snowflake's technical industry professional certifications","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/resources/learn/certifications/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Certifications"},"icon":{"id":"icon","alt":"Certification icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_1438098918/icon.coreimg.svg/1722382780833/nav-icon--cert.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_143809":{"id":"nav-item-76d1f8e778","linkDescription":"Weekly product demos showcasing key features and live Q&A ","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/webinars/demo/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Live Demos"},"icon":{"id":"icon","alt":"Live Demo icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_143809/icon.coreimg.svg/1759424359543/nav-icon--live-demo.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_333890638":{"id":"nav-item-0b4b18947e","linkDescription":"Training courses for all levels, on-demand or instructor-led","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://learn.snowflake.com/en/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Snowflake University"},"icon":{"id":"icon","alt":"Education icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_333890638/icon.coreimg.svg/1722382769808/nav-icon--education.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_189945":{"id":"nav-item-c5927cc1dd","linkDescription":"Instructor-led virtual workshops for exploring key Snowflake features","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/webinars/virtual-hands-on-lab/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Hands-On Labs"},"icon":{"id":"icon","alt":"Hands-on Labs icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_189945/icon.coreimg.svg/1759388182903/nav-icon--labs.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_333890":{"id":"nav-item-6895eb8d11","linkDescription":"Academic papers written by Snowflake researchers","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/resources/publications/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Snowflake Research Publications"},"icon":{"id":"icon","alt":"Copy","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_333890/icon.coreimg.svg/1756326371387/copy.svg","height":"64","width":"65",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_333890_930852828":{"id":"nav-item-23a588d1a0","linkDescription":"Informative articles about AI and data topics","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/fundamentals/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Fundamentals"},"icon":{"id":"icon","alt":"Document with list","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_333890_930852828/icon.coreimg.svg/1756853637155/data-sheet.svg","height":"64","width":"65",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy","nav_item","nav_item_copy_144634_1984107859","nav_item_copy_1438098918","nav_item_copy_143809","nav_item_copy_333890638","nav_item_copy_189945","nav_item_copy_333890","nav_item_copy_333890_930852828"]}},":itemsOrder":["nav_column_copy","nav_column_44600420__826130542"]},"nav_promo_section":{"id":"nav-promo-section-0d798faeba","experience_fragment_1":{"id":"experiencefragment-fde5024e56","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/master1/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-25add9d5ce","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-e5ef605dff","openInNewWindow":true,"layout":"horizontal","headline":"Dev Day Virtual - June 25","description":"Don’t just hear about AI — build it. Luminary talks and hands-on labs","linkTitle":"Learn more","linkUrl":"/en/dev-day/americas-virtual/","image":{"id":"image","alt":"dev day","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--de231e36-6645-4550-abd9-0f8de758ac66/web-dev-day-26-960x540-1x.png?quality=85&preferwebp=true","height":"540","width":"960",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-promo-card"}},":itemsOrder":["nav_promo_card"]},"cq:metadata":{":type":"nt:unstructured"}},":itemsOrder":["root","cq:metadata"]},"experience_fragment_2":{"id":"experiencefragment-7642e0c008","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/navigation-promo-card-2/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-5ad15f08e6","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-6a4241e050","openInNewWindow":true,"layout":"horizontal","headline":"The ROI of Gen AI and Agents 2026","description":"Discover how 92% of early adopters are achieving positive ROI with gen AI.","linkTitle":"Learn More","linkUrl":"/en/lp/radical-roi-generative-ai/","image":{"id":"image","alt":"roi of gen ai and agents","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--0c15edae-1a97-4739-8b16-c7f3941a6d9e/web-roi-of-gen-ai-and-agents-2026-r02-960x540.png?quality=85&preferwebp=true","height":"540","width":"960",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-promo-card"}},":itemsOrder":["nav_promo_card"]},"cq:metadata":{":type":"nt:unstructured"}},":itemsOrder":["root","cq:metadata"]},"experience_fragment_3":{"id":"experiencefragment-7d7cac5b4d","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/navigation-promo-card-3/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-302f01393d","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-1921f33dd7","openInNewWindow":true,"layout":"horizontal","headline":"Startup 2026: AI Agents Mean Business","description":"Venture leaders weigh in on agentic AI. ","linkTitle":"Learn more","linkUrl":"/en/lp/building-startup-ai-age/","image":{"id":"image","alt":"alt","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--a320b404-dca1-4477-b033-c79708538657/web-startup-2026-960x540.png?quality=85&preferwebp=true","height":"540","width":"960",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-promo-card"}},":itemsOrder":["nav_promo_card"]},"cq:metadata":{":type":"nt:unstructured"}},":itemsOrder":["root","cq:metadata"]},":type":"snowflake-site/components/nav/nav-promo-section"},":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Resources"},"item_1719963657751":{"id":"nav-dropdown-menu-f1b2151603","enableDropdown":true,"nav_column_container":{"id":"container-9494feae8c","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column_copy_copy":{"navColumnTitle":"Build","numberOfSubColumns":"one-column","id":"container-22f4994706","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-93ec7af03a","propertiesId":"testID","linkDescription":"Overview of the dev resources you need to build and scale","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Snowflake for Developers"},"icon":{"id":"icon","alt":"Developers icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy/nav_item/icon.coreimg.svg/1731362494574/nav-icon--devs.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1855651246":{"id":"nav-item-7e9c68ddd3","linkDescription":"Reference architectures, use cases and best practices","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/guides/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Developer Guides"},"icon":{"id":"icon","alt":"Solution Center icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy/nav_item_copy_1855651246/icon.coreimg.svg/1761677891705/nav-icon--solution-center.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-13374720f0","additionalClasses":"is-light-gray-icon","linkDescription":"The latest software versions, drivers, libraries and relevant docs","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/downloads/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Downloads"},"icon":{"id":"icon","alt":"Download icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy/nav_item_copy/icon.coreimg.svg/1731362660050/nav-icon-download.svg","height":"28","width":"28",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_copy_1855651246","nav_item_copy"]},"nav_column_copy_copy_1367930678":{"navColumnTitle":"Learn","numberOfSubColumns":"one-column","id":"container-d99468f208","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-1d61971977","propertiesId":"testID","linkDescription":"Reference docs, guides, tutorials and announcements","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://docs.snowflake.com/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Documentation"},"icon":{"id":"icon","alt":"Docs icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1367930678/nav_item/icon.coreimg.svg/1731361950527/nav-icon--docs.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-1ca67cdae2","additionalClasses":"is-light-gray-icon","linkDescription":"Key projects Snowflake engineers maintain and support","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/open-source/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Open Source"},"icon":{"id":"icon","alt":"Open Source icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1367930678/nav_item_copy/icon.coreimg.svg/1731365437016/nav-icon-open-source.svg","height":"32","width":"32",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy":{"id":"nav-item-44739a163e","additionalClasses":"is-light-gray-icon","linkDescription":"Online and in-person classes and workshops to upskill on Snowflake","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/northstar/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Builder Education"},"icon":{"id":"icon","alt":"Northstar logo","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1367930678/nav_item_copy_copy/icon.coreimg.svg/1731362475640/nav-icon--northstar.svg","height":"32","width":"32",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_copy","nav_item_copy_copy"]},"nav_column_copy_copy_1101894776":{"navColumnTitle":"Connect","numberOfSubColumns":"one-column","id":"container-e78e24df73","layout":"SIMPLE",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-8bf914df15","propertiesId":"testID","linkDescription":"Snowflake’s technical leaders on what, why and how they build features","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/engineering-blog/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Engineering Blog"},"icon":{"id":"icon","alt":"Developers icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1101894776/nav_item/icon.coreimg.svg/1757101368571/nav-icon--developer-center.svg","height":"32","width":"32",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1855651246":{"id":"nav-item-d5b4c4e9f0","linkDescription":"Tips, tricks and discussion with fellow Snowflake developers","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://community.snowflake.com/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Community"},"icon":{"id":"icon","alt":"Partner Network icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1101894776/nav_item_copy_1855651246/icon.coreimg.svg/1731362644348/nav-icon--partner-network.svg","height":"64","width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_copy_1855651246"]}},":itemsOrder":["nav_column_copy_copy","nav_column_copy_copy_1367930678","nav_column_copy_copy_1101894776"]},"nav_promo_section":{"id":"nav-promo-section-e27856de19","experience_fragment_1":{"id":"experiencefragment-6258fbaf44","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/nav-promo-5/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-662260d2a8","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-b92080d3f1","openInNewWindow":false,"layout":"horizontal","headline":"Get started with your first Snowflake Notebook","description":"Write and execute code, visualize results, and tell the story of your analysis all in one place.","linkTitle":"Learn More","linkUrl":"/en/developers/solutions-center/getting-started-with-your-first-snowflake-notebook-project/","image":{"id":"image","alt":"alt","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--dc7e334a-c38b-4283-b1de-fcf829952eef/nav-promo-first-notebook.jpg?quality=85&preferwebp=true","height":"210","width":"415",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-promo-card"}},":itemsOrder":["nav_promo_card"]},"cq:LiveSyncConfig":{"cq:isDeep":true,"cq:rolloutConfigs":[],"cq:master":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/nav-promo-card-4",":type":"cq:LiveCopy"}},":itemsOrder":["root","cq:LiveSyncConfig"]},"experience_fragment_2":{"id":"experiencefragment-1c0ec064ef","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/nav-promo-card-4/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-4d1d33ce1d","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-ef079a83f4","openInNewWindow":true,"layout":"horizontal","headline":"Northstar Builder Workshops","description":"Join other developers as you roll up your sleeves and explore the possibilities of Snowflake.","linkTitle":"Learn More","linkUrl":"/en/nav-promos/northstar-builders-workshop/","image":{"id":"image","alt":"Snowflake Northstar logo","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--14341ced-bc5e-4a29-9762-b7857f6cadfc/nav-promo-northstar.jpg?quality=85&preferwebp=true","height":"700","width":"1440",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-promo-card"}},":itemsOrder":["nav_promo_card"]},"cq:LiveSyncConfig":{"cq:isDeep":true,"cq:rolloutConfigs":[],"cq:master":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/master",":type":"cq:LiveCopy"}},":itemsOrder":["root","cq:LiveSyncConfig"]},":type":"snowflake-site/components/nav/nav-promo-section"},":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Developers"},"item_1718247180324":{"id":"nav-dropdown-menu-5446ab85c6","enableDropdown":false,"link_url":"/en/pricing-options/",":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Pricing"}},":itemsOrder":["item_1719963657751_c_663444255","nav_dropdown_menu_2","item_1719963657751_c","item_1719961362824","item_1719963657751","item_1718247180324"]},"languagenavigation":{"id":"language-navigation-abe86c997f","languageNavItems":[{"title":"English","path":"/en/developers/guides/well-architected-framework-operational-excellence/","locale":"en","active":true},{"title":"日本語","path":"/ja/","locale":"ja","active":false},{"title":"한국어","path":"/ko/","locale":"ko","active":false},{"title":"中文（简体）","path":"/zh_cn/","locale":"zh-cn","active":false},{"title":"Português","path":"/pt_br/","locale":"pt-br","active":false},{"title":"Deutsch","path":"/de/","locale":"de","active":false},{"title":"Français","path":"/fr/","locale":"fr","active":false},{"title":"Español","path":"/es/","locale":"es","active":false},{"title":"Italiano","path":"/it/","locale":"it","active":false}],":type":"snowflake-site/components/nav/language-navigation"},"button_1177328691":{"id":"button-68cb791a1d","heapButtonClasses":["mega-nav__sign-in"],"showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://app.snowflake.com/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","appliedCssClassNames":"snowflake-button-link snowflake-button-black snowflake-button-compact","text":"Sign in"},"button":{"id":"button-ecb30d6406","heapButtonClasses":["contact_nav","heap-nav-contact"],"showOutboundIcon":true,"buttonLink":{"valid":true,"url":"/en/contact-sales/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","appliedCssClassNames":"snowflake-button-secondary snowflake-button-blue snowflake-button-compact","text":"CONTACT SALES"},"button_288358396":{"id":"button-137dbc1832","heapButtonClasses":["start_for_free_nav","heap-nav-start-for-free"],"showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://signup.snowflake.com/"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","appliedCssClassNames":"snowflake-button-primary snowflake-button-blue snowflake-button-compact","text":"start for free"}},":itemsOrder":["nav_mega","languagenavigation","button_1177328691","button","button_288358396"]}},":itemsOrder":["markup_editor","mega_header"]},"image":{":type":"nt:unstructured"},"cq:targetMetadata":{"cq:targetStatus":"OUT_OF_SYNC","cq:exportTime":1781280015540,"cq:targetOfferId":860250,":type":"nt:unstructured"}},":itemsOrder":["root","image","cq:targetMetadata"]},"markup_editor_1950346551":{"id":"markup-editor-6942b50a32","title":" ","cssContent":".snowflake-markdown-table code[class*=language-],.snowflake-markdown-table code[class*=language-],.snowflake-markdown .snowflake-text code[class*=language-],.snowflake-markdown .snowflake-text pre[class*=language-]{background-color:rgba(var(--ui-12-rgb),.5);color:var(--text-01);text-shadow:none;padding:var(--spacing-00);border-radius:var(--spacing-00);font-size:smaller}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"responsivegrid":{"columnClassNames":{"quickstart_hero":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnCount":12,":items":{"quickstart_hero":{"id":"quickstart-hero-e1fa71edeb","quickstartHeroTitle":{"lines":["Operational Excellence"],"type":"heading2",":type":"snowflake-site/components/title-v2"},"quickstartHeroAuthor":"Well Architected Framework Team","quickstartHeroForkRepoLink":{"id":"button-944c80bf86","showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/well-architected-framework-operational-excellence"},"linkTargetContentType":"GENERIC","linkType":"SNOWFLAKE_EXTERNAL",":type":"snowflake-site/components/button","text":"Fork Repo"},"quickstartHeroBreadcrumbs":[{"title":"Operational Excellence","url":"https://www.snowflake.com/content/snowflake-site/global/en/developers/guides/well-architected-framework-operational-excellence","currentPage":true},{"title":"Guides","url":"https://www.snowflake.com/content/snowflake-site/global/en/developers/guides","currentPage":false},{"title":"Snowflake for Developers","url":"https://www.snowflake.com/content/snowflake-site/global/en/developers","currentPage":false}],"fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/well-architected-framework-operational-excellence",":type":"snowflake-site/components/quickstart/quickstart-hero","quickstartHeroFirstCertifiedTag":{"tagText":"Well Architected Framework","tagColor":"#29B5E8","tagPath":"/content/cq:tags/snowflake-site/taxonomy/solution-center/certification/well-architected-framework","tagIcon":""},"isDeveloperGuidesPage":false},"flexible_column_cont":{"id":"flexible-column-container-5f3b4ddb3d","propertiesId":"quickstart-template-main-flexible-container","type":"2-column-75-25","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"id":"container-28ce43e58f","layout":"SIMPLE",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"contentfragment":{"id":"contentfragment-430c225909","paragraphs":["\u003Ch2\u003EOverview\u003C/h2\u003E\n","\u003Cp\u003EOperational Excellence in the Snowflake AI Data Cloud is the practice of\nrunning and monitoring systems to deliver business value and\ncontinuously improve supporting processes and procedures. It focuses on\nmaximizing automation, gaining deep observability into workloads, and\nestablishing a culture of iterative improvement. This empowers your\norganization to innovate faster with data engineering, analytics, AI,\napplications, and collaboration, all while managing risk and optimizing\nfor cost and performance.\u003C/p\u003E\n","\u003Cp\u003EThis pillar emphasizes aligning technology with business outcomes to\nsupport the transformations Snowflake enables. Each Operational\nExcellence principle follows a phase-based structure to reflect an\niterative approach:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EPrepare\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EImplement\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EOperate\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EImprove\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch2\u003EPrinciples\u003C/h2\u003E\n","\u003Ch4\u003EEnsure operational readiness &amp; performance\u003C/h4\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EProactively define performance targets (SLOs), test and validate\ncapacity, and continuously optimize compute engines to ensure\nworkloads meet business expectations.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch4\u003EAutomate infrastructure &amp; maintenance\u003C/h4\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EEliminate manual operational tasks by codifying all infrastructure,\nconfiguration, and data pipelines, leveraging Snowflake's built-in\nautomation for scaling and maintenance.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch4\u003EEnhance observability &amp; issue resolution\u003C/h4\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EGain deep, end-to-end visibility into the platform by capturing and\nanalyzing telemetry, logs, and traces to rapidly diagnose and resolve\nissues.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch4\u003EManage incidents &amp; problems\u003C/h4\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EMinimize the impact of incidents using AI-driven diagnostics,\nimmutable backups for rapid recovery, and automated governance\ncontrols.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch4\u003EEnable collaboration &amp; Secure Sharing\u003C/h4\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EFoster a collaborative data culture by establishing a secure, governed\ninternal marketplace for sharing data, applications, and models.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch4\u003EManage the AI/ML software development lifecycle\u003C/h4\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EImplement a governed, end-to-end MLOps framework to manage models and\nfeatures, from experimentation and fine-tuning to deployment and\nmonitoring, directly within the data cloud.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch4\u003EContinuously improve performance &amp; practices\u003C/h4\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EProactively define performance targets (SLOs), test and validate\ncapacity, and continuously optimize compute engines to ensure\nworkloads meet business expectations.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch2\u003EEnsure operational readiness &amp; performance\u003C/h2\u003E\n","\u003Ch3\u003EOverview\u003C/h3\u003E\n","\u003Cp\u003EEnsuring operational readiness and performance in the Snowflake AI Data\nCloud is about creating a stable, efficient, and scalable environment\nthat consistently meets your business objectives. This involves\nproactively planning for capacity, monitoring system health, optimizing\nquery performance, and implementing robust processes for management and\nsupport. A well-performing and operationally sound platform builds\ntrust, drives user adoption, and maximizes the return on your data\ninvestment. It ensures that your data engineering pipelines run on\nschedule, analytical queries return quickly, AI models are trained and\ndeployed efficiently, and data applications deliver a seamless user\nexperience.\u003C/p\u003E\n","\u003Ch3\u003EFocus areas\u003C/h3\u003E\n","\u003Cp\u003ETo achieve peak performance and operational excellence in Snowflake,\nconcentrate on four key areas that directly impact your workloads.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWorkload management &amp; optimization:\u003C/strong\u003E This involves configuring\nvirtual warehouses to match specific workload demands (e.g.,\nseparating data loading from BI queries), implementing dynamic scaling\npolicies to handle fluctuations in demand, and continuously analyzing\nquery performance to identify and resolve bottlenecks. For AI\nworkloads, this means providing sufficient compute for model training\nwithout disrupting other business-critical analytics.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECapacity &amp; cost management:\u003C/strong\u003E This area focuses on forecasting\nfuture needs based on usage patterns and business growth. It includes\nestablishing budgets, setting alerts for cost anomalies using resource\nmonitors, and employing strategies like query optimization and\nchoosing the right warehouse size to manage consumption effectively.\nThe goal is to ensure you have the resources you need without\nunnecessary expense.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EMonitoring, logging, &amp; alerting:\u003C/strong\u003E A comprehensive monitoring\nstrategy is crucial for proactive management. This involves leveraging\nSnowflake's native monitoring capabilities (e.g., Snowsight\ndashboards, QUERY_HISTORY view) and integrating with third-party\ntools. Key activities include tracking credit consumption, monitoring\nquery queues and latency, and setting up automated alerts for\nperformance degradation, security events, or system errors to enable a\nrapid response from your SRE and engineering teams.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EBusiness Continuity &amp; Disaster Recovery (BCDR):\u003C/strong\u003E This ensures your\ndata and operations are resilient. It involves defining Recovery Time\nObjectives (RTO) and Recovery Point Objectives (RPO) for critical\nworkloads. Key practices include leveraging Snowflake's cross-region\ndata replication and failover/failback features to protect against\nregional outages and implementing regular testing of your BCDR plan to\nensure its effectiveness.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPhase-based activities\u003C/h3\u003E\n","\u003Ch4\u003EPrepare\u003C/h4\u003E\n","\u003Cp\u003EIn this initial phase, the focus is on planning and design to build a\nfoundation for operational excellence.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDefine Service Level Objectives (SLOs):\u003C/strong\u003E Work with business\nstakeholders to define and document clear performance targets for key\nworkloads. For example, specify the maximum acceptable latency for an\nexecutive dashboard (Analytics) or the required completion time for a\ncritical data ingestion pipeline (Data Engineering). Build in the\ntraining and learning plans to enable personas to function at high\neffectiveness.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EEstablish warehouse strategy:\u003C/strong\u003E Design a multi-warehouse strategy\nthat isolates workloads to prevent resource contention. For instance,\ncreate separate virtual warehouses for data loading (ETL/ELT), BI\ntools, data science experimentation (AI), and customer-facing\napplications (Applications).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EPlan for monitoring:\u003C/strong\u003E Identify key performance indicators (KPIs) to\nmonitor, such as query latency, queueing time, credit consumption, and\nstorage growth. Select the monitoring tools (native Snowflake or\nthird-party) and define the alerting strategy.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDesign BCDR Plan:\u003C/strong\u003E Determine RTO/RPO requirements for different\ndatasets and workloads. Based on these, design a replication and\nfailover strategy using Snowflake's features.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch4\u003EImplement\u003C/h4\u003E\n","\u003Cp\u003EDuring implementation, you will build and configure the Snowflake\nenvironment based on the designs from the Prepare phase.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EConfigure virtual warehouses:\u003C/strong\u003E Create the virtual warehouses\ndefined in your strategy, setting appropriate sizes (e.g., X-Small for\nad-hoc queries, Large for data transformation jobs) and auto-scaling\npolicies.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESet up resource monitors:\u003C/strong\u003E Implement resource monitors to control\ncosts and prevent unexpected warehouse usage. Configure monitors to\nsuspend warehouses or send notifications when credit consumption\nreaches a predefined threshold.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EImplement monitoring &amp; alerting:\u003C/strong\u003E Configure Snowsight dashboards or\nintegrate with external tools like Datadog or Grafana to visualize\nKPIs. Set up automated alerts for long-running queries, failed tasks,\nor cost spikes.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EConfigure data replication:\u003C/strong\u003E For BCDR, set up account replication\nfor your primary databases to a secondary Snowflake region.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch4\u003EOperate\u003C/h4\u003E\n","\u003Cp\u003EThe Operate phase focuses on the day-to-day management and maintenance\nof the Snowflake environment.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EProactive monitoring:\u003C/strong\u003E SRE and Engineering teams continuously\nmonitor dashboards and respond to alerts. They actively look for\nperformance degradation, resource contention, and signs of system\nstress.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EQuery performance tuning:\u003C/strong\u003E Regularly review query history to\nidentify inefficient or long-running queries. Use the Query Profile to\ndiagnose bottlenecks (e.g., table scans, &quot;exploding&quot; joins) and work\nwith developers to optimize SQL code.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECost management:\u003C/strong\u003E Review daily and monthly credit consumption\nagainst budgets. Analyze usage patterns to identify opportunities for\ncost savings, such as shutting down idle warehouses or resizing\nunderutilized ones.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EExecute BCDR drills:\u003C/strong\u003E Periodically conduct failover tests to ensure\nthe disaster recovery plan works as expected and that the team is\nprepared to execute it.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch4\u003EImprove\u003C/h4\u003E\n","\u003Cp\u003EThis phase is about continuous improvement through analysis, learning,\nand refinement.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EConduct performance reviews:\u003C/strong\u003E Hold regular (e.g., quarterly)\nreviews of workload performance against the established SLOs. Analyze\ntrends in query performance and resource utilization. Feed persona\nknowledge gaps back into the training and development program.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERefine warehouse configuration:\u003C/strong\u003E Based on usage data, adjust\nwarehouse sizes, scaling policies, and workload assignments. For\nexample, if a data science warehouse is consistently underutilized,\nconsider downsizing it or merging it with another non-critical\nworkload.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EOptimize data structures:\u003C/strong\u003E Analyze query patterns to identify\nopportunities for performance gains through data modeling\nimprovements, such as implementing clustering keys on large tables to\nimprove query pruning.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EUpdate BCDR Plan:\u003C/strong\u003E Incorporate lessons learned from BCDR drills and\nevolving business requirements into the disaster recovery plan.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003ERecommendations\u003C/h3\u003E\n","\u003Cp\u003EHere are the key recommendations focused specifically on ensuring\noperational readiness and performance for your Snowflake environment.\u003C/p\u003E\n","\u003Ch4\u003EIsolate workloads to guarantee performance\u003C/h4\u003E\n","\u003Cp\u003EYour top priority for predictable performance is to prevent different\njobs from competing for the same resources. A heavy data science task\nshould never slow down a critical business dashboard.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWorkload isolation\u003C/strong\u003E ensures that each process gets the compute it\nneeds without interference.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor Architects and Engineering Leads:\u003C/strong\u003E Define a clear warehouse\nstrategy by categorizing your workloads (e.g., INGESTION,\nTRANSFORMATION, ANALYTICS, DATA_SCIENCE). Mandate this separation as a\ncore design principle.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor Engineers and SREs:\u003C/strong\u003E Create distinct virtual warehouses for\neach category. Use Snowflake's \u003Cstrong\u003ERole-Based Access Control (RBAC)\u003C/strong\u003E to\nenforce this strategy. For example, grant your ETL tool's service role\nUSAGE permission \u003Cem\u003Eonly\u003C/em\u003E on the INGESTION_WH. This simple step makes it\nimpossible for an ingestion process to impact analytics performance.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EFor additional information, review the best practices in \u003Ca href=\"https://docs.snowflake.com/en/user-guide/warehouses-considerations\"\u003EVirtual\nWarehouse\nConsiderations\u003C/a\u003E.\u003C/p\u003E\n","\u003Ch4\u003EContinuously tune warehouse size for optimal performance\u003C/h4\u003E\n","\u003Cp\u003EChoosing the right warehouse size is a balancing act. Too small, and\nqueries will run slowly or fail; too large, and you're wasting\nresources. The key is to use data, not guesswork, to find the sweet\nspot.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor Developers (Engineering &amp; Data Science):\u003C/strong\u003E When building a new\njob, \u003Cstrong\u003Estart with a small warehouse\u003C/strong\u003E (X-SMALL or SMALL). After a test\nrun, immediately open the \u003Cstrong\u003EQuery Profile\u003C/strong\u003E in Snowsight. Look for\nsignificant time spent on \u003Cstrong\u003E&quot;Local or Remote Disk I/O.&quot;\u003C/strong\u003E This is\ncalled &quot;spilling,&quot; and it's a clear sign the warehouse is too small\nfor the data it's processing. Test with the next size up until\nspilling is minimal.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor SREs:\u003C/strong\u003E Proactively monitor for performance issues. Query the\nSNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_LOAD_HISTORY view to find warehouses\nwith high AVG_RUNNING and AVG_QUEUED_LOAD times. This data points you\ndirectly to overloaded warehouses that are creating bottlenecks.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003ELearn to diagnose bottlenecks using the \u003Ca href=\"https://docs.snowflake.com/en/user-guide/ui-query-profile\"\u003EQuery\nProfile\u003C/a\u003E\nand monitor load with the views in \u003Ca href=\"https://docs.snowflake.com/en/user-guide/warehouses-monitor-load\"\u003EMonitoring Warehouse\nLoad\u003C/a\u003E.\u003C/p\u003E\n","\u003Ch4\u003EAutomate monitoring and alerting\u003C/h4\u003E\n","\u003Cp\u003EYou can't achieve operational readiness by manually checking dashboards.\nYou need an automated system that alerts you to problems \u003Cem\u003Ebefore\u003C/em\u003E your\nusers report them.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor SRE and Operations teams:\u003C/strong\u003E\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EIdentify critical scenarios:\u003C/strong\u003E Define what constitutes a\nproblem, such as a data loading task failing, a query running\nlonger than 30 minutes, or a sudden spike in warehouse queuing.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EBuild detection with Snowflake Tasks:\u003C/strong\u003E Write SQL queries\nagainst the SNOWFLAKE.ACCOUNT_USAGE views (like QUERY_HISTORY and\nTASK_HISTORY) to detect these scenarios.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESchedule the queries to run automatically\u003C/strong\u003E using a CREATE TASK\nstatement. For instance, a task can run every five minutes to look\nfor failed tasks.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ETrigger alerts:\u003C/strong\u003E From the task, use an \u003Cstrong\u003EExternal Function\u003C/strong\u003E to\nsend a notification directly to your team's incident management\ntool, like PagerDuty or Slack.\u003C/p\u003E\n\u003C/li\u003E\u003C/ol\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EBuild your automated alert system by following the guide \u003Ca href=\"https://docs.snowflake.com/en/user-guide/tasks-intro\"\u003EIntroduction to\nTasks\u003C/a\u003E.\u003C/p\u003E\n","\u003Ch4\u003EValidate your recovery plan with regular drills\u003C/h4\u003E\n","\u003Cp\u003EAn untested disaster recovery (BCDR) plan is just a theory. Operational\nreadiness means having a proven, practiced process to restore service\nafter a major incident.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor Architects and SREs:\u003C/strong\u003E Schedule and lead BCDR drills at least\ntwice a year. After providing notice to stakeholders, initiate the\nfailover using a single command: ALTER DATABASE my_db ENABLE FAILover\nTO ACCOUNT my_secondary_account;.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor Application and Engineering Teams:\u003C/strong\u003E Actively participate in the\ndrill. Once the failover is complete, connect your applications and\ntools to Snowflake (the connection URL doesn't change) and run a\npre-written script to validate data integrity and system\nfunctionality. Your feedback is crucial for refining the recovery\nprocess. This &quot;muscle memory&quot; ensures your team can execute flawlessly\nduring a real emergency.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EFind the specific commands and procedures in the guide for \u003Ca href=\"https://docs.snowflake.com/en/user-guide/account-replication-intro\"\u003EDatabase\nReplication and\nFailover/Failback\u003C/a\u003E.\u003C/p\u003E\n","\u003Ch3\u003EPersona responsibilities (RACI chart)\u003C/h3\u003E\n","\u003Cp\u003EThe table below outlines the roles and responsibilities for ensuring\noperational readiness and performance.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ELegend:\u003C/strong\u003E \u003Cstrong\u003ER\u003C/strong\u003E - Responsible, \u003Cstrong\u003EA\u003C/strong\u003E - Accountable, \u003Cstrong\u003EC\u003C/strong\u003E - Consulted,\n\u003Cstrong\u003EI\u003C/strong\u003E - Informed\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivity\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EC-Level (CIO/CDO/CFO)\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EChief Enterprise Architect\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EEngineering\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EData Science\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESecurity\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESRE\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDefine business SLOs &amp; budgets\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDesign warehouse strategy\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EImplement &amp; configure warehouses\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EMonitor cost &amp; performance\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EOptimize queries &amp; pipelines\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDefine &amp; test BCDR plan\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ERespond to performance incidents\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch2\u003EAutomate infrastructure &amp; maintenance\u003C/h2\u003E\n","\u003Ch3\u003EOverview\u003C/h3\u003E\n","\u003Cp\u003EAutomating infrastructure and maintenance is crucial for achieving\nefficiency, consistency, and scalability in the Snowflake AI Data Cloud.\nBecause Snowflake is a fully managed service, automation efforts focus\nless on provisioning underlying servers and more on managing the\nconfiguration, workloads, and ecosystem surrounding your data. This\nframework provides principles and best practices for automating the\nsetup, deployment, and operation of your Snowflake environment to\nsupport data engineering, analytics, AI, and application workloads\nreliably and at scale.\u003C/p\u003E\n","\u003Ch3\u003EFocus areas\u003C/h3\u003E\n","\u003Cp\u003ETo effectively automate your Snowflake environment, concentrate on four\nkey areas. These areas provide a structured approach to managing your\ndata ecosystem programmatically, reducing manual effort and minimizing\nhuman error.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EInfrastructure as Code (IaC):\u003C/strong\u003E This is the practice of managing and\nprovisioning your Snowflake environment through machine-readable\ndefinition files rather than manual setup. This includes creating and\nmanaging databases, schemas, warehouses, roles, users, and resource\nmonitors declaratively. This ensures environments are consistent,\nrepeatable, and version-controlled.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECI/CD for data &amp; applications:\u003C/strong\u003E Continuous Integration and\nContinuous Deployment (CI/CD) automates the build, test, and\ndeployment of your data pipelines and applications. For Snowflake,\nthis means automating the deployment of SQL scripts, dbt models,\nSnowpark jobs (Python, Java, Scala), AI/ML models, and Snowflake\nNative Apps. This practice accelerates development cycles and improves\nthe reliability of changes.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EObservability &amp; monitoring automation:\u003C/strong\u003E This involves automatically\ncollecting, analyzing, and acting upon telemetry data from Snowflake.\nThis includes tracking query performance, credit consumption, storage\ncosts, and security access patterns. Automated monitoring provides\nproactive insights into the health, performance, and cost of your\nworkloads, triggering alerts or optimization routines.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAutomated governance &amp; security:\u003C/strong\u003E This area focuses on\nprogrammatically enforcing your security and governance policies. It\nincludes automating user and role provisioning (Role-Based Access\nControl - RBAC), applying data masking policies, monitoring for\ncompliance deviations, and managing network policies and integrations.\nAutomation ensures that security is consistently applied and auditable\nacross the platform.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPhase-based activities\u003C/h3\u003E\n","\u003Cp\u003EAdopting automation is a journey. The following activities are organized\nby phase to provide a clear roadmap from initial preparation to\ncontinuous improvement, aligned with our defined focus areas.\u003C/p\u003E\n","\u003Ch3\u003EPrepare\u003C/h3\u003E\n","\u003Cp\u003EThe \u003Cstrong\u003EPrepare\u003C/strong\u003E phase is about planning and laying the foundation for\nsuccessful automation.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EFocus Area\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivities\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EInfrastructure as Code (IaC)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Evaluate and select an IaC tool (e.g., Terraform, Schemachange).&lt;br&gt;- Define and document naming conventions and standards for all Snowflake objects.&lt;br&gt;- Establish a Git repository structure for managing your IaC configurations.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECI/CD for data &amp; applications\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Choose CI/CD tools (e.g., GitHub Actions, Jenkins, GitLab CI) that integrate with your code repositories.&lt;br&gt;- Define a branching and deployment strategy (e.g., GitFlow) for promoting changes from development to production.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EObservability &amp; monitoring\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Identify key metrics for cost, performance, and security that need to be tracked. Evaluate tools for collecting and visualizing data from the Snowflake \u003Ccode\u003EACCOUNT_USAGE\u003C/code\u003E schema.&lt;br&gt;- Define initial alert thresholds for critical events like high credit usage or long-running queries.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EAutomated governance\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Define your RBAC model and map business roles to Snowflake roles.&lt;br&gt;- Document your data classification standards and corresponding security controls (e.g., masking policies for PII).\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003EImplement\u003C/h3\u003E\n","\u003Cp\u003EThe Implement phase involves the initial build-out and rollout of your\nautomation scripts and pipelines.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EFocus Area\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivities\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EInfrastructure as Code (IaC)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Develop initial IaC modules to manage core objects: roles, users, warehouses, and databases.&lt;br&gt;- Create a sandbox environment entirely provisioned through your IaC scripts to validate the process.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECI/CD for data &amp; applications\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Build a starter CI/CD pipeline for a single data engineering (e.g., dbt) or Snowpark project.&lt;br&gt;- This pipeline should automate code linting, unit testing, and deployment to a development environment.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EObservability &amp; monitoring\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Develop scripts or configure tools to automatically pull data from \u003Ccode\u003EACCOUNT_USAGE\u003C/code\u003E into a monitoring dashboard.&lt;br&gt;- Configure basic automated alerts for budget overruns (via resource monitors) and warehouse contention.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EAutomated governance\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Write scripts to provision your defined RBAC model in Snowflake. &lt;br&gt;- Implement initial dynamic data masking policies on a non-production table containing sensitive data.\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003EOperate\u003C/h3\u003E\n","\u003Cp\u003EThe Operate phase focuses on using and managing your automated systems\nfor day-to-day activities.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EFocus Area\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivities\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EInfrastructure as Code (IaC)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Use your IaC repository and pull-request workflow as the sole method for making environmental changes.&lt;br&gt;- Run periodic checks to detect any manual changes (&quot;drift&quot;) that deviate from the code-defined state.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECI/CD for data &amp; applications\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- All code changes for data pipelines, AI models, and applications are deployed to production via the automated CI/CD pipeline.&lt;br&gt;- Use automated testing gates to prevent regressions from reaching production.&lt;br&gt;- Implement fix forward or rollback for defects.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EObservability &amp; monitoring\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Regularly review automated cost and performance dashboards.&lt;br&gt;- Integrate automated alerts with your team's communication channels (e.g., Slack, PagerDuty).\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EAutomated governance\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Run automated quarterly access reviews and entitlement reports.&lt;br&gt;- Automate the process of granting and revoking access based on requests from your identity provider (e.g., Okta, Azure AD) via SCIM.\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003EImprove\u003C/h3\u003E\n","\u003Cp\u003EThe Improve phase is about refining and optimizing your automation to\nincrease efficiency and capability.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EFocus Area\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivities\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EInfrastructure as Code (IaC)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Refactor IaC modules for greater reusability and simplicity.&lt;br&gt;- Implement automated validation and policy-as-code checks (e.g., ensuring all warehouses have auto-suspend enabled) before applying changes.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECI/CD for data &amp; applications\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Optimize pipeline performance to reduce deployment times.&lt;br&gt;- Introduce more sophisticated testing, such as data quality tests (e.g., using dbt tests) and integration tests within the pipeline.&lt;br&gt;- Explore zero-downtime deployment strategies for applications and stored procedures.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EObservability &amp; monitoring\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Implement automated cost optimization actions, such as automatically resizing warehouses based on historical usage patterns.&lt;br&gt;- Use machine learning to forecast future credit usage and detect performance anomalies.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EAutomated governance\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Automate the tagging of data objects based on their contents to streamline governance.&lt;br&gt;- Develop automated routines to scan for and mask newly discovered sensitive data, ensuring continuous compliance.\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003ERecommendations\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EStart small and iterate:\u003C/strong\u003E Don't try to automate everything at once.\nBegin with a single, high-impact area, such as role management via IaC\nor deploying a single dbt project with CI/CD. Prove the value and\nexpand from there.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ETreat your platform code like application code:\u003C/strong\u003E All scripts,\nconfigurations, and definitions (IaC, CI/CD, etc.) should be stored in\na version control system like Git. Use pull requests and code reviews\nto manage changes. Decide early on rollback versus fix forward.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EEmpower teams with self-service:\u003C/strong\u003E The goal of automation is to\nenable teams (Data Engineering, AI, Analytics) to provision the\nresources they need safely and efficiently without waiting for a\ncentral team. Well-designed automation provides guardrails, not\nroadblocks.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EPrioritize cost and performance monitoring:\u003C/strong\u003E The most immediate\nbenefits of automation often come from gaining control over\nconsumption. Automate the tracking of warehouse credit usage and query\nperformance to identify optimization opportunities early.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EIntegrate security into your pipelines:\u003C/strong\u003E Shift security left by\nembedding automated checks into your CI/CD process. This includes\nscanning for insecure code patterns, checking for overly permissive\ngrants, and ensuring compliance with organizational policies before\ndeployment.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPersona responsibilities (RACI chart)\u003C/h3\u003E\n","\u003Cp\u003EThis RACI (Responsible, Accountable, Consulted, Informed) matrix\nclarifies the roles and responsibilities for automation activities\nacross different personas.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ELegend:\u003C/strong\u003E \u003Cstrong\u003ER\u003C/strong\u003E = Responsible, \u003Cstrong\u003EA\u003C/strong\u003E = Accountable, \u003Cstrong\u003EC\u003C/strong\u003E = Consulted,\n\u003Cstrong\u003EI\u003C/strong\u003E = Informed\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EActivity\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EC-Level (CIO/CDO)\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EChief Architect\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EEngineering / SRE\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EData Science\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003ESecurity\u003C/strong\u003E\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EDefining automation strategy &amp; tooling\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EDeveloping IaC modules &amp; scripts\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EBuilding CI/CD pipelines\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EManaging environments via IaC\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EDeploying workloads via CI/CD\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EDefining &amp; implementing monitoring alerts\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EAutomating governance &amp; access controls\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EReviewing automated cost/usage reports\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch2\u003EEnhance Observability &amp; Issue Resolution\u003C/h2\u003E\n","\u003Ch3\u003EOverview\u003C/h3\u003E\n","\u003Cp\u003EObservability in the Snowflake AI Data Cloud is about gaining deep,\nactionable insights into your platform's health, performance, cost, and\nsecurity. It goes beyond simple monitoring by providing the context\nneeded to understand \u003Cem\u003Ewhy\u003C/em\u003E something is happening, enabling you to move\nfrom reactive problem-fixing to proactive optimization. Effective\nobservability ensures your data engineering pipelines are reliable, your\nanalytics are fast and accurate, your AI models are performant, and your\napplications are secure. This framework provides a structured approach\nto building a comprehensive observability strategy that delivers trust\nand maximizes the value of your Snowflake investment for all\nstakeholders, from engineers to the C-suite.\u003C/p\u003E\n","\u003Ch3\u003EFocus areas\u003C/h3\u003E\n","\u003Cp\u003EWe'll organize our observability strategy around four key focus areas.\nThese pillars ensure a holistic view of your Snowflake environment,\ncovering everything from cost efficiency to data integrity.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECost &amp; performance intelligence:\u003C/strong\u003E This involves monitoring resource\nconsumption and query execution to optimize for both speed and spend.\nThe goal is to maximize performance while maintaining predictable\ncosts and providing clear chargeback/showback to business units.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWorkload health &amp; reliability:\u003C/strong\u003E This focuses on the end-to-end\noperational status of all workloads. It involves tracking the success\nand performance of data ingestion, transformation jobs, analytics\nqueries, and AI/ML model execution to ensure they meet service-level\nobjectives (SLOs).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESecurity &amp; access analytics:\u003C/strong\u003E This is about safeguarding your data\nby continuously monitoring who is accessing what, when, and how. It\nincludes tracking access patterns, identifying potential threats, and\nensuring compliance with governance policies.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EData integrity &amp; lineage:\u003C/strong\u003E This ensures the data itself is\naccurate, fresh, and trustworthy. It involves monitoring data quality\nmetrics, tracking data lineage from source to consumption, and quickly\nidentifying the root cause of data-related issues.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPhase-based activities\u003C/h3\u003E\n","\u003Cp\u003EA successful observability strategy is implemented incrementally. The\nfollowing phases provide a roadmap from initial preparation to\ncontinuous improvement.\u003C/p\u003E\n","\u003Ch4\u003EPrepare\u003C/h4\u003E\n","\u003Cp\u003EThis foundational phase is about defining what &quot;good&quot; looks like by\nestablishing goals, metrics, and ownership before implementing any\ntools.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EFocus area\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivities\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECost &amp; performance intelligence\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Define cost allocation strategy: Establish a consistent tagging methodology for users, roles, and warehouses to enable accurate chargeback.&lt;br&gt;- Establish performance baselines: Identify key queries and workloads (e.g., critical dashboard refreshes, ETL jobs) and document their expected runtimes and credit consumption.&lt;br&gt;- Select tooling: Evaluate whether to use native Snowflake features (Snowsight, \u003Ccode\u003EACCOUNT_USAGE\u003C/code\u003E views), third-party observability platforms, or a combination.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EWorkload health &amp; reliability\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Define key Service Level Objectives (SLOs): For each workload, define measurable reliability targets. Examples: Snowpipe data freshness within 5 minutes; critical data transformation (dbt) jobs complete by 6 AM.&lt;br&gt;- Map critical data paths: Document the key data flows for your most important analytics, applications, and AI models.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESecurity &amp; access analytics\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Define sensitive data &amp; roles: Classify sensitive data objects and map the roles and users that should have access.&lt;br&gt;- Establish alerting policies: Define what constitutes a security incident (e.g., unauthorized access attempts, privilege escalation, data exfiltration patterns) that requires an immediate alert.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EData integrity &amp; lineage\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- Identify Critical Data Elements (CDEs): Pinpoint the most vital datasets that power executive dashboards, financial reporting, or production AI models.&lt;br&gt;- Define data quality rules: For CDEs, define rules for key metrics like freshness, completeness, and validity (e.g., \u003Ccode\u003Eorder_date\u003C/code\u003E cannot be in the future).\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch4\u003EImplement\u003C/h4\u003E\n","\u003Cp\u003EIn this phase, you'll configure the tools and processes defined during\npreparation to start collecting and visualizing observability data.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EFocus area\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivities\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECost &amp; performance intelligence\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- \u003Cstrong\u003EConfigure resource monitors:\u003C/strong\u003E set up warehouse-level monitors to prevent budget overruns by suspending warehouses or sending notifications at defined credit thresholds.&lt;br&gt;- \u003Cstrong\u003EBuild foundational dashboards:\u003C/strong\u003E create Snowsight dashboards to visualize credit usage by warehouse/tag, identify long-running queries (\u003Ccode\u003EQUERY_HISTORY\u003C/code\u003E), and monitor warehouse queuing.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EWorkload health &amp; reliability\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- \u003Cstrong\u003EImplement error notifications:\u003C/strong\u003E configure notifications for failed tasks (\u003Ccode\u003ESYSTEM$SEND_EMAIL\u003C/code\u003E) or Snowpipe copy errors to immediately alert the responsible teams.&lt;br&gt;- \u003Cstrong\u003EMonitor data ingestion:\u003C/strong\u003E use the \u003Ccode\u003ECOPY_HISTORY\u003C/code\u003E and \u003Ccode\u003EPIPE_USAGE_HISTORY\u003C/code\u003E views to track the latency and health of data loading processes.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESecurity &amp; access analytics\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- \u003Cstrong\u003EEnable access monitoring:\u003C/strong\u003E build dashboards on top of the \u003Ccode\u003EACCESS_HISTORY\u003C/code\u003E and \u003Ccode\u003ELOGIN_HISTORY\u003C/code\u003E views to visualize user login patterns, query activity on sensitive tables, and privilege grants.&lt;br&gt;- \u003Cstrong\u003ESet up security alerts:\u003C/strong\u003E** implement Snowflake alerts to trigger notifications for defined security events, such as a user being granted the \u003Ccode\u003EACCOUNTADMIN\u003C/code\u003E role.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EData integrity &amp; lineage\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E- \u003Cstrong\u003EDeploy data quality tests:\u003C/strong\u003E implement data quality checks as part of your data transformation pipeline (e.g., using dbt tests) that run on a schedule.&lt;br&gt;- \u003Cstrong\u003EUtilize object tagging for lineage:\u003C/strong\u003E apply tags to tables and columns to create a basic, searchable framework for tracking data lineage.\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch4\u003EOperate\u003C/h4\u003E\n","\u003Cp\u003EThis phase focuses on the day-to-day use of the implemented\nobservability systems to monitor health and resolve issues.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EFocus area\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivities\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECost &amp; performance intelligence\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EConduct regular cost reviews:\u003C/strong\u003E Hold weekly or bi-weekly reviews with engineering and finance teams to analyze spending trends and identify optimization opportunities.&lt;br&gt;\u003Cstrong\u003ETriage performance issues:\u003C/strong\u003E Use query history and query profiles to investigate and troubleshoot slow-running queries, identifying bottlenecks like disk spilling or inefficient joins.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EWorkload health &amp; reliability\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003ERespond to workload alerts:\u003C/strong\u003E Triage and resolve alerts for failed tasks, data loading errors, or SLO breaches.&lt;br&gt;\u003Cstrong\u003EManage incidents:\u003C/strong\u003E Follow a defined incident management process for critical failures, including communication, root cause analysis (RCA), and post-mortems.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESecurity &amp; access analytics\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EReview access logs:\u003C/strong\u003E Periodically audit access to sensitive data, investigate anomalous queries, and ensure access patterns align with business needs.&lt;br&gt;- Investigate security alerts: When an alert is triggered, follow a security runbook to investigate the potential threat, determine its impact, and remediate as needed.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EData integrity &amp; lineage\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EInvestigate data quality failures:\u003C/strong\u003E When a data quality test fails, use lineage information to trace the issue back to its source and notify the data producers.&lt;br&gt;\u003Cstrong\u003ECommunicate data incidents:\u003C/strong\u003E Proactively inform data consumers when a known data quality issue impacts their dashboards or applications.\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch4\u003EImprove\u003C/h4\u003E\n","\u003Cp\u003EThis final phase is about moving from reactive to proactive operations\nby analyzing trends, automating responses, and continuously refining\nyour observability strategy.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EFocus area\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivities\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECost &amp; performance intelligence\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EAutomate warehouse scaling:\u003C/strong\u003E Use historical workload patterns to right-size warehouses or implement a more dynamic scaling strategy for spiky workloads.&lt;br&gt; \u003Cstrong\u003EOptimize high-cost queries:\u003C/strong\u003E Proactively identify the top credit-consuming queries each month and assign them to engineering teams for performance tuning or rewriting.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EWorkload health &amp; reliability\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EPerform trend analysis:\u003C/strong\u003E Analyze historical task and pipe error rates to identify systemic issues in data pipelines and prioritize fixes.&lt;br&gt;\u003Cstrong\u003ERefine SLOs and alerts:\u003C/strong\u003E Adjust SLO thresholds based on historical performance and business needs. Tune alerts to reduce noise and false positives.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESecurity &amp; access analytics\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EAutomate access reviews:\u003C/strong\u003E Develop automated workflows to periodically require business owners to certify who has access to their data, reducing manual toil for security teams.&lt;br&gt; \u003Cstrong\u003EEnhance threat detection models:\u003C/strong\u003E Use historical access data to build simple anomaly detection models (e.g., using Snowpark) to identify suspicious behavior that deviates from a user's normal baseline.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EData integrity &amp; lineage\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EImplement automated lineage:\u003C/strong\u003E Adopt tools that automatically parse SQL from QUERY_HISTORY to generate column-level lineage, dramatically speeding up impact analysis and root cause identification.&lt;br&gt;\u003Cstrong\u003EExpand data quality coverage:\u003C/strong\u003E Use insights from data incidents to expand data quality monitoring to more datasets across the platform.\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003ERecommendations\u003C/h3\u003E\n","\u003Cp\u003EThe following recommendations provide actionable steps for implementing\na robust observability and issue resolution strategy on Snowflake. They\nare designed to guide interactions between teams and leverage specific\nplatform features.\u003C/p\u003E\n","\u003Ch3\u003EEstablish a centralized observability data model\u003C/h3\u003E\n","\u003Cp\u003EInstead of allowing teams to query raw metadata independently, create a\ngoverned, centralized foundation for all observability data. This\nensures consistency and simplifies access control.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor Enterprise Architects &amp; SREs:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E In a dedicated OBSERVABILITY database, create a schema\n(e.g., MONITORING). Use a service role with IMPORTED PRIVILEGES on the\nSNOWFLAKE database to create \u003Cstrong\u003Esecure views\u003C/strong\u003E on top of critical\nACCOUNT_USAGE views. This decouples your monitoring from the\nunderlying Snowflake schema and provides a stable interface.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EKey views to include:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EQUERY_HISTORY for performance analysis.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EWAREHOUSE_METERING_HISTORY for cost and load analysis.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EACCESS_HISTORY and LOGIN_HISTORY for security forensics.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003ETASK_HISTORY and PIPE_USAGE_HISTORY for data engineering workload\nhealth.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EAUTOMATIC_CLUSTERING_HISTORY and MATERIALIZED_VIEW_REFRESH_HISTORY\nfor storage and performance optimization.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor Engineering &amp; Data Science teams:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E Build all monitoring dashboards and alerts exclusively\nfrom these centralized, secure views. This ensures that everyone, from\na data engineer debugging a pipeline to a CIO reviewing costs, is\nlooking at the same source of truth.\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EEnrich observability data with contextual tagging\u003C/h3\u003E\n","\u003Cp\u003ERaw metrics like &quot;credit usage&quot; or &quot;query runtime&quot; are not actionable\nwithout context. A consistent tagging strategy is crucial for quickly\nisolating the source of any issue.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor Chief Architects &amp; Engineering Leads:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E Define and enforce a mandatory \u003Cstrong\u003EObject Tagging\u003C/strong\u003E policy\nfor all key objects. The policy should require tags that map directly\nto your operational structure, such as project_name, cost_center,\nworkload_type: [engineering, analytics, ai, application], and\nowner_email.\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor SREs &amp; on-call engineers:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E During an incident, use tags as the primary filtering\nmechanism for issue resolution.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECost spike:\u003C/strong\u003E If a \u003Cstrong\u003Eresource monitor\u003C/strong\u003E alert triggers,\nimmediately filter the WAREHOUSE_METERING_HISTORY view by tags to\nidentify which project_name or workload_type caused the overage.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EPerformance degradation:\u003C/strong\u003E If a dashboard is slow, filter\nQUERY_HISTORY by the workload_type: analytics tag and the relevant\nwarehouse to find the long-running queries without the noise from\nother workloads.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EImplement persona-driven observability dashboards\u003C/h3\u003E\n","\u003Cp\u003EA single dashboard cannot serve everyone. Build a tiered set of\ndashboards in Snowsight that provides the right level of detail for each\npersona, enabling them to answer their specific questions quickly.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor SREs &amp; platform owners:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E Create a &quot;Platform Health&quot; triage dashboard. This is the\nfirst place an on-call engineer looks. It should include:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EActive Snowflake Alerts.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003ERecent task failures from TASK_HISTORY.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EHigh-latency data loads from PIPE_USAGE_HISTORY.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EWarehouse queuing and spilling metrics.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EQueries with error codes from the last hour.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor Engineering &amp; Data Science leads:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E Build &quot;Workload Performance&quot; dashboards for your specific\ndomains.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EData Engineering:\u003C/strong\u003E Visualize task dependencies (your DAG) and\ncolor-code them by status (SUCCEEDED/FAILED) from \u003Cstrong\u003ETASK_HISTORY\u003C/strong\u003E.\nTrack credit consumption per pipeline.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAI/ML:\u003C/strong\u003E Monitor the execution time and credit usage of Snowpark\nmodel training jobs. Instrument Snowpark Python code to log metrics\nto a Snowflake table and visualize them here.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor C-Level stakeholders (CIO/CFO):\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E Create a high-level &quot;Executive Summary&quot; dashboard showing:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EPlatform-wide credit consumption vs. forecast.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003ECost breakdown by business unit (using tags).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EKey SLO attainment (e.g., &quot;99.9% of critical data pipelines\ncompleted on time&quot;).\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EAutomate detection and response with alerts &amp; tasks\u003C/h3\u003E\n","\u003Cp\u003EMove from passive monitoring to active, automated observability. Use\nSnowflake's native features to not only detect issues but also to notify\nthe right people and, where appropriate, trigger corrective actions.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EFor Security &amp; SRE teams:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E Implement the &quot;Detect, Notify, Remediate&quot; pattern using\nSnowflake's serverless features.\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDetect:\u003C/strong\u003E Create \u003Cstrong\u003ESnowflake Alerts\u003C/strong\u003E that periodically run a\nquery to check for an issue.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cem\u003ESecurity Example:\u003C/em\u003E CREATE ALERT suspicious_grant_alert ... IF\n(EXISTS (SELECT 1 FROM ... QUERY_HISTORY WHERE query_text ILIKE\n'GRANT ACCOUNTADMIN%')) ...\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cem\u003EPerformance Example:\u003C/em\u003E An alert that checks QUERY_HISTORY for\nqueries running longer than 1 hour.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ENotify:\u003C/strong\u003E Configure the Alert's action to call a \u003Cstrong\u003ENotification\nIntegration\u003C/strong\u003E that sends a detailed message to a Slack channel,\nPagerDuty, or email via SYSTEM$SEND_EMAIL. The message should\ninclude context, like the QUERY_ID or USER_NAME, to accelerate\ntriage.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERemediate (with caution):\u003C/strong\u003E For well-understood, low-risk\nproblems, have the Alert's action call a stored procedure. For\nexample, an alert for a long-running, non-critical query could\ncall a procedure that cancels it using SYSTEM$CANCEL_QUERY.\u003C/p\u003E\n\u003C/li\u003E\u003C/ol\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPersona responsibilities (RACI chart)\u003C/h3\u003E\n","\u003Cp\u003EThis RACI (Responsible, Accountable, Consulted, Informed) matrix\nclarifies the roles and responsibilities for key observability\nactivities across different teams.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ELegend:\u003C/strong\u003E \u003Cstrong\u003ER\u003C/strong\u003E = Responsible, \u003Cstrong\u003EA\u003C/strong\u003E = Accountable, \u003Cstrong\u003EC\u003C/strong\u003E = Consulted,\n\u003Cstrong\u003EI\u003C/strong\u003E = Informed\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivity\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EC-Level (CIO/CDO/CFO)\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EChief Architect\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EEngineering\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EData Science\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESecurity\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESRE\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDefine cost &amp; security policies\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EImplement &amp; manage budgets (resource monitors)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EBuild &amp; maintain observability dashboards\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EInvestigate &amp; resolve\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EMonitor &amp; triage workload failures (ETL, AI)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDefine &amp; monitor data quality rules\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EInvestigate &amp; remediate security incidents\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EConduct access &amp; entitlement reviews\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch2\u003EManage incidents &amp; problems\u003C/h2\u003E\n","\u003Ch3\u003EOverview\u003C/h3\u003E\n","\u003Cp\u003EEffective incident and problem management is the cornerstone of a\nreliable data platform. In the Snowflake AI Data Cloud, where critical\ndata pipelines, analytics, AI workloads, and applications depend on high\navailability and performance, a structured approach to handling\ndisruptions is essential. The primary goal is to maintain the trust of\nyour stakeholders by ensuring that data services are available,\nperformant, and deliver accurate results.\u003C/p\u003E\n","\u003Cp\u003EThis framework addresses two distinct but related disciplines:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EIncident Management:\u003C/strong\u003E Focuses on the immediate restoration of\nservice following an unplanned disruption. The objective is to\nminimize business impact and reduce the Mean Time to Resolution\n(MTTR). In Snowflake, an incident could be a stalled data engineering\npipeline, a severely degraded analytics dashboard, or an application\nquery failure.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EProblem Management:\u003C/strong\u003E Focuses on identifying and remediating the\nunderlying root cause of one or more incidents. By addressing the\nsource of the issue, problem management aims to prevent future\nincidents from occurring, thereby increasing the overall stability and\nresilience of the platform. Build in AI Models to automatically\nremediate incidents, predict issues and track anomalies.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EThis section provides a structured approach for managing the entire\nincident lifecycle within the Snowflake AI Data Cloud&mdash;from proactive\ndetection and rapid response to thorough root cause analysis. Adopting\nthese practices builds confidence in your data platform, ensuring it\nremains a dependable foundation for critical business decisions and\ninnovation.\u003C/p\u003E\n","\u003Ch3\u003E\u003Cstrong\u003EFocus areas\u003C/strong\u003E\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDetection &amp; alerting\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003EThis is the &quot;smoke alarm&quot; for your data platform. The goal is to\nidentify deviations from normal behavior as quickly as possible, often\nbefore users are impacted. This involves instrumenting key Snowflake\nmetrics, such as query execution time, warehouse load, and data latency,\nand setting up automated alerts to notify the on-call team of potential\nissues.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EResponse &amp; Triage\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003EWhen an alert fires, this is the initial assessment and firefighting\nphase. The focus is on understanding the impact (&quot;who is affected?&quot;),\ndetermining the severity (&quot;how bad is it?&quot;), and executing immediate\nactions to stabilize the service. In Snowflake, this could involve\ncanceling a runaway query, resizing a virtual warehouse, or\ncommunicating the initial findings to stakeholders.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EResolution &amp; recovery\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003EThis area focuses on fully resolving the incident and returning the\nservice to a healthy state. It involves deeper diagnosis to find a fix\nor a workaround that restores functionality for all affected users. This\nphase concludes when the immediate impact is over and the service is\noperating under normal conditions again.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERoot Cause Analysis (RCA)\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003EOnce the immediate fire is out, the problem management process begins.\nRCA is the systematic investigation to uncover the fundamental cause of\nan incident, not just the symptoms. The objective is to ask &quot;why&quot;\nrepeatedly until the core issue is identified, such as an inefficient\nquery pattern, a flawed data model, or an inadequate warehouse\nconfiguration.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EReadiness &amp; Preparation\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003EThis is the proactive area focused on learning from past incidents and\nimproving future responses. It involves creating and refining runbooks\nfor common failure scenarios, conducting incident response drills, and\nensuring roles and communication plans are clearly defined. A\nwell-prepared team can significantly reduce the time it takes to resolve\nfuture incidents.\u003C/p\u003E\n","\u003Ch3\u003EPhase-based activities\u003C/h3\u003E\n","\u003Ch3\u003EPrepare\u003C/h3\u003E\n","\u003Cp\u003EThis phase includes all the proactive work your teams do \u003Cem\u003Ebefore\u003C/em\u003E an\nincident occurs to ensure they are ready to respond effectively.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDetection &amp; alerting:\u003C/strong\u003E Define Key Performance Indicators (KPIs) for\nyour critical workloads, such as query duration, warehouse queuing,\nand data ingestion latency. Establish the acceptable performance\nthresholds that, if crossed, will trigger an alert.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EResponse &amp; triage:\u003C/strong\u003E Define clear incident \u003Cstrong\u003Eseverity levels\u003C/strong\u003E\n(e.g., SEV-1, SEV-2) based on business impact. Create communication\ntemplates and establish on-call rotations and escalation paths so\neveryone knows their role.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EResolution &amp; recovery:\u003C/strong\u003E Identify and document potential mitigation\nactions for common incidents. For example, note the exact commands for\nresizing a warehouse or terminating a query.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERoot Cause Analysis (RCA):\u003C/strong\u003E Create a standardized, blameless\n\u003Cstrong\u003Epost-mortem template\u003C/strong\u003E to ensure consistent analysis after an\nincident. Define the criteria for which incidents require a formal\nRCA.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EReadiness &amp; preparation:\u003C/strong\u003E Brainstorm the most likely or most\nimpactful failure scenarios for your specific Snowflake workloads,\nsuch as a bad data deployment or a query storm from an application.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EImplement\u003C/h3\u003E\n","\u003Cp\u003EIn this phase, you build and configure the systems, tools, and\ndocumentation needed to manage incidents efficiently.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDetection &amp; alerting:\u003C/strong\u003E Build \u003Cstrong\u003ESnowsight dashboards\u003C/strong\u003E using\nACCOUNT_USAGE data to visualize your KPIs. Configure \u003Cstrong\u003ESnowflake\nAlerts\u003C/strong\u003E or integrate with third-party tools like PagerDuty to send\nnotifications when your defined thresholds are breached.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EResponse &amp; triage:\u003C/strong\u003E Set up your on-call scheduling software and\nconfigure dedicated communication channels, such as a specific Slack\nchannel, where the incident response team will coordinate.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EResolution &amp; recovery:\u003C/strong\u003E Ensure that on-call engineers have the\nnecessary permissions in Snowflake to execute mitigation commands,\nlike ALTER WAREHOUSE, without needing to wait for approvals.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERoot Cause Analysis (RCA):\u003C/strong\u003E Create a centralized and searchable\nrepository, such as a Confluence space or shared drive, to store all\npost-mortem documentation for future reference.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EReadiness &amp; preparation:\u003C/strong\u003E Write and maintain runbooks that provide\nclear, step-by-step diagnostic and resolution instructions for the\nfailure scenarios you identified in the Prepare phase.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EOperate\u003C/h3\u003E\n","\u003Cp\u003EThis phase covers the real-time activities your team performs \u003Cem\u003Eduring\u003C/em\u003E\nan active incident.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDetection &amp; alerting:\u003C/strong\u003E Monitor dashboards to correlate events and\nunderstand the scope of the issue. Acknowledge and begin investigating\ntriggered alerts to confirm that an incident is occurring.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EResponse &amp; triage:\u003C/strong\u003E Officially declare an incident and assign the\ncorrect severity level. Assemble the response team in the designated\nchannel and execute the communication plan to keep stakeholders\ninformed.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EResolution &amp; recovery:\u003C/strong\u003E Execute the appropriate resolution from\nyour runbook. This could involve running SYSTEM$CANCEL_QUERY(),\nresizing a warehouse with ALTER WAREHOUSE, or triggering a database\nfailover. Verify that the service is restored before closing the\nincident.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERoot Cause Analysis (RCA):\u003C/strong\u003E Gather evidence while the incident is\nactive. Save relevant query IDs, take screenshots of the Query\nProfile, and note key event timestamps to support the future RCA.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EReadiness &amp; preparation:\u003C/strong\u003E Consult the appropriate runbook to guide\nyour response. This ensures a consistent and efficient process,\npreventing responders from having to solve problems from scratch under\npressure.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EImprove\u003C/h3\u003E\n","\u003Cp\u003EThis phase is about learning from past incidents \u003Cem\u003Eafter\u003C/em\u003E they are\nresolved to build a more resilient system and process.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDetection &amp; alerting:\u003C/strong\u003E Tune your alerts to reduce false positives\n(noise) and false negatives (missed incidents). Create new alerts to\ndetect the failure modes discovered during your most recent\npost-mortem.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EResponse &amp; triage:\u003C/strong\u003E Based on feedback, refine your severity\ndefinitions, communication templates, and on-call escalation processes\nto make them more effective for the next incident.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EResolution &amp; recovery:\u003C/strong\u003E Document the successful resolution steps in\nthe relevant runbook. If a manual workaround was used, create a ticket\nfor a permanent engineering \u003Cstrong\u003Efix\u003C/strong\u003E to address the underlying issue.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERoot Cause Analysis (RCA):\u003C/strong\u003E Conduct a blameless post-mortem with\nall involved parties. Perform a deep-dive analysis using Snowflake's\nQuery Profile to find the true root cause and assign owners to\nactionable follow-up items.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EReadiness &amp; preparation:\u003C/strong\u003E Update your runbooks with new information\nlearned during the incident. Proactively test your team's readiness\nand the accuracy of your documentation by conducting &quot;Game Days&quot; that\nsimulate real-world incidents.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003ERecommendations\u003C/h3\u003E\n","\u003Cp\u003EEffective incident management in Snowflake relies on leveraging its\nunique architectural strengths&mdash;separating compute from storage and\nproviding rich operational metadata. These recommendations provide\nactionable steps for detection, response, and improvement.\u003C/p\u003E\n","\u003Ch3\u003EEstablish a single source of truth for triage\u003C/h3\u003E\n","\u003Cp\u003EDuring an incident, speed and accuracy are paramount. Centralize your\ninitial investigation using Snowflake's comprehensive metadata logs to\nshorten the time from detection to diagnosis.\u003C/p\u003E\n","\u003Cp\u003ECentralize incident detection with ACCOUNT_USAGE views\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction\u003C/strong\u003E: Your on-call SRE and Engineering teams should treat the\nSNOWFLAKE.ACCOUNT_USAGE schema as the definitive event log. Build\npre-configured Snowsight dashboards and alerts that immediately\nhighlight anomalies in key views:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EQUERY_HISTORY: To spot long-running, failing, or unusually high-IO\nqueries.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EWAREHOUSE_LOAD_HISTORY: To detect warehouse overload, queuing, and\nresource contention.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003ELOGIN_HISTORY: To investigate potential access or security-related\nincidents.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESnowflake Tooling\u003C/strong\u003E: \u003Ca href=\"https://docs.snowflake.com/en/sql-reference/account-usage\"\u003EACCOUNT_USAGE\nschema\u003C/a\u003E,\nSnowsight Dashboards, Snowflake Alerts.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EIsolate and mitigate performance incidents immediately\u003C/h3\u003E\n","\u003Cp\u003ESnowflake's architecture provides powerful levers to contain and resolve\nperformance degradation without affecting the entire platform. Your\nresponse should focus on isolating the problematic workload and\nadjusting compute resources dynamically.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ETerminate runaway queries without affecting the warehouse\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E The on-call Engineer should first use QUERY_HISTORY to\nidentify the specific query ID causing a performance issue.\nImmediately execute the SYSTEM$CANCEL_QUERY() function to terminate\nthat single query. This surgical action stops the resource drain\nwithout needing to restart the entire virtual warehouse, leaving all\nother running queries unaffected.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESnowflake Tooling:\u003C/strong\u003E\n\u003Ca href=\"https://docs.snowflake.com/en/sql-reference/functions/system_cancel_query\"\u003ESYSTEM$CANCEL_QUERY(&lt;query_id&gt;)\u003C/a\u003E\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDynamically scale compute to resolve resource contention\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E If an incident is caused by a legitimate surge in workload\n(e.g., month-end reporting), the SRE or Engineering Lead can instantly\nmitigate it. For warehouses already configured as Multi-cluster\nWarehouses (MCW), scaling is automatic. If not, manually resize the\nwarehouse using the ALTER WAREHOUSE command. This on-the-fly scaling\nresolves queuing and provides immediate relief, a unique advantage of\nSnowflake's elastic architecture.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESnowflake Tooling:\u003C/strong\u003E \u003Ca href=\"https://docs.snowflake.com/en/sql-reference/sql/alter-warehouse\"\u003EALTER\nWAREHOUSE\u003C/a\u003E\n... SET WAREHOUSE_SIZE = ..., Multi-cluster Warehouse configuration.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EAutomate disaster recovery and high-availability responses\u003C/h3\u003E\n","\u003Cp\u003EFor major incidents like a regional outage, your response should be\nswift, tested, and reliable. This depends on preparation and leveraging\nSnowflake's built-in business continuity features.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EExecute pre-defined runbooks for cross-region failover.\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E The CIO/CTO provides the business approval, and the SRE\nteam executes the failover runbook. This involves running a single\ncommand (ALTER FAILOVER GROUP ... PRIMARY) to promote a replica\ndatabase in a secondary region to primary status. This action is\nunderpinned by asynchronous database replication, which should already\nbe configured for all critical databases. Applications can then be\nseamlessly rerouted using \u003Cstrong\u003EClient Redirect\u003C/strong\u003E.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESnowflake Tooling:\u003C/strong\u003E \u003Ca href=\"https://docs.snowflake.com/en/user-guide/account-replication-intro\"\u003EDatabase\nReplication\u003C/a\u003E,\n\u003Cstrong\u003EFailover Groups\u003C/strong\u003E, \u003Cstrong\u003EClient Redirect\u003C/strong\u003E\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPerform data-driven post-mortems for continuous improvement\u003C/h3\u003E\n","\u003Cp\u003EEvery incident is a learning opportunity. Use Snowflake's detailed query\nexecution data to move beyond symptoms and identify the precise root\ncause, leading to permanent fixes.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAnalyze the query profile to pinpoint inefficiencies\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E As part of a blameless post-mortem, the \u003Cstrong\u003EEngineering\u003C/strong\u003E\nand \u003Cstrong\u003EData Science\u003C/strong\u003E teams involved should analyze the \u003Cstrong\u003EQuery\nProfile\u003C/strong\u003E of the problematic query in Snowsight. This tool provides a\nvisual, step-by-step breakdown of query execution. Look for specific\nanti-patterns like &quot;exploding&quot; joins, excessive remote disk spilling,\nor full table scans on poorly clustered data. This turns a generic\n&quot;slow query&quot; incident into an actionable finding.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESnowflake Tooling:\u003C/strong\u003E \u003Ca href=\"https://docs.snowflake.com/en/user-guide/ui-query-profile\"\u003EQuery\nProfile\u003C/a\u003E\ninterface in Snowsight.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPersona responsibilities (RACI chart)\u003C/h3\u003E\n","\u003Cp\u003EA RACI (Responsible, Accountable, Consulted, Informed) matrix defines\nthe roles and responsibilities for incident and governance management:\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ELegend:\u003C/strong\u003E \u003Cstrong\u003ER\u003C/strong\u003E = Responsible, \u003Cstrong\u003EA\u003C/strong\u003E = Accountable, \u003Cstrong\u003EC\u003C/strong\u003E = Consulted,\n\u003Cstrong\u003EI\u003C/strong\u003E = Informed\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ERole\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ECIO/CDO/CTO/CFO\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EChief Enterprise Architect\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EEngineering\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EData Science\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESecurity\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESRE\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EIncident management\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EGovernance\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESecurity\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECost management\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch2\u003EEnable collaboration &amp; Secure Sharing\u003C/h2\u003E\n","\u003Ch3\u003EOverview\u003C/h3\u003E\n","\u003Cp\u003EEnabling secure, real-time collaboration across your organization, with\ncustomers, and with business partners is a foundational pillar of the\nSnowflake AI Data Cloud. Unlike traditional methods that involve risky\nand inefficient data duplication and FTP transfers, Snowflake's\narchitecture allows you to \u003Cstrong\u003Eshare live, governed data without moving or\ncopying it\u003C/strong\u003E. This unlocks new opportunities for data-driven insights,\nAI development, and monetization while maintaining a strong security and\ngovernance posture.\u003C/p\u003E\n","\u003Cp\u003EThis framework provides principles and best practices to help you build\na robust strategy for sharing and collaboration. By implementing these\nguidelines, you can break down data silos, accelerate innovation, and\ncreate new value streams, all while ensuring your data remains\nprotected.\u003C/p\u003E\n","\u003Ch3\u003EFocus areas\u003C/h3\u003E\n","\u003Cp\u003ETo effectively enable collaboration and secure sharing in Snowflake,\nconcentrate on four key areas. These areas provide a structured approach\nto designing, implementing, and managing your data sharing ecosystem.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESecure data sharing architecture:\u003C/strong\u003E This area focuses on the\nfoundational components and patterns for sharing data. It covers the\ntechnical constructs like Shares, Reader Accounts, and the Snowflake\nMarketplace, and how to structure them to meet various business needs,\nfrom internal cross-departmental access to public data monetization.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EGranular governance and control:\u003C/strong\u003E Secure sharing is impossible\nwithout robust governance. This area addresses the policies and\ncontrols needed to protect data. Key technologies include Role-Based\nAccess Control (RBAC), Dynamic Data Masking, Row-Access Policies, and\nData Classification (using tags) to ensure that consumers only see the\ndata they are authorized to see.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EUnified collaboration for workloads:\u003C/strong\u003E This focuses on the tools and\nfeatures that enable different teams and workloads to collaborate\neffectively on the same data. It includes using Snowpark for joint\ndata science and engineering projects, leveraging Streams and Tasks\nfor building collaborative data pipelines, and developing Snowflake\nNative Apps to share data-powered applications securely.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EComprehensive auditing and monitoring:\u003C/strong\u003E To maintain trust and\nsecurity, you should have visibility into how shared data is being\nused. This area covers the practices for monitoring share consumption,\nauditing access patterns using views like ACCESS_HISTORY, and setting\nup alerts to detect and respond to anomalous activity.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPhase-based activities\u003C/h3\u003E\n","\u003Cp\u003EA successful data sharing strategy is implemented progressively. The\nfollowing phases outline the journey from initial planning to continuous\nimprovement.\u003C/p\u003E\n","\u003Ch3\u003EPrepare\u003C/h3\u003E\n","\u003Cp\u003EThe Prepare phase is about establishing the strategy, governance\nframework, and organizational alignment needed for secure data sharing.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EFocus area\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EActivities\u003C/strong\u003E\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003ESecure data sharing architecture\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EIdentify and prioritize datasets suitable for sharing. Define potential data consumers (internal teams, external partners) and their access requirements. Design a hub-and-spoke or federated sharing model.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EGranular governance and control\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDefine a data sharing policy that outlines acceptable use, security requirements, and the approval process. Establish a data classification framework to tag sensitive data (e.g., PII, confidential).\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EUnified collaboration for workloads\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EIdentify key collaboration use cases, such as joint AI/ML model development or building a shared analytics dashboard.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EComprehensive auditing and monitoring\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDefine key metrics for success and risk, such as the number of data consumers, query volume on shares, and types of sensitive data being accessed. Plan your auditing strategy.\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003EImplement\u003C/h3\u003E\n","\u003Cp\u003EThe Implement phase involves the hands-on configuration of the Snowflake\nplatform to bring your sharing strategy to life.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EFocus area\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EActivities\u003C/strong\u003E\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003ESecure data sharing architecture\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECreate SHARE objects and grant them access to specific database objects (tables, secure views). For external sharing without a Snowflake account, provision Reader Accounts. For broad distribution, create listings on the Snowflake Marketplace.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EGranular governance and control\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EImplement RBAC roles for data sharing administration and consumption. Apply dynamic data masking policies to sensitive columns and row-access policies to tables before adding them to a share. Use object tags to automate policy application.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EUnified collaboration for workloads\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDevelop and deploy Snowpark applications that can be shared via listings. Build shared data engineering pipelines using Streams and Tasks. Package and publish Snowflake Native Apps to offer data and application logic together.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EComprehensive auditing and monitoring\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EConfigure alerts on QUERY_HISTORY and ACCESS_HISTORY to monitor for unusual access patterns on shared objects. Set up monitoring dashboards to track share consumption and performance.\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003EOperate\u003C/h3\u003E\n","\u003Cp\u003EThe Operate phase focuses on the day-to-day management of your data\nsharing environment, ensuring it runs smoothly and securely.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EFocus area\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EActivities\u003C/strong\u003E\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003ESecure data sharing architecture\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EManage the lifecycle of data consumers, including approving requests, providing support, and revoking access when necessary. Regularly update data in shares to ensure consumers have the freshest information.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EGranular governance and control\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EConduct periodic reviews of access controls and sharing policies to ensure they remain aligned with business needs and compliance requirements.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EUnified collaboration for workloads\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EProvide support for shared assets like Snowpark applications and data pipelines. Gather feedback from users to identify areas for improvement.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EComprehensive auditing and monitoring\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ERegularly review audit logs and monitoring dashboards. Investigate any security alerts or performance degradation related to data sharing activities.\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003EImprove\u003C/h3\u003E\n","\u003Cp\u003EThe Improve phase is about optimizing and evolving your data sharing\ncapabilities based on feedback, usage data, and new business\nrequirements.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EFocus area\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EActivities\u003C/strong\u003E\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003ESecure data sharing architecture\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EActively solicit feedback from data consumers to enhance datasets and create new data products. Analyze Marketplace usage to optimize listings and pricing. Automate the consumer onboarding process.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EGranular governance and control\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ERefine and automate the application of governance policies using tag-based masking and access controls. Update the data sharing policy based on lessons learned and evolving regulations.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EUnified collaboration for workloads\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EEnhance Snowflake Native Apps with new features based on consumer feedback. Explore new collaboration patterns using emerging Snowflake features.\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EComprehensive auditing and Monitoring\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EFine-tune monitoring alerts to reduce false positives. Develop more sophisticated usage analytics to better understand the value derived from shared data and identify new sharing opportunities.\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003ERecommendations\u003C/h3\u003E\n","\u003Cp\u003ETo activate your data sharing and collaboration strategy, your teams\nshould take specific, coordinated actions. The following recommendations\nprovide an imperative guide for stakeholders, detailing the exact tools\nto use and referencing official Snowflake documentation for further\ndetail.\u003C/p\u003E\n","\u003Ch3\u003EMandate the use of secure views for all shares\u003C/h3\u003E\n","\u003Cp\u003EInstead of sharing raw tables, always use \u003Ca href=\"https://docs.snowflake.com/en/user-guide/views-secure\"\u003ESECURE\nVIEWS\u003C/a\u003E as the\ninterface for your data consumers. This creates a durable, controlled\ncontract that decouples consumers from your underlying physical data\nmodel and embeds fine-grained security logic directly into the shared\nobject.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction Plan:\u003C/strong\u003E\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\n","\u003Cp\u003EThe Chief Enterprise Architect and Security team will mandate a\npolicy stating that no TABLE object can be directly added to a\nSHARE.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EFor a new sharing request, the Data Science or business user defines\nthe specific columns and row-level filtering criteria needed by the\nconsumer.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EThe Data Engineer translates these requirements into a CREATE SECURE\nVIEW statement. Within the WHERE clause of the view, they use\nfunctions like CURRENT_ROLE() or IS_ROLE_IN_SESSION() to implement\nlogic that filters data based on the consumer's role.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EThe Security team reviews and approves the view's DDL to ensure it\ndoesn't expose sensitive data.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EFinally, the Data Engineer grants SELECT on the secure view to the\nSHARE.\u003C/p\u003E\n\u003C/li\u003E\u003C/ol\u003E\n","\u003Ch3\u003EOperationalize a &quot;data as a product&quot; mindset with in-platform documentation\u003C/h3\u003E\n","\u003Cp\u003ETreat every shared dataset as a product. A product requires clear\ndocumentation that allows consumers to discover, understand, and trust\nit. Use Snowflake's native features to build and share this\ndocumentation alongside the data itself.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction Plan:\u003C/strong\u003E\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\n","\u003Cp\u003EThe Data Governance team defines a standard for documentation,\nincluding mandatory descriptions for all shared tables, views, and\ncolumns.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EDuring development, the Data Engineer adds descriptive\n\u003Ca href=\"https://docs.snowflake.com/en/sql-reference/sql/comment\"\u003ECOMMENT\u003C/a\u003E\nmetadata to every object and column using COMMENT = '...' in their\nDDL or COMMENT ON ... IS '...' statements.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EThe Chief Enterprise Architect designs a &quot;Data Dictionary&quot; view\nbuilt on the SNOWFLAKE.ACCOUNT_USAGE.COLUMNS view. This view should\nbe shared with all internal data consumers, allowing them to query\nand explore available datasets and their documented business\ncontext.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EFor external consumers on the Marketplace, the Engineering team adds\nrich descriptions and sample queries directly into the listing's UI\nin Snowsight.\u003C/p\u003E\n\u003C/li\u003E\u003C/ol\u003E\n","\u003Ch3\u003EAutomate governance at scale with tag-based policies\u003C/h3\u003E\n","\u003Cp\u003EManually applying security policies to hundreds of tables is not\nscalable and is prone to error. Instead, implement a \u003Ca href=\"https://docs.snowflake.com/en/user-guide/tag-based-masking-policies\"\u003Etag-based\ngovernance\nframework\u003C/a\u003E\nwhere security policies (like masking) automatically attach to data\nbased on its classification.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction Plan:\u003C/strong\u003E\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\n","\u003Cp\u003EThe Security team, in consultation with the CIO/CDO, defines a data\nclassification taxonomy and creates the corresponding object tags in\nSnowflake (e.g., CREATE TAG pii_level WITH ALLOWED_VALUES 'HIGH',\n'LOW').\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003ESecurity then creates generic masking policies. For example, a\npolicy named mask_pii_high that redacts data, and another named\nmask_email that shows only the email domain.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003ESecurity then associates these policies with the tags (e.g., ALTER\nTAG pii_level SET MASKING POLICY mask_pii_high).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EAs part of their CI/CD process, Data Engineers are responsible for\nsetting the appropriate tags on tables and columns as they are\ncreated (e.g., ALTER TABLE ... MODIFY COLUMN email SET TAG pii_level\n= 'HIGH').\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003ESnowflake automatically applies the correct masking policy to the\nemail column by virtue of the tag, ensuring governance is enforced\nwithout manual intervention before the data is ever added to a\nshare.\u003C/p\u003E\n\u003C/li\u003E\u003C/ol\u003E\n","\u003Ch3\u003EDistribute application logic securely with Snowflake Native Apps\u003C/h3\u003E\n","\u003Cp\u003EWhen you need to share more than just data&mdash;such as a proprietary\nalgorithm, a machine learning model, or a complete interactive\napplication&mdash;use the \u003Ca href=\"https://docs.snowflake.com/en/developer-guide/native-apps/native-apps-about\"\u003ESnowflake Native App\nFramework\u003C/a\u003E.\nThis allows consumers to run your logic on their own data without the\ncode or data ever leaving their secure Snowflake environment.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction Plan:\u003C/strong\u003E\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\n","\u003Cp\u003EA Data Science team develops a predictive model using Snowpark for\nPython and saves it as a User-Defined Function (UDF).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EAn Application Developer (within Engineering) builds a user\ninterface using the Streamlit in Snowflake integration that allows\nusers to input data and see the model's prediction.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EThe developer packages the Snowpark UDF, the Streamlit UI, and any\nnecessary stored procedures into an APPLICATION PACKAGE. They define\nthe components in a manifest.yml file and a setup.sql script.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EThe CDO and Engineering lead decide to list the application on the\nMarketplace. The engineer uses Snowsight to create a listing from\nthe application package, adding pricing and usage terms.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EA consumer can now &quot;install&quot; this application, running the\nprovider's proprietary model against their own private customer\ntable, with the provider having zero access to the consumer's data.\u003C/p\u003E\n\u003C/li\u003E\u003C/ol\u003E\n","\u003Ch3\u003EPersona responsibilities (RACI chart)\u003C/h3\u003E\n","\u003Cp\u003EClarifying roles and responsibilities is crucial for a well-governed\ndata sharing program. The following RACI (Responsible, Accountable,\nConsulted, Informed) matrix outlines the typical duties for each\npersona.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ELegend:\u003C/strong\u003E \u003Cstrong\u003ER\u003C/strong\u003E = Responsible, \u003Cstrong\u003EA\u003C/strong\u003E = Accountable, \u003Cstrong\u003EC\u003C/strong\u003E = Consulted,\n\u003Cstrong\u003EI\u003C/strong\u003E = Informed\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EActivity\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003ECIO / CDO\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EChief Enterprise Architect\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003ESecurity\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EEngineering / SRE\u003C/strong\u003E\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EData Science\u003C/strong\u003E\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDefine Data Sharing &amp; Monetization Strategy\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EEstablish Governance &amp; Sharing Policies\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDesign the Sharing Architecture (e.g., Shares, Views)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EImplement and Apply Security Controls (Masking/Row Access)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EPublish and Manage Marketplace Listings\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EApprove and Onboard Data Consumers\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EMonitor and Audit Sharing Usage\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDevelop Collaborative Snowpark/Native App Assets\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch2\u003EManage the Software Development Lifecycle (SDLC)\u003C/h2\u003E\n","\u003Ch3\u003EOverview\u003C/h3\u003E\n","\u003Cp\u003EA well-defined Software Development Lifecycle (SDLC) in Snowflake\nenables teams to innovate faster while maintaining stability and\ngovernance. It transforms development from an ad-hoc process into a\npredictable, repeatable, and automated workflow. By applying software\nengineering best practices like version control, automated testing, and\nCI/CD to your data projects, you can significantly reduce manual errors,\nimprove collaboration, and increase the trustworthiness of your data\nassets. This is essential for all key workloads, whether you are\nbuilding scalable data pipelines, developing complex machine learning\nmodels with Snowpark, or deploying native applications.\u003C/p\u003E\n","\u003Ch3\u003EFocus areas\u003C/h3\u003E\n","\u003Cp\u003ETo build a robust SDLC, we recommend concentrating on five key focus\nareas. These areas provide the foundation for a mature and scalable\ndevelopment process on Snowflake.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVersion control &amp; code management:\u003C/strong\u003E The practice of tracking and\nmanaging changes to your code and configuration files. This is the\nbedrock of collaborative development, enabling teams to work in\nparallel, review changes, and maintain a complete history of every\nmodification. Key components include Git-based repositories, branching\nstrategies (e.g., GitFlow), and mandatory peer reviews.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECI/CD automation (Continuous Integration/Continuous Deployment):\u003C/strong\u003E\nThe automation of building, testing, and deploying code changes.\n\u003Cstrong\u003ECI\u003C/strong\u003E focuses on automatically integrating code changes from multiple\ncontributors into a single shared repository. \u003Cstrong\u003ECD\u003C/strong\u003E extends this by\nautomatically deploying the integrated code to various environments\n(development, staging, production) after it passes all tests. This\naccelerates delivery and reduces deployment risk.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ETesting &amp; quality assurance:\u003C/strong\u003E The process of validating that your\ndata, code, and models meet quality standards. This is not just about\ncode functionality but also about data accuracy, integrity, and\nperformance. This includes unit tests for Snowpark functions,\nintegration tests for data pipelines, and data quality checks using\ntools like dbt Tests or Great Expectations.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EEnvironment management:\u003C/strong\u003E The strategy for creating and managing\nseparate, isolated Snowflake environments for different stages of the\nSDLC (e.g., Development, Test/QA, Production). This ensures that\ndevelopment work doesn't impact production workloads and allows for\nsafe testing of changes before they are promoted. This often involves\nSnowflake's Zero-Copy Cloning for efficient environment creation.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EObservability &amp; monitoring:\u003C/strong\u003E The ability to understand the internal\nstate of your systems from their external outputs. This involves\ncollecting logs, metrics, and traces to monitor the health,\nperformance, and cost of your Snowflake workloads. Effective\nobservability helps you detect issues proactively, troubleshoot\nfailures, and optimize resource usage.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPhase-based activities\u003C/h3\u003E\n","\u003Cp\u003EManaging the SDLC in a well-architected way can be broken down into four\ndistinct phases. Here's how the focus areas apply to each phase.\u003C/p\u003E\n","\u003Ch3\u003EPrepare\u003C/h3\u003E\n","\u003Cp\u003EThis phase is about planning and setting up the foundational components\nfor your project.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVersion control:\u003C/strong\u003E Establish a Git repository (e.g., in GitHub,\nGitLab) for your project. Define and document a branching strategy.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECI/CD automation:\u003C/strong\u003E Select and configure your CI/CD tools (e.g.,\nGitHub Actions, Jenkins). Create starter pipeline templates for\ndifferent workload types (dbt, Snowpark, Streamlit).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ETesting:\u003C/strong\u003E Define the project's testing strategy. Identify the tools\nand frameworks you'll use for unit, integration, and data quality\ntesting.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EEnvironment management:\u003C/strong\u003E Define your environment promotion\nstrategy. Use scripts (e.g., Terraform, SQL) to create role-based\naccess controls and provision separate development, testing, and\nproduction databases or schemas.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EObservability:\u003C/strong\u003E Define key performance indicators (KPIs) for the\nworkload. Set up logging standards and choose monitoring tools to\ncapture query history, credit usage, and performance metrics from\nSnowflake's ACCOUNT_USAGE views.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EImplement\u003C/h3\u003E\n","\u003Cp\u003EThis phase involves the core development and building of your data asset\nor application.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVersion control:\u003C/strong\u003E Developers create feature branches to work on new\ncode. All changes are committed to these branches with clear,\ndescriptive messages. Pull/Merge Requests are used to initiate code\nreviews.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECI/CD automation:\u003C/strong\u003E Upon a pull request, the CI pipeline\nautomatically triggers. It runs linters, builds artifacts (e.g.,\nSnowpark UDFs), and executes unit tests.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ETesting:\u003C/strong\u003E Developers write unit tests for their code (e.g., Pytest\nfor Snowpark Python). Integration tests are developed to validate\ninteractions between different components, and data quality tests are\ndefined (e.g., asserting not_null on a primary key column).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EEnvironment management:\u003C/strong\u003E Developers use their dedicated, isolated\ndevelopment environments or databases, often created using Zero-Copy\nClones of production data subsets, to build and test their features\nsafely.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EObservability:\u003C/strong\u003E Implement structured logging within your code\n(e.g., in Snowpark functions or stored procedures). Add custom tags to\nqueries to track lineage and cost attribution.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EOperate\u003C/h3\u003E\n","\u003Cp\u003EThis phase focuses on deploying, managing, and monitoring the solution\nin production.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVersion control:\u003C/strong\u003E Merging a feature branch into the main branch\nserves as the trigger for deployment and creates an immutable, tagged\nrelease.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECI/CD automation:\u003C/strong\u003E The CD pipeline takes over after a successful CI\nrun and merge. It automatically deploys the changes to the production\nenvironment, applying database object changes (SchemaOps/GitOps) and\nupdating tasks or streams.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ETesting:\u003C/strong\u003E Automated smoke tests run immediately after deployment to\nverify the health of the production system. Continuous data quality\ntests run against production data to catch anomalies.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EEnvironment management:\u003C/strong\u003E The CI/CD pipeline manages the promotion\nof code and database objects through environments (Dev -&gt; Test -&gt;\nProd). Access to the production environment is highly restricted and\nmanaged via automation.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EObservability:\u003C/strong\u003E Actively monitor dashboards for system health,\nquery performance, and credit consumption. Configure alerts to notify\nthe SRE team of failures, performance degradation, or cost anomalies.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EImprove\u003C/h3\u003E\n","\u003Cp\u003EThis final phase is about iterating on the solution and the process\nitself based on operational feedback.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVersion control:\u003C/strong\u003E Analyze the commit history and pull request\nfeedback to identify areas for improving code quality and\ncollaboration.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECI/CD automation:\u003C/strong\u003E Optimize pipeline performance to reduce build\nand deployment times. Add new steps to the pipeline to automate more\nquality checks or security scans.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ETesting:\u003C/strong\u003E Review test failures and data quality alerts to identify\nrecurring issues. Refine and expand the test suite to improve coverage\nand prevent regressions.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EEnvironment management:\u003C/strong\u003E Periodically review and clean up old\ndevelopment environments. Use feedback to improve the environment\ncreation and data seeding processes.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EObservability:\u003C/strong\u003E Analyze performance and cost trends from monitoring\ndata. Use these insights to refactor inefficient queries, optimize\nwarehouse sizes, and improve the overall architecture. Conduct\npost-mortems on incidents to identify root causes and implement\npreventative measures.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003ERecommendations\u003C/h3\u003E\n","\u003Cp\u003ETo implement a mature SDLC for the Snowflake AI Data Cloud, your teams\nshould adopt specific practices and tools. These recommendations provide\nactionable guidance for each stakeholder to build a reliable, automated,\nand governable development lifecycle.\u003C/p\u003E\n","\u003Ch3\u003EStandardize your core SDLC toolchain\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E The Chief Enterprise Architect and Engineering Leads should\ndefine and enforce a single, approved toolchain for source control,\nCI/CD, and infrastructure management. This prevents fragmentation and\nensures consistency.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EEngineering and SRE teams will configure a central Git provider (e.g.,\nGitHub, GitLab) as the single source of truth for all\nSnowflake-related code, including SQL scripts, Snowpark Python/Java\nfiles, and dbt models.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EThey will create standardized CI/CD pipeline templates (e.g., using\nGitHub Actions, Jenkins) that all teams must use. These templates\nshould include predefined stages for linting, testing, building, and\ndeploying to Snowflake.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EDevelopers and Data Scientists should use these templates to ensure\nevery project adheres to the same quality and security gates before\ncode is merged. This streamlines onboarding and enforces best\npractices automatically.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EThese CI/CD pipelines will use tools like the \u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowsql\"\u003ESnowSQL\nCLI\u003C/a\u003E or the\n\u003Ca href=\"https://docs.snowflake.com/en/developer-guide/python-connector/python-connector\"\u003ESnowflake Connector for\nPython\u003C/a\u003E\nto execute scripts and deploy objects against Snowflake environments.\u003C/p\u003E\n","\u003Ch3\u003EAdopt GitOps for all Snowflake object management\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E All changes to Snowflake database objects (schemas, tables,\nviews, roles, grants) can be managed declaratively as code in Git.\nDirect CREATE OR REPLACE commands against production environments should\nbe prohibited.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EThe SRE and Engineering teams should consider implementing an\nopen-source schema migration tool like\n\u003Ca href=\"https://github.com/Snowflake-Labs/schemachange\"\u003Eschemachange\u003C/a\u003E\nwithin the standard CD pipeline. This tool compares the state of a\ntarget database with the state defined in Git and applies only the\nnecessary changes in a versioned, ordered manner.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EDevelopers and Data Engineers must commit all database object changes\nas new, version-numbered SQL scripts in a designated folder within\ntheir Git repository.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EThe deployment pipeline, triggered by a merge to the main branch, will\nautomatically execute schemachange to apply these scripts to the\ntarget Snowflake environment. This creates a fully auditable and\nreversible history of every change to your database schema.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EThis practice provides a robust audit trail for all DDL, DML, and DCL\nstatements executed against Snowflake, improving governance and\nsimplifying troubleshooting.\u003C/p\u003E\n","\u003Ch3\u003EAutomate quality gates with comprehensive testing\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E Enforce automated testing as a mandatory step in your CI\npipeline. Pull requests that do not pass all tests must be blocked from\nmerging.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EData Scientists and Engineers working with Snowpark must write unit\ntests for their Python/Java/Scala code using standard frameworks\n(e.g., pytest, JUnit). These tests validate business logic within\nUser-Defined Functions (UDFs) and Stored Procedures before they are\ndeployed to Snowflake.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EData Engineers using tools like dbt must write data quality tests\n(e.g., not_null, unique, relationships) for their data models. These\ntests are defined in YAML files alongside the models and run\nautomatically as part of the CI process.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EThe SRE team must configure the CI pipeline to execute these tests\nagainst a temporary, cloned environment for every pull request. The\ntest results should be published back to the pull request to provide\nimmediate feedback.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003ETesting can be done against temporary schemas or databases created using\nZero-Copy Cloning, providing a production-like environment without\nincurring storage costs or performance impact.\u003C/p\u003E\n","\u003Ch3\u003EIsolate workflows with on-demand cloned environments\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E Empower your development teams with self-service, isolated\nenvironments using Snowflake's \u003Ca href=\"https://docs.snowflake.com/en/user-guide/object-clone\"\u003EZero-Copy\nCloning\u003C/a\u003E\nfeature. This eliminates development bottlenecks and ensures\nhigh-fidelity testing.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003ESRE and DevOps teams should create an automated job or script (e.g.,\nin the CI/CD tool or a chatbot) that allows any developer to instantly\nprovision a new environment. This script should execute the\n\u003Ca href=\"https://docs.snowflake.com/en/sql-reference/sql/create-clone\"\u003ECREATE TRANSIENT DATABASE &lt;dev_db_name&gt; CLONE\n&lt;prod_db_name&gt;;\u003C/a\u003E\ncommand and apply the appropriate role-based access controls.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EDevelopers and Data Scientists should trigger this job at the start of\nany new feature branch work. This provides them with a full-scale,\nread-only copy of the production data to develop and test against\nwithout any risk to the production environment.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EA nightly job should be created to automatically tear down cloned\nenvironments older than a few days to maintain hygiene.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EThis directly leverages one of Snowflake's most powerful features.\nCloning is an instantaneous metadata operation, meaning environments are\nready in seconds, not hours, and consume no additional storage until\nchanges are made.\u003C/p\u003E\n","\u003Ch3\u003EEmbed cost and performance monitoring into the workflow\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction:\u003C/strong\u003E Make cost and performance explicit responsibilities of the\ndevelopment team, not just an operational afterthought. Integrate\nmonitoring directly into the SDLC.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003ESREs and Engineering Leads should build shared dashboards using data\nfrom the SNOWFLAKE.ACCOUNT_USAGE schema, specifically views like\nQUERY_HISTORY and WAREHOUSE_METERING_HISTORY. These dashboards should\nbe reviewed in weekly team meetings.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EAll Developers should programmatically set the QUERY_TAG session\nparameter at the start of their CI/CD jobs, applications, or data\npipelines. The tag should include context like the Git commit hash,\nfeature name, or executing user (e.g., {'git_commit':'a1b2c3d',\n'feature':'new_customer_model'}).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EDuring code review, developers should be required to analyze the query\nprofile for new, complex queries to identify performance bottlenecks\nbefore the code is merged into production.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EThis leverages Snowflake's rich metadata and governance features. Using\nQUERY_TAG allows you to precisely attribute credit consumption to\nspecific features or changes, enabling true cost visibility.\u003C/p\u003E\n","\u003Ch3\u003EPersona responsibilities (RACI chart)\u003C/h3\u003E\n","\u003Cp\u003EThis RACI (Responsible, Accountable, Consulted, Informed) matrix\noutlines the typical roles and responsibilities across the SDLC\nlifecycle.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ELegend:\u003C/strong\u003E \u003Cstrong\u003ER\u003C/strong\u003E = Responsible, \u003Cstrong\u003EA\u003C/strong\u003E = Accountable, \u003Cstrong\u003EC\u003C/strong\u003E = Consulted,\n\u003Cstrong\u003EI\u003C/strong\u003E = Informed\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EFocus Area / Activity\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EEngineering\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EData Science\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESRE\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESecurity\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EArchitecture\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EC‑Level\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDefine SDLC toolchain &amp; standards\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESet up Git repos &amp; branching strategy\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDevelop &amp; commit code/models\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EConduct peer code reviews\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EBuild &amp; maintain CI/CD pipelines\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EWrite unit &amp; integration tests\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EManage environment provisioning (IaC)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EExecute production deployments\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EMonitor production health &amp; performance\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ERespond to production incidents\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EOptimize pipeline performance cost\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDefine &amp; enforce security policies\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch2\u003EContinuously improve performance &amp; practices\u003C/h2\u003E\n","\u003Ch3\u003EOverview\u003C/h3\u003E\n","\u003Cp\u003EContinuously improving performance and operational practices is\nessential for maximizing the value, efficiency, and innovation you get\nfrom the Snowflake AI Data Cloud. It's not a one-time task but an\nongoing cycle of measurement, analysis, and optimization that ensures\nyour platform evolves with your business needs. This approach helps you\ncontrol costs, enhance user experience, and maintain a robust, scalable\ndata environment.\u003C/p\u003E\n","\u003Ch3\u003EFocus areas\u003C/h3\u003E\n","\u003Cp\u003ETo structure your improvement efforts, concentrate on these four key\nareas. They provide a comprehensive framework for optimizing every\naspect of your Snowflake usage, from query execution to team expertise.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWorkload optimization\u003C/strong\u003E: This involves tuning the technical aspects\nof your Snowflake environment to ensure that data engineering\npipelines, analytics queries, AI models, and applications run as\nefficiently as possible. The goal is to improve speed and reduce\nresource consumption.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECost governance and FinOps\u003C/strong\u003E: This area focuses on managing and\noptimizing your Snowflake spend. It involves monitoring usage,\nforecasting costs, setting budgets, and fostering a culture of\ncost-awareness across all teams. It's about treating cost as a\ncritical performance metric.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EOperational excellence\u003C/strong\u003E: This centers on automating and\nstreamlining the processes used to manage your Snowflake environment.\nIt includes CI/CD (Continuous Integration/Continuous Deployment) for\ncode, infrastructure-as-code (IaC) for environment setup, monitoring,\nalerting, and incident response to ensure reliability and reduce\nmanual effort.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EPractice and skill enhancement\u003C/strong\u003E: This is the human element of\ncontinuous improvement. It involves keeping your teams' skills sharp\nand ensuring they follow best practices. A platform as dynamic as\nSnowflake requires continuous learning to leverage new features and\ncapabilities effectively.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPhase-based activities\u003C/h3\u003E\n","\u003Cp\u003EContinuous improvement is a journey. By breaking it down into the four\ndistinct iterative phases of the Operational Excellence pillar, you can\napply focused effort at each stage of your project lifecycle.\u003C/p\u003E\n","\u003Ch3\u003EPrepare\u003C/h3\u003E\n","\u003Cp\u003EIn this phase, you lay the groundwork for success by defining goals,\nstandards, and metrics before a project begins.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWorkload optimization\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EDefine clear Service Level Objectives (SLOs) for critical workloads.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EEstimate compute needs and select initial virtual warehouse sizes\nbased on workload characteristics (e.g., small for data ingestion,\nlarge for complex transformations).\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECost governance and FinOps\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EEstablish budgets and spending alerts for the new project using\nSnowflake's resource monitors.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EDefine a comprehensive tagging strategy to allocate costs accurately\nto different teams, projects, or cost centers.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EOperational excellence\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EDefine standards for monitoring, logging, and alerting for the new\nworkload.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EPlan your CI/CD and IaC strategy for managing Snowflake objects and\ncode.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EPractice and skill enhancement\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EIdentify any new Snowflake features the project will use (e.g.,\nSnowpark, Streamlit) and arrange for team training.\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EImplement\u003C/h3\u003E\n","\u003Cp\u003EDuring the development and deployment phase, you turn plans into action,\nwith a focus on building efficient and manageable solutions.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWorkload optimization\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EUse the \u003Cstrong\u003EQuery Profile\u003C/strong\u003E tool in Snowsight to analyze and tune\ncomplex queries during development.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EImplement data clustering on large tables based on common query\nfilter patterns to improve performance.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECost governance and FinOps\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EApply resource tags to all objects (warehouses, databases, etc.) as\ndefined in the prepare phase.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EMonitor development and testing costs to ensure they align with\nprojections.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EOperational excellence\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EDevelop automated deployment pipelines for database objects, roles,\nand tasks.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EImplement automated data quality and functional tests within your\nCI/CD process.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EPractice and skill enhancement\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EConduct regular peer code reviews to share knowledge and enforce\nbest practices for SQL, Snowpark, and application code.\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EOperate\u003C/h3\u003E\n","\u003Cp\u003EOnce a solution is live, the focus shifts to monitoring, maintenance,\nand real-time optimization.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWorkload optimization\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EContinuously monitor warehouse utilization using Snowsight\ndashboards to identify underutilized or overloaded warehouses.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EAdjust warehouse settings dynamically, such as scaling up for peak\ndemand, scaling out with multi-cluster warehouses for high\nconcurrency, or suspending during idle periods.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECost governance and FinOps\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EReview daily and weekly spend using the ACCOUNT_USAGE schema to\ntrack costs against budgets and identify anomalies.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EAnalyze storage costs and implement data lifecycle management\npolicies.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EOperational excellence\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003ERespond to automated alerts for performance degradation or job\nfailures.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EUse Snowflake Tasks and Streams to automate data pipelines and\nreduce operational overhead.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EPractice and skill enhancement\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EEncourage teams to participate in Snowflake webinars, workshops, and\ncommunity forums to stay current.\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EImprove\u003C/h3\u003E\n","\u003Cp\u003EThis proactive phase involves looking for opportunities to refine and\nenhance your existing solutions and practices.\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWorkload optimization\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EProactively analyze historical query performance data\n(QUERY_HISTORY) to find and refactor inefficient queries.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EExperiment with advanced Snowflake features like the Search\nOptimization Service for point lookups or Query Acceleration Service\nfor large-scale scans.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECost governance and FinOps\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EConduct quarterly FinOps reviews to analyze spending trends and set\nnew optimization goals.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EOptimize storage by identifying unused tables or converting large,\ntransient tables to temporary ones where appropriate.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EOperational excellence\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003ERefine monitoring dashboards to provide more insightful, role-based\nviews of platform health.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EAutomate repetitive operational tasks identified during the operate\nphase, such as user provisioning or access reviews.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EPractice and skill enhancement\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EEstablish a Center of Excellence (CoE) to formalize best practices,\nprovide internal consulting, and drive platform adoption.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EInvest in official Snowflake certifications to validate and deepen\nteam expertise.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003ERecommendations\u003C/h3\u003E\n","\u003Ch3\u003EProactively manage workload performance with observability tools\u003C/h3\u003E\n","\u003Cp\u003EDon't wait for performance issues to arise. Empower your teams to use\nSnowflake's built-in observability tools to find and fix inefficiencies\nbefore they impact the business.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction for Engineering &amp; Data Science\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAnalyze before you deploy:\u003C/strong\u003E During development, every complex or\nlong-running query must be analyzed using the \u003Ca href=\"https://docs.snowflake.com/en/user-guide/ui-query-profile\"\u003E\u003Cstrong\u003EQuery\nProfile\u003C/strong\u003E\u003C/a\u003E.\nUse this tool to visually identify performance bottlenecks, such as\ninefficient joins, excessive data spillage to storage, or full table\nscans that could be avoided with better pruning.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EInvestigate historical performance:\u003C/strong\u003E Regularly review your team's\nmost expensive or slowest queries from the past week using the \u003Cstrong\u003EQuery\nHistory\u003C/strong\u003E page in Snowsight. Look for performance regressions after a\nnew release or changes in data volume.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction for SREs &amp; Architects\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EBuild centralized monitoring:\u003C/strong\u003E Create a dedicated Snowsight\ndashboard for platform health using data from the\nSNOWFLAKE.ACCOUNT_USAGE schema. Key views to monitor include\nQUERY_HISTORY (to spot slow queries), WAREHOUSE_LOAD_HISTORY (to see\nqueuing), and WAREHOUSE_METERING_HISTORY (to correlate performance\nwith cost).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESet performance benchmarks:\u003C/strong\u003E Use the data from these dashboards to\nestablish performance Service Level Objectives (SLOs) for critical\nworkloads and configure alerts that trigger when these SLOs are at\nrisk.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EImplement a continuous compute optimization cycle\u003C/h3\u003E\n","\u003Cp\u003EVirtual warehouse configuration is not a &quot;set it and forget it&quot; task.\nCreate a formal, data-driven process to ensure your compute resources\nare always perfectly matched to your workloads.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction for Engineering Leads &amp; SREs\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EEstablish a quarterly \u003Ca href=\"https://docs.snowflake.com/en/user-guide/warehouses-considerations\"\u003Ewarehouse\nreview\u003C/a\u003E.\nSchedule a recurring meeting to review the performance and utilization\nof every production warehouse. Use the WAREHOUSE_LOAD_HISTORY view to\nanswer key questions:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EIs there queuing? A high AVG_RUNNING and AVG_QUEUED_LOAD value\nindicates the warehouse is undersized or needs a multi-cluster\nconfiguration.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EIs it idle? If a warehouse has low utilization, consider resizing it\ndown or consolidating its workloads with another warehouse.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EAutomate suspension. Ensure every warehouse has an aggressive\nAUTO_SUSPEND setting (e.g., 60 seconds) to eliminate payment for idle\ncompute time. This enforces an efficient &quot;on-demand&quot; practice.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction for Engineering &amp; Finance (FinOps)\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EUse \u003Ca href=\"https://docs.snowflake.com/en/user-guide/resource-monitors\"\u003EResource\nMonitors\u003C/a\u003E\nfor governance. For each major workload or department, apply a\nResource Monitor to its set of warehouses. This acts as a performance\nand cost circuit breaker, automatically notifying stakeholders or\nsuspending compute when consumption exceeds its budget&mdash;often a sign of\na runaway query or performance issue.\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EAutomate performance guardrails and operational tasks\u003C/h3\u003E\n","\u003Cp\u003EReduce manual effort and human error by embedding performance best\npractices and operational duties directly into your automated workflows\nand data pipelines.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction for SREs &amp; DevOps Engineers\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAutomate performance regression testing:\u003C/strong\u003E As part of your CI/CD\npipeline, use Snowflake's \u003Ca href=\"https://docs.snowflake.com/en/user-guide/object-clone\"\u003EZero-Copy\nCloning\u003C/a\u003E\nfeature to create an instantaneous, full-scale clone of your\nproduction data for testing. Before merging code, automatically run a\nsuite of benchmark queries against this clone to ensure the changes do\nnot negatively impact performance.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EManage warehouses as code:\u003C/strong\u003E Use an Infrastructure-as-Code (IaC)\ntool like Terraform to manage all virtual warehouse configurations.\nThis enforces consistency and allows changes to warehouse sizing or\nscaling policies to go through a peer-reviewed, auditable process.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction for Data Engineers\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EAutomate data pipelines with\n\u003Ca href=\"https://docs.snowflake.com/en/user-guide/tasks-intro\"\u003ETasks\u003C/a\u003E\u003C/strong\u003E:\nFor any recurring data processing logic (e.g., merging data from a\nstaging table, refreshing a materialized view), use Snowflake Tasks.\nThis serverless tool removes the need for external orchestrators for\nmany common workflows, improving reliability and reducing operational\ncomplexity.\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EFoster a culture of continuous learning and excellence\u003C/h3\u003E\n","\u003Cp\u003EYour team's expertise is the most critical factor in achieving sustained\nperformance. Invest in a structured program to keep skills sharp and\nalign everyone on best practices.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction for C-Level &amp; Chief Architects\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003ECharter and fund a Center of Excellence (CoE):\u003C/strong\u003E The CoE is\naccountable for platform-wide best practices. Its members must\nregularly evaluate new Snowflake features announced in the monthly\n\u003Ca href=\"https://docs.snowflake.com/release-notes/all-release-notes?bundle=true\"\u003ERelease\nNotes\u003C/a\u003E\nand create actionable guidance on how teams can use them to improve\nperformance (e.g., adopting Query Acceleration Service, using\nSnowpark-optimized warehouses).\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAction for Team Leads &amp; Engineers\u003C/strong\u003E:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EConduct performance-focused code reviews:\u003C/strong\u003E Make performance a\nmandatory part of every code review. Ask questions like: &quot;Is there a\nWHERE clause to enable partition pruning?&quot; or &quot;Could this join be\nrewritten to be more efficient?&quot;\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EShare knowledge actively:\u003C/strong\u003E Create an internal channel (e.g., Slack,\nTeams) dedicated to Snowflake performance. Encourage engineers to\nshare their Query Profile screenshots, optimization successes, and\ntough performance challenges to foster \u003Ca href=\"https://community.snowflake.com/s/\"\u003Ecollaborative\nproblem-solving.\u003C/a\u003E\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EPersona responsibilities (RACI chart)\u003C/h3\u003E\n","\u003Cp\u003EClarifying roles ensures that everyone understands their part in the\ncontinuous improvement process. The matrix below outlines typical\nresponsibilities.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ELegend:\u003C/strong\u003E \u003Cstrong\u003ER\u003C/strong\u003E - Responsible, \u003Cstrong\u003EA\u003C/strong\u003E - Accountable, \u003Cstrong\u003EC\u003C/strong\u003E - Consulted,\n\u003Cstrong\u003EI\u003C/strong\u003E - Informed\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EActivity\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EC-Level (CIO/CDO)\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EChief Architect\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EEngineering\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EData Science\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESecurity\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESRE\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESet platform budget &amp; cost strategy\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDefine performance &amp; architectural standards\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ETune queries &amp; optimize workloads\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EMonitor &amp; adjust warehouse configuration\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDevelop &amp; maintain CI/CD pipelines\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EImplement cost tagging &amp; monitoring\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EConduct regular FinOps reviews\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EEstablish a Center of Excellence (CoE)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EA\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ER\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EC\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E"],"description":"","title":"Operational Excellence","elements":{"quickstartArticleBody":{"dataType":"string","value":"## Overview\n\nOperational Excellence in the Snowflake AI Data Cloud is the practice of\nrunning and monitoring systems to deliver business value and\ncontinuously improve supporting processes and procedures. It focuses on\nmaximizing automation, gaining deep observability into workloads, and\nestablishing a culture of iterative improvement. This empowers your\norganization to innovate faster with data engineering, analytics, AI,\napplications, and collaboration, all while managing risk and optimizing\nfor cost and performance.\n\nThis pillar emphasizes aligning technology with business outcomes to\nsupport the transformations Snowflake enables. Each Operational\nExcellence principle follows a phase-based structure to reflect an\niterative approach:\n\n- Prepare\n\n- Implement\n\n- Operate\n\n- Improve\n\n## Principles\n\n#### Ensure operational readiness & performance\n\n\u003E Proactively define performance targets (SLOs), test and validate\n\u003E capacity, and continuously optimize compute engines to ensure\n\u003E workloads meet business expectations.\n\n#### Automate infrastructure & maintenance\n\n\u003E Eliminate manual operational tasks by codifying all infrastructure,\n\u003E configuration, and data pipelines, leveraging Snowflake's built-in\n\u003E automation for scaling and maintenance.\n\n#### Enhance observability & issue resolution\n\n\u003E Gain deep, end-to-end visibility into the platform by capturing and\n\u003E analyzing telemetry, logs, and traces to rapidly diagnose and resolve\n\u003E issues.\n\n#### Manage incidents & problems\n\n\u003E Minimize the impact of incidents using AI-driven diagnostics,\n\u003E immutable backups for rapid recovery, and automated governance\n\u003E controls.\n\n#### Enable collaboration & Secure Sharing\n\n\u003E Foster a collaborative data culture by establishing a secure, governed\n\u003E internal marketplace for sharing data, applications, and models.\n\n#### Manage the AI/ML software development lifecycle\n\n\u003E Implement a governed, end-to-end MLOps framework to manage models and\n\u003E features, from experimentation and fine-tuning to deployment and\n\u003E monitoring, directly within the data cloud.\n\n#### Continuously improve performance & practices\n\n\u003E Proactively define performance targets (SLOs), test and validate\n\u003E capacity, and continuously optimize compute engines to ensure\n\u003E workloads meet business expectations.\n\n## Ensure operational readiness & performance\n\n### Overview\n\nEnsuring operational readiness and performance in the Snowflake AI Data\nCloud is about creating a stable, efficient, and scalable environment\nthat consistently meets your business objectives. This involves\nproactively planning for capacity, monitoring system health, optimizing\nquery performance, and implementing robust processes for management and\nsupport. A well-performing and operationally sound platform builds\ntrust, drives user adoption, and maximizes the return on your data\ninvestment. It ensures that your data engineering pipelines run on\nschedule, analytical queries return quickly, AI models are trained and\ndeployed efficiently, and data applications deliver a seamless user\nexperience.\n\n### Focus areas\n\nTo achieve peak performance and operational excellence in Snowflake,\nconcentrate on four key areas that directly impact your workloads.\n\n- **Workload management & optimization:** This involves configuring\n  virtual warehouses to match specific workload demands (e.g.,\n  separating data loading from BI queries), implementing dynamic scaling\n  policies to handle fluctuations in demand, and continuously analyzing\n  query performance to identify and resolve bottlenecks. For AI\n  workloads, this means providing sufficient compute for model training\n  without disrupting other business-critical analytics.\n\n- **Capacity & cost management:** This area focuses on forecasting\n  future needs based on usage patterns and business growth. It includes\n  establishing budgets, setting alerts for cost anomalies using resource\n  monitors, and employing strategies like query optimization and\n  choosing the right warehouse size to manage consumption effectively.\n  The goal is to ensure you have the resources you need without\n  unnecessary expense.\n\n- **Monitoring, logging, & alerting:** A comprehensive monitoring\n  strategy is crucial for proactive management. This involves leveraging\n  Snowflake's native monitoring capabilities (e.g., Snowsight\n  dashboards, QUERY_HISTORY view) and integrating with third-party\n  tools. Key activities include tracking credit consumption, monitoring\n  query queues and latency, and setting up automated alerts for\n  performance degradation, security events, or system errors to enable a\n  rapid response from your SRE and engineering teams.\n\n- **Business Continuity & Disaster Recovery (BCDR):** This ensures your\n  data and operations are resilient. It involves defining Recovery Time\n  Objectives (RTO) and Recovery Point Objectives (RPO) for critical\n  workloads. Key practices include leveraging Snowflake's cross-region\n  data replication and failover/failback features to protect against\n  regional outages and implementing regular testing of your BCDR plan to\n  ensure its effectiveness.\n\n### Phase-based activities\n\n#### Prepare\n\nIn this initial phase, the focus is on planning and design to build a\nfoundation for operational excellence.\n\n- **Define Service Level Objectives (SLOs):** Work with business\n  stakeholders to define and document clear performance targets for key\n  workloads. For example, specify the maximum acceptable latency for an\n  executive dashboard (Analytics) or the required completion time for a\n  critical data ingestion pipeline (Data Engineering). Build in the\n  training and learning plans to enable personas to function at high\n  effectiveness.\n\n- **Establish warehouse strategy:** Design a multi-warehouse strategy\n  that isolates workloads to prevent resource contention. For instance,\n  create separate virtual warehouses for data loading (ETL/ELT), BI\n  tools, data science experimentation (AI), and customer-facing\n  applications (Applications).\n\n- **Plan for monitoring:** Identify key performance indicators (KPIs) to\n  monitor, such as query latency, queueing time, credit consumption, and\n  storage growth. Select the monitoring tools (native Snowflake or\n  third-party) and define the alerting strategy.\n\n- **Design BCDR Plan:** Determine RTO/RPO requirements for different\n  datasets and workloads. Based on these, design a replication and\n  failover strategy using Snowflake's features.\n\n#### Implement\n\nDuring implementation, you will build and configure the Snowflake\nenvironment based on the designs from the Prepare phase.\n\n- **Configure virtual warehouses:** Create the virtual warehouses\n  defined in your strategy, setting appropriate sizes (e.g., X-Small for\n  ad-hoc queries, Large for data transformation jobs) and auto-scaling\n  policies.\n\n- **Set up resource monitors:** Implement resource monitors to control\n  costs and prevent unexpected warehouse usage. Configure monitors to\n  suspend warehouses or send notifications when credit consumption\n  reaches a predefined threshold.\n\n- **Implement monitoring & alerting:** Configure Snowsight dashboards or\n  integrate with external tools like Datadog or Grafana to visualize\n  KPIs. Set up automated alerts for long-running queries, failed tasks,\n  or cost spikes.\n\n- **Configure data replication:** For BCDR, set up account replication\n  for your primary databases to a secondary Snowflake region.\n\n#### Operate\n\nThe Operate phase focuses on the day-to-day management and maintenance\nof the Snowflake environment.\n\n- **Proactive monitoring:** SRE and Engineering teams continuously\n  monitor dashboards and respond to alerts. They actively look for\n  performance degradation, resource contention, and signs of system\n  stress.\n\n- **Query performance tuning:** Regularly review query history to\n  identify inefficient or long-running queries. Use the Query Profile to\n  diagnose bottlenecks (e.g., table scans, \"exploding\" joins) and work\n  with developers to optimize SQL code.\n\n- **Cost management:** Review daily and monthly credit consumption\n  against budgets. Analyze usage patterns to identify opportunities for\n  cost savings, such as shutting down idle warehouses or resizing\n  underutilized ones.\n\n- **Execute BCDR drills:** Periodically conduct failover tests to ensure\n  the disaster recovery plan works as expected and that the team is\n  prepared to execute it.\n\n#### Improve\n\nThis phase is about continuous improvement through analysis, learning,\nand refinement.\n\n- **Conduct performance reviews:** Hold regular (e.g., quarterly)\n  reviews of workload performance against the established SLOs. Analyze\n  trends in query performance and resource utilization. Feed persona\n  knowledge gaps back into the training and development program.\n\n- **Refine warehouse configuration:** Based on usage data, adjust\n  warehouse sizes, scaling policies, and workload assignments. For\n  example, if a data science warehouse is consistently underutilized,\n  consider downsizing it or merging it with another non-critical\n  workload.\n\n- **Optimize data structures:** Analyze query patterns to identify\n  opportunities for performance gains through data modeling\n  improvements, such as implementing clustering keys on large tables to\n  improve query pruning.\n\n- **Update BCDR Plan:** Incorporate lessons learned from BCDR drills and\n  evolving business requirements into the disaster recovery plan.\n\n### Recommendations\n\nHere are the key recommendations focused specifically on ensuring\noperational readiness and performance for your Snowflake environment.\n\n#### Isolate workloads to guarantee performance\n\nYour top priority for predictable performance is to prevent different\njobs from competing for the same resources. A heavy data science task\nshould never slow down a critical business dashboard.\n\n**Workload isolation** ensures that each process gets the compute it\nneeds without interference.\n\n- **For Architects and Engineering Leads:** Define a clear warehouse\n  strategy by categorizing your workloads (e.g., INGESTION,\n  TRANSFORMATION, ANALYTICS, DATA_SCIENCE). Mandate this separation as a\n  core design principle.\n\n- **For Engineers and SREs:** Create distinct virtual warehouses for\n  each category. Use Snowflake's **Role-Based Access Control (RBAC)** to\n  enforce this strategy. For example, grant your ETL tool's service role\n  USAGE permission *only* on the INGESTION_WH. This simple step makes it\n  impossible for an ingestion process to impact analytics performance.\n\nFor additional information, review the best practices in [Virtual\nWarehouse\nConsiderations](https://docs.snowflake.com/en/user-guide/warehouses-considerations).\n\n#### Continuously tune warehouse size for optimal performance\n\nChoosing the right warehouse size is a balancing act. Too small, and\nqueries will run slowly or fail; too large, and you're wasting\nresources. The key is to use data, not guesswork, to find the sweet\nspot.\n\n- **For Developers (Engineering & Data Science):** When building a new\n  job, **start with a small warehouse** (X-SMALL or SMALL). After a test\n  run, immediately open the **Query Profile** in Snowsight. Look for\n  significant time spent on **\"Local or Remote Disk I/O.\"** This is\n  called \"spilling,\" and it's a clear sign the warehouse is too small\n  for the data it's processing. Test with the next size up until\n  spilling is minimal.\n\n- **For SREs:** Proactively monitor for performance issues. Query the\n  SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_LOAD_HISTORY view to find warehouses\n  with high AVG_RUNNING and AVG_QUEUED_LOAD times. This data points you\n  directly to overloaded warehouses that are creating bottlenecks.\n\nLearn to diagnose bottlenecks using the [Query\nProfile](https://docs.snowflake.com/en/user-guide/ui-query-profile)\nand monitor load with the views in [Monitoring Warehouse\nLoad](https://docs.snowflake.com/en/user-guide/warehouses-monitor-load).\n\n#### Automate monitoring and alerting\n\nYou can't achieve operational readiness by manually checking dashboards.\nYou need an automated system that alerts you to problems *before* your\nusers report them.\n\n- **For SRE and Operations teams:**\n\n  1.  **Identify critical scenarios:** Define what constitutes a\n      problem, such as a data loading task failing, a query running\n      longer than 30 minutes, or a sudden spike in warehouse queuing.\n\n  2.  **Build detection with Snowflake Tasks:** Write SQL queries\n      against the SNOWFLAKE.ACCOUNT_USAGE views (like QUERY_HISTORY and\n      TASK_HISTORY) to detect these scenarios.\n\n  3.  **Schedule the queries to run automatically** using a CREATE TASK\n      statement. For instance, a task can run every five minutes to look\n      for failed tasks.\n\n  4.  **Trigger alerts:** From the task, use an **External Function** to\n      send a notification directly to your team's incident management\n      tool, like PagerDuty or Slack.\n\nBuild your automated alert system by following the guide [Introduction to\nTasks](https://docs.snowflake.com/en/user-guide/tasks-intro).\n\n#### Validate your recovery plan with regular drills\n\nAn untested disaster recovery (BCDR) plan is just a theory. Operational\nreadiness means having a proven, practiced process to restore service\nafter a major incident.\n\n- **For Architects and SREs:** Schedule and lead BCDR drills at least\n  twice a year. After providing notice to stakeholders, initiate the\n  failover using a single command: ALTER DATABASE my_db ENABLE FAILover\n  TO ACCOUNT my_secondary_account;.\n\n- **For Application and Engineering Teams:** Actively participate in the\n  drill. Once the failover is complete, connect your applications and\n  tools to Snowflake (the connection URL doesn't change) and run a\n  pre-written script to validate data integrity and system\n  functionality. Your feedback is crucial for refining the recovery\n  process. This \"muscle memory\" ensures your team can execute flawlessly\n  during a real emergency.\n\nFind the specific commands and procedures in the guide for [Database\nReplication and\nFailover/Failback](https://docs.snowflake.com/en/user-guide/account-replication-intro).\n\n### Persona responsibilities (RACI chart)\n\nThe table below outlines the roles and responsibilities for ensuring\noperational readiness and performance.\n\n**Legend:** **R** - Responsible, **A** - Accountable, **C** - Consulted,\n**I** - Informed\n\n| Activity | C-Level (CIO/CDO/CFO) | Chief Enterprise Architect | Engineering | Data Science | Security | SRE |\n|---|---|---|---|---|---|---|\n| Define business SLOs & budgets | A | R | I | I | I | I |\n| Design warehouse strategy | I | A | R | C | I | R |\n| Implement & configure warehouses | I | C | A | I | I | R |\n| Monitor cost & performance | I | I | R | I | I | A |\n| Optimize queries & pipelines | I | C | A | R | I | C |\n| Define & test BCDR plan | A | R | R | C | C | R |\n| Respond to performance incidents | I | I | R | I | I | A |\n\n## Automate infrastructure & maintenance\n\n### Overview\n\nAutomating infrastructure and maintenance is crucial for achieving\nefficiency, consistency, and scalability in the Snowflake AI Data Cloud.\nBecause Snowflake is a fully managed service, automation efforts focus\nless on provisioning underlying servers and more on managing the\nconfiguration, workloads, and ecosystem surrounding your data. This\nframework provides principles and best practices for automating the\nsetup, deployment, and operation of your Snowflake environment to\nsupport data engineering, analytics, AI, and application workloads\nreliably and at scale.\n\n### Focus areas\n\nTo effectively automate your Snowflake environment, concentrate on four\nkey areas. These areas provide a structured approach to managing your\ndata ecosystem programmatically, reducing manual effort and minimizing\nhuman error.\n\n- **Infrastructure as Code (IaC):** This is the practice of managing and\n  provisioning your Snowflake environment through machine-readable\n  definition files rather than manual setup. This includes creating and\n  managing databases, schemas, warehouses, roles, users, and resource\n  monitors declaratively. This ensures environments are consistent,\n  repeatable, and version-controlled.\n\n- **CI/CD for data & applications:** Continuous Integration and\n  Continuous Deployment (CI/CD) automates the build, test, and\n  deployment of your data pipelines and applications. For Snowflake,\n  this means automating the deployment of SQL scripts, dbt models,\n  Snowpark jobs (Python, Java, Scala), AI/ML models, and Snowflake\n  Native Apps. This practice accelerates development cycles and improves\n  the reliability of changes.\n\n- **Observability & monitoring automation:** This involves automatically\n  collecting, analyzing, and acting upon telemetry data from Snowflake.\n  This includes tracking query performance, credit consumption, storage\n  costs, and security access patterns. Automated monitoring provides\n  proactive insights into the health, performance, and cost of your\n  workloads, triggering alerts or optimization routines.\n\n- **Automated governance & security:** This area focuses on\n  programmatically enforcing your security and governance policies. It\n  includes automating user and role provisioning (Role-Based Access\n  Control - RBAC), applying data masking policies, monitoring for\n  compliance deviations, and managing network policies and integrations.\n  Automation ensures that security is consistently applied and auditable\n  across the platform.\n\n### Phase-based activities\n\nAdopting automation is a journey. The following activities are organized\nby phase to provide a clear roadmap from initial preparation to\ncontinuous improvement, aligned with our defined focus areas.\n\n### Prepare\n\nThe **Prepare** phase is about planning and laying the foundation for\nsuccessful automation.\n\n| Focus Area | Activities |\n|---|---|\n| Infrastructure as Code (IaC) | - Evaluate and select an IaC tool (e.g., Terraform, Schemachange).\u003Cbr\u003E- Define and document naming conventions and standards for all Snowflake objects.\u003Cbr\u003E- Establish a Git repository structure for managing your IaC configurations. |\n| CI/CD for data & applications | - Choose CI/CD tools (e.g., GitHub Actions, Jenkins, GitLab CI) that integrate with your code repositories.\u003Cbr\u003E- Define a branching and deployment strategy (e.g., GitFlow) for promoting changes from development to production. |\n| Observability & monitoring | - Identify key metrics for cost, performance, and security that need to be tracked. Evaluate tools for collecting and visualizing data from the Snowflake `ACCOUNT_USAGE` schema.\u003Cbr\u003E- Define initial alert thresholds for critical events like high credit usage or long-running queries. |\n| Automated governance | - Define your RBAC model and map business roles to Snowflake roles.\u003Cbr\u003E- Document your data classification standards and corresponding security controls (e.g., masking policies for PII). |\n\n\n### Implement\n\nThe Implement phase involves the initial build-out and rollout of your\nautomation scripts and pipelines.\n\n| Focus Area | Activities |\n|---|---|\n| Infrastructure as Code (IaC) | - Develop initial IaC modules to manage core objects: roles, users, warehouses, and databases.\u003Cbr\u003E- Create a sandbox environment entirely provisioned through your IaC scripts to validate the process. |\n| CI/CD for data & applications | - Build a starter CI/CD pipeline for a single data engineering (e.g., dbt) or Snowpark project.\u003Cbr\u003E- This pipeline should automate code linting, unit testing, and deployment to a development environment. |\n| Observability & monitoring | - Develop scripts or configure tools to automatically pull data from `ACCOUNT_USAGE` into a monitoring dashboard.\u003Cbr\u003E- Configure basic automated alerts for budget overruns (via resource monitors) and warehouse contention. |\n| Automated governance | - Write scripts to provision your defined RBAC model in Snowflake. \u003Cbr\u003E- Implement initial dynamic data masking policies on a non-production table containing sensitive data. |\n\n### Operate\n\nThe Operate phase focuses on using and managing your automated systems\nfor day-to-day activities.\n\n| Focus Area | Activities |\n|---|---|\n| Infrastructure as Code (IaC) | - Use your IaC repository and pull-request workflow as the sole method for making environmental changes.\u003Cbr\u003E- Run periodic checks to detect any manual changes (\"drift\") that deviate from the code-defined state. |\n| CI/CD for data & applications | - All code changes for data pipelines, AI models, and applications are deployed to production via the automated CI/CD pipeline.\u003Cbr\u003E- Use automated testing gates to prevent regressions from reaching production.\u003Cbr\u003E- Implement fix forward or rollback for defects. |\n| Observability & monitoring | - Regularly review automated cost and performance dashboards.\u003Cbr\u003E- Integrate automated alerts with your team's communication channels (e.g., Slack, PagerDuty). |\n| Automated governance | - Run automated quarterly access reviews and entitlement reports.\u003Cbr\u003E- Automate the process of granting and revoking access based on requests from your identity provider (e.g., Okta, Azure AD) via SCIM. |\n\n\n### Improve\n\nThe Improve phase is about refining and optimizing your automation to\nincrease efficiency and capability.\n\n| Focus Area | Activities |\n|---|---|\n| Infrastructure as Code (IaC) | - Refactor IaC modules for greater reusability and simplicity.\u003Cbr\u003E- Implement automated validation and policy-as-code checks (e.g., ensuring all warehouses have auto-suspend enabled) before applying changes. |\n| CI/CD for data & applications | - Optimize pipeline performance to reduce deployment times.\u003Cbr\u003E- Introduce more sophisticated testing, such as data quality tests (e.g., using dbt tests) and integration tests within the pipeline.\u003Cbr\u003E- Explore zero-downtime deployment strategies for applications and stored procedures. |\n| Observability & monitoring | - Implement automated cost optimization actions, such as automatically resizing warehouses based on historical usage patterns.\u003Cbr\u003E- Use machine learning to forecast future credit usage and detect performance anomalies. |\n| Automated governance | - Automate the tagging of data objects based on their contents to streamline governance.\u003Cbr\u003E- Develop automated routines to scan for and mask newly discovered sensitive data, ensuring continuous compliance. |\n\n### Recommendations\n\n- **Start small and iterate:** Don't try to automate everything at once.\n  Begin with a single, high-impact area, such as role management via IaC\n  or deploying a single dbt project with CI/CD. Prove the value and\n  expand from there.\n\n- **Treat your platform code like application code:** All scripts,\n  configurations, and definitions (IaC, CI/CD, etc.) should be stored in\n  a version control system like Git. Use pull requests and code reviews\n  to manage changes. Decide early on rollback versus fix forward.\n\n- **Empower teams with self-service:** The goal of automation is to\n  enable teams (Data Engineering, AI, Analytics) to provision the\n  resources they need safely and efficiently without waiting for a\n  central team. Well-designed automation provides guardrails, not\n  roadblocks.\n\n- **Prioritize cost and performance monitoring:** The most immediate\n  benefits of automation often come from gaining control over\n  consumption. Automate the tracking of warehouse credit usage and query\n  performance to identify optimization opportunities early.\n\n- **Integrate security into your pipelines:** Shift security left by\n  embedding automated checks into your CI/CD process. This includes\n  scanning for insecure code patterns, checking for overly permissive\n  grants, and ensuring compliance with organizational policies before\n  deployment.\n\n### Persona responsibilities (RACI chart)\n\nThis RACI (Responsible, Accountable, Consulted, Informed) matrix\nclarifies the roles and responsibilities for automation activities\nacross different personas.\n\n**Legend:** **R** = Responsible, **A** = Accountable, **C** = Consulted,\n**I** = Informed\n\n| **Activity** | **C-Level (CIO/CDO)** | **Chief Architect** | **Engineering / SRE** | **Data Science** | **Security** |\n|----|----|----|----|----|----|\n| **Defining automation strategy & tooling** | A | R | C | C | C |\n| **Developing IaC modules & scripts** | I | C | R | I | C |\n| **Building CI/CD pipelines** | I | C | R | C | C |\n| **Managing environments via IaC** | I | A | R | I | I |\n| **Deploying workloads via CI/CD** | I | I | R | R | I |\n| **Defining & implementing monitoring alerts** | I | A | R | C | C |\n| **Automating governance & access controls** | A | C | R | I | R |\n| **Reviewing automated cost/usage reports** | A | I | C | C | I |\n\n## Enhance Observability & Issue Resolution\n\n### Overview\n\nObservability in the Snowflake AI Data Cloud is about gaining deep,\nactionable insights into your platform's health, performance, cost, and\nsecurity. It goes beyond simple monitoring by providing the context\nneeded to understand *why* something is happening, enabling you to move\nfrom reactive problem-fixing to proactive optimization. Effective\nobservability ensures your data engineering pipelines are reliable, your\nanalytics are fast and accurate, your AI models are performant, and your\napplications are secure. This framework provides a structured approach\nto building a comprehensive observability strategy that delivers trust\nand maximizes the value of your Snowflake investment for all\nstakeholders, from engineers to the C-suite.\n\n### Focus areas\n\nWe'll organize our observability strategy around four key focus areas.\nThese pillars ensure a holistic view of your Snowflake environment,\ncovering everything from cost efficiency to data integrity.\n\n- **Cost & performance intelligence:** This involves monitoring resource\n  consumption and query execution to optimize for both speed and spend.\n  The goal is to maximize performance while maintaining predictable\n  costs and providing clear chargeback/showback to business units.\n\n- **Workload health & reliability:** This focuses on the end-to-end\n  operational status of all workloads. It involves tracking the success\n  and performance of data ingestion, transformation jobs, analytics\n  queries, and AI/ML model execution to ensure they meet service-level\n  objectives (SLOs).\n\n- **Security & access analytics:** This is about safeguarding your data\n  by continuously monitoring who is accessing what, when, and how. It\n  includes tracking access patterns, identifying potential threats, and\n  ensuring compliance with governance policies.\n\n- **Data integrity & lineage:** This ensures the data itself is\n  accurate, fresh, and trustworthy. It involves monitoring data quality\n  metrics, tracking data lineage from source to consumption, and quickly\n  identifying the root cause of data-related issues.\n\n### Phase-based activities\n\nA successful observability strategy is implemented incrementally. The\nfollowing phases provide a roadmap from initial preparation to\ncontinuous improvement.\n\n#### Prepare\n\nThis foundational phase is about defining what \"good\" looks like by\nestablishing goals, metrics, and ownership before implementing any\ntools.\n\n| Focus area | Activities |\n|---|---|\n| Cost & performance intelligence | - Define cost allocation strategy: Establish a consistent tagging methodology for users, roles, and warehouses to enable accurate chargeback.\u003Cbr\u003E- Establish performance baselines: Identify key queries and workloads (e.g., critical dashboard refreshes, ETL jobs) and document their expected runtimes and credit consumption.\u003Cbr\u003E- Select tooling: Evaluate whether to use native Snowflake features (Snowsight, `ACCOUNT_USAGE` views), third-party observability platforms, or a combination. |\n| Workload health & reliability | - Define key Service Level Objectives (SLOs): For each workload, define measurable reliability targets. Examples: Snowpipe data freshness within 5 minutes; critical data transformation (dbt) jobs complete by 6 AM.\u003Cbr\u003E- Map critical data paths: Document the key data flows for your most important analytics, applications, and AI models. |\n| Security & access analytics | - Define sensitive data & roles: Classify sensitive data objects and map the roles and users that should have access.\u003Cbr\u003E- Establish alerting policies: Define what constitutes a security incident (e.g., unauthorized access attempts, privilege escalation, data exfiltration patterns) that requires an immediate alert. |\n| Data integrity & lineage | - Identify Critical Data Elements (CDEs): Pinpoint the most vital datasets that power executive dashboards, financial reporting, or production AI models.\u003Cbr\u003E- Define data quality rules: For CDEs, define rules for key metrics like freshness, completeness, and validity (e.g., `order_date` cannot be in the future). |\n\n#### Implement\n\nIn this phase, you'll configure the tools and processes defined during\npreparation to start collecting and visualizing observability data.\n\n| Focus area | Activities |\n|---|---|\n| Cost & performance intelligence | - **Configure resource monitors:** set up warehouse-level monitors to prevent budget overruns by suspending warehouses or sending notifications at defined credit thresholds.\u003Cbr\u003E- **Build foundational dashboards:** create Snowsight dashboards to visualize credit usage by warehouse/tag, identify long-running queries (`QUERY_HISTORY`), and monitor warehouse queuing. |\n| Workload health & reliability | - **Implement error notifications:** configure notifications for failed tasks (`SYSTEM$SEND_EMAIL`) or Snowpipe copy errors to immediately alert the responsible teams.\u003Cbr\u003E- **Monitor data ingestion:** use the `COPY_HISTORY` and `PIPE_USAGE_HISTORY` views to track the latency and health of data loading processes. |\n| Security & access analytics | - **Enable access monitoring:** build dashboards on top of the `ACCESS_HISTORY` and `LOGIN_HISTORY` views to visualize user login patterns, query activity on sensitive tables, and privilege grants.\u003Cbr\u003E- **Set up security alerts:**** implement Snowflake alerts to trigger notifications for defined security events, such as a user being granted the `ACCOUNTADMIN` role. |\n| Data integrity & lineage | - **Deploy data quality tests:** implement data quality checks as part of your data transformation pipeline (e.g., using dbt tests) that run on a schedule.\u003Cbr\u003E- **Utilize object tagging for lineage:** apply tags to tables and columns to create a basic, searchable framework for tracking data lineage. |\n\n\n#### Operate\n\nThis phase focuses on the day-to-day use of the implemented\nobservability systems to monitor health and resolve issues.\n\n| Focus area | Activities |\n|---|---|\n| Cost & performance intelligence | **Conduct regular cost reviews:** Hold weekly or bi-weekly reviews with engineering and finance teams to analyze spending trends and identify optimization opportunities.\u003Cbr\u003E**Triage performance issues:** Use query history and query profiles to investigate and troubleshoot slow-running queries, identifying bottlenecks like disk spilling or inefficient joins. |\n| Workload health & reliability | **Respond to workload alerts:** Triage and resolve alerts for failed tasks, data loading errors, or SLO breaches.\u003Cbr\u003E**Manage incidents:** Follow a defined incident management process for critical failures, including communication, root cause analysis (RCA), and post-mortems. |\n| Security & access analytics | **Review access logs:** Periodically audit access to sensitive data, investigate anomalous queries, and ensure access patterns align with business needs.\u003Cbr\u003E- Investigate security alerts: When an alert is triggered, follow a security runbook to investigate the potential threat, determine its impact, and remediate as needed. |\n| Data integrity & lineage | **Investigate data quality failures:** When a data quality test fails, use lineage information to trace the issue back to its source and notify the data producers.\u003Cbr\u003E**Communicate data incidents:** Proactively inform data consumers when a known data quality issue impacts their dashboards or applications. |\n\n\n#### Improve\n\nThis final phase is about moving from reactive to proactive operations\nby analyzing trends, automating responses, and continuously refining\nyour observability strategy.\n\n| Focus area | Activities |\n|---|---|\n| Cost & performance intelligence | **Automate warehouse scaling:** Use historical workload patterns to right-size warehouses or implement a more dynamic scaling strategy for spiky workloads.\u003Cbr\u003E **Optimize high-cost queries:** Proactively identify the top credit-consuming queries each month and assign them to engineering teams for performance tuning or rewriting. |\n| Workload health & reliability | **Perform trend analysis:** Analyze historical task and pipe error rates to identify systemic issues in data pipelines and prioritize fixes.\u003Cbr\u003E**Refine SLOs and alerts:** Adjust SLO thresholds based on historical performance and business needs. Tune alerts to reduce noise and false positives. |\n| Security & access analytics | **Automate access reviews:** Develop automated workflows to periodically require business owners to certify who has access to their data, reducing manual toil for security teams.\u003Cbr\u003E **Enhance threat detection models:** Use historical access data to build simple anomaly detection models (e.g., using Snowpark) to identify suspicious behavior that deviates from a user's normal baseline. |\n| Data integrity & lineage | **Implement automated lineage:** Adopt tools that automatically parse SQL from QUERY_HISTORY to generate column-level lineage, dramatically speeding up impact analysis and root cause identification.\u003Cbr\u003E**Expand data quality coverage:** Use insights from data incidents to expand data quality monitoring to more datasets across the platform. |\n\n### Recommendations\n\nThe following recommendations provide actionable steps for implementing\na robust observability and issue resolution strategy on Snowflake. They\nare designed to guide interactions between teams and leverage specific\nplatform features.\n\n### Establish a centralized observability data model\n\nInstead of allowing teams to query raw metadata independently, create a\ngoverned, centralized foundation for all observability data. This\nensures consistency and simplifies access control.\n\n**For Enterprise Architects & SREs:**\n\n- **Action:** In a dedicated OBSERVABILITY database, create a schema\n  (e.g., MONITORING). Use a service role with IMPORTED PRIVILEGES on the\n  SNOWFLAKE database to create **secure views** on top of critical\n  ACCOUNT_USAGE views. This decouples your monitoring from the\n  underlying Snowflake schema and provides a stable interface.\n\n- **Key views to include:**\n\n  - QUERY_HISTORY for performance analysis.\n\n  - WAREHOUSE_METERING_HISTORY for cost and load analysis.\n\n  - ACCESS_HISTORY and LOGIN_HISTORY for security forensics.\n\n  - TASK_HISTORY and PIPE_USAGE_HISTORY for data engineering workload\n    health.\n\n  - AUTOMATIC_CLUSTERING_HISTORY and MATERIALIZED_VIEW_REFRESH_HISTORY\n    for storage and performance optimization.\n\n**For Engineering & Data Science teams:**\n\n- **Action:** Build all monitoring dashboards and alerts exclusively\n  from these centralized, secure views. This ensures that everyone, from\n  a data engineer debugging a pipeline to a CIO reviewing costs, is\n  looking at the same source of truth.\n\n### Enrich observability data with contextual tagging\n\nRaw metrics like \"credit usage\" or \"query runtime\" are not actionable\nwithout context. A consistent tagging strategy is crucial for quickly\nisolating the source of any issue.\n\n**For Chief Architects & Engineering Leads:**\n\n- **Action:** Define and enforce a mandatory **Object Tagging** policy\n  for all key objects. The policy should require tags that map directly\n  to your operational structure, such as project_name, cost_center,\n  workload_type: \\[engineering, analytics, ai, application\\], and\n  owner_email.\n\n**For SREs & on-call engineers:**\n\n- **Action:** During an incident, use tags as the primary filtering\n  mechanism for issue resolution.\n\n  - **Cost spike:** If a **resource monitor** alert triggers,\n    immediately filter the WAREHOUSE_METERING_HISTORY view by tags to\n    identify which project_name or workload_type caused the overage.\n\n  - **Performance degradation:** If a dashboard is slow, filter\n    QUERY_HISTORY by the workload_type: analytics tag and the relevant\n    warehouse to find the long-running queries without the noise from\n    other workloads.\n\n### Implement persona-driven observability dashboards\n\nA single dashboard cannot serve everyone. Build a tiered set of\ndashboards in Snowsight that provides the right level of detail for each\npersona, enabling them to answer their specific questions quickly.\n\n**For SREs & platform owners:**\n\n- **Action:** Create a \"Platform Health\" triage dashboard. This is the\n  first place an on-call engineer looks. It should include:\n\n  - Active Snowflake Alerts.\n\n  - Recent task failures from TASK_HISTORY.\n\n  - High-latency data loads from PIPE_USAGE_HISTORY.\n\n  - Warehouse queuing and spilling metrics.\n\n  - Queries with error codes from the last hour.\n\n**For Engineering & Data Science leads:**\n\n- **Action:** Build \"Workload Performance\" dashboards for your specific\n  domains.\n\n  - **Data Engineering:** Visualize task dependencies (your DAG) and\n    color-code them by status (SUCCEEDED/FAILED) from **TASK_HISTORY**.\n    Track credit consumption per pipeline.\n\n  - **AI/ML:** Monitor the execution time and credit usage of Snowpark\n    model training jobs. Instrument Snowpark Python code to log metrics\n    to a Snowflake table and visualize them here.\n\n**For C-Level stakeholders (CIO/CFO):**\n\n- **Action:** Create a high-level \"Executive Summary\" dashboard showing:\n\n  - Platform-wide credit consumption vs. forecast.\n\n  - Cost breakdown by business unit (using tags).\n\n  - Key SLO attainment (e.g., \"99.9% of critical data pipelines\n    completed on time\").\n\n### Automate detection and response with alerts & tasks\n\nMove from passive monitoring to active, automated observability. Use\nSnowflake's native features to not only detect issues but also to notify\nthe right people and, where appropriate, trigger corrective actions.\n\n**For Security & SRE teams:**\n\n- **Action:** Implement the \"Detect, Notify, Remediate\" pattern using\n  Snowflake's serverless features.\n\n  1.  **Detect:** Create **Snowflake Alerts** that periodically run a\n      query to check for an issue.\n\n      - *Security Example:* CREATE ALERT suspicious_grant_alert ... IF\n        (EXISTS (SELECT 1 FROM ... QUERY_HISTORY WHERE query_text ILIKE\n        'GRANT ACCOUNTADMIN%')) ...\n\n      - *Performance Example:* An alert that checks QUERY_HISTORY for\n        queries running longer than 1 hour.\n\n  2.  **Notify:** Configure the Alert's action to call a **Notification\n      Integration** that sends a detailed message to a Slack channel,\n      PagerDuty, or email via SYSTEM\\$SEND_EMAIL. The message should\n      include context, like the QUERY_ID or USER_NAME, to accelerate\n      triage.\n\n  3.  **Remediate (with caution):** For well-understood, low-risk\n      problems, have the Alert's action call a stored procedure. For\n      example, an alert for a long-running, non-critical query could\n      call a procedure that cancels it using SYSTEM\\$CANCEL_QUERY.\n\n### Persona responsibilities (RACI chart)\n\nThis RACI (Responsible, Accountable, Consulted, Informed) matrix\nclarifies the roles and responsibilities for key observability\nactivities across different teams.\n\n**Legend:** **R** = Responsible, **A** = Accountable, **C** = Consulted,\n**I** = Informed\n\n| Activity | C-Level (CIO/CDO/CFO) | Chief Architect | Engineering | Data Science | Security | SRE |\n|---|---|---|---|---|---|---|\n| Define cost & security policies | A | R | C | C | R | C |\n| Implement & manage budgets (resource monitors) | A | C | R | I | I | R |\n| Build & maintain observability dashboards | I | C | R | C | C | R |\n| Investigate & resolve | I | C | R | C | I | R |\n| Monitor & triage workload failures (ETL, AI) | I | I | R | R | I | A |\n| Define & monitor data quality rules | C | C | C | A | I | I |\n| Investigate & remediate security incidents | A | C | C | I | R | C |\n| Conduct access & entitlement reviews | A | I | C | C | R | I |\n \n\n## Manage incidents & problems\n\n### Overview\n\nEffective incident and problem management is the cornerstone of a\nreliable data platform. In the Snowflake AI Data Cloud, where critical\ndata pipelines, analytics, AI workloads, and applications depend on high\navailability and performance, a structured approach to handling\ndisruptions is essential. The primary goal is to maintain the trust of\nyour stakeholders by ensuring that data services are available,\nperformant, and deliver accurate results.\n\nThis framework addresses two distinct but related disciplines:\n\n- **Incident Management:** Focuses on the immediate restoration of\n  service following an unplanned disruption. The objective is to\n  minimize business impact and reduce the Mean Time to Resolution\n  (MTTR). In Snowflake, an incident could be a stalled data engineering\n  pipeline, a severely degraded analytics dashboard, or an application\n  query failure.\n\n- **Problem Management:** Focuses on identifying and remediating the\n  underlying root cause of one or more incidents. By addressing the\n  source of the issue, problem management aims to prevent future\n  incidents from occurring, thereby increasing the overall stability and\n  resilience of the platform. Build in AI Models to automatically\n  remediate incidents, predict issues and track anomalies.\n\nThis section provides a structured approach for managing the entire\nincident lifecycle within the Snowflake AI Data Cloud—from proactive\ndetection and rapid response to thorough root cause analysis. Adopting\nthese practices builds confidence in your data platform, ensuring it\nremains a dependable foundation for critical business decisions and\ninnovation.\n\n### **Focus areas**\n\n**Detection & alerting**\n\nThis is the \"smoke alarm\" for your data platform. The goal is to\nidentify deviations from normal behavior as quickly as possible, often\nbefore users are impacted. This involves instrumenting key Snowflake\nmetrics, such as query execution time, warehouse load, and data latency,\nand setting up automated alerts to notify the on-call team of potential\nissues.\n\n**Response & Triage**\n\nWhen an alert fires, this is the initial assessment and firefighting\nphase. The focus is on understanding the impact (\"who is affected?\"),\ndetermining the severity (\"how bad is it?\"), and executing immediate\nactions to stabilize the service. In Snowflake, this could involve\ncanceling a runaway query, resizing a virtual warehouse, or\ncommunicating the initial findings to stakeholders.\n\n**Resolution & recovery**\n\nThis area focuses on fully resolving the incident and returning the\nservice to a healthy state. It involves deeper diagnosis to find a fix\nor a workaround that restores functionality for all affected users. This\nphase concludes when the immediate impact is over and the service is\noperating under normal conditions again.\n\n**Root Cause Analysis (RCA)**\n\nOnce the immediate fire is out, the problem management process begins.\nRCA is the systematic investigation to uncover the fundamental cause of\nan incident, not just the symptoms. The objective is to ask \"why\"\nrepeatedly until the core issue is identified, such as an inefficient\nquery pattern, a flawed data model, or an inadequate warehouse\nconfiguration.\n\n**Readiness & Preparation**\n\nThis is the proactive area focused on learning from past incidents and\nimproving future responses. It involves creating and refining runbooks\nfor common failure scenarios, conducting incident response drills, and\nensuring roles and communication plans are clearly defined. A\nwell-prepared team can significantly reduce the time it takes to resolve\nfuture incidents.\n\n### Phase-based activities\n\n### Prepare\n\nThis phase includes all the proactive work your teams do *before* an\nincident occurs to ensure they are ready to respond effectively.\n\n- **Detection & alerting:** Define Key Performance Indicators (KPIs) for\n  your critical workloads, such as query duration, warehouse queuing,\n  and data ingestion latency. Establish the acceptable performance\n  thresholds that, if crossed, will trigger an alert.\n\n- **Response & triage:** Define clear incident **severity levels**\n  (e.g., SEV-1, SEV-2) based on business impact. Create communication\n  templates and establish on-call rotations and escalation paths so\n  everyone knows their role.\n\n- **Resolution & recovery:** Identify and document potential mitigation\n  actions for common incidents. For example, note the exact commands for\n  resizing a warehouse or terminating a query.\n\n- **Root Cause Analysis (RCA):** Create a standardized, blameless\n  **post-mortem template** to ensure consistent analysis after an\n  incident. Define the criteria for which incidents require a formal\n  RCA.\n\n- **Readiness & preparation:** Brainstorm the most likely or most\n  impactful failure scenarios for your specific Snowflake workloads,\n  such as a bad data deployment or a query storm from an application.\n\n### Implement\n\nIn this phase, you build and configure the systems, tools, and\ndocumentation needed to manage incidents efficiently.\n\n- **Detection & alerting:** Build **Snowsight dashboards** using\n  ACCOUNT_USAGE data to visualize your KPIs. Configure **Snowflake\n  Alerts** or integrate with third-party tools like PagerDuty to send\n  notifications when your defined thresholds are breached.\n\n- **Response & triage:** Set up your on-call scheduling software and\n  configure dedicated communication channels, such as a specific Slack\n  channel, where the incident response team will coordinate.\n\n- **Resolution & recovery:** Ensure that on-call engineers have the\n  necessary permissions in Snowflake to execute mitigation commands,\n  like ALTER WAREHOUSE, without needing to wait for approvals.\n\n- **Root Cause Analysis (RCA):** Create a centralized and searchable\n  repository, such as a Confluence space or shared drive, to store all\n  post-mortem documentation for future reference.\n\n- **Readiness & preparation:** Write and maintain runbooks that provide\n  clear, step-by-step diagnostic and resolution instructions for the\n  failure scenarios you identified in the Prepare phase.\n\n### Operate\n\nThis phase covers the real-time activities your team performs *during*\nan active incident.\n\n- **Detection & alerting:** Monitor dashboards to correlate events and\n  understand the scope of the issue. Acknowledge and begin investigating\n  triggered alerts to confirm that an incident is occurring.\n\n- **Response & triage:** Officially declare an incident and assign the\n  correct severity level. Assemble the response team in the designated\n  channel and execute the communication plan to keep stakeholders\n  informed.\n\n- **Resolution & recovery:** Execute the appropriate resolution from\n  your runbook. This could involve running SYSTEM\\$CANCEL_QUERY(),\n  resizing a warehouse with ALTER WAREHOUSE, or triggering a database\n  failover. Verify that the service is restored before closing the\n  incident.\n\n- **Root Cause Analysis (RCA):** Gather evidence while the incident is\n  active. Save relevant query IDs, take screenshots of the Query\n  Profile, and note key event timestamps to support the future RCA.\n\n- **Readiness & preparation:** Consult the appropriate runbook to guide\n  your response. This ensures a consistent and efficient process,\n  preventing responders from having to solve problems from scratch under\n  pressure.\n\n### Improve\n\nThis phase is about learning from past incidents *after* they are\nresolved to build a more resilient system and process.\n\n- **Detection & alerting:** Tune your alerts to reduce false positives\n  (noise) and false negatives (missed incidents). Create new alerts to\n  detect the failure modes discovered during your most recent\n  post-mortem.\n\n- **Response & triage:** Based on feedback, refine your severity\n  definitions, communication templates, and on-call escalation processes\n  to make them more effective for the next incident.\n\n- **Resolution & recovery:** Document the successful resolution steps in\n  the relevant runbook. If a manual workaround was used, create a ticket\n  for a permanent engineering **fix** to address the underlying issue.\n\n- **Root Cause Analysis (RCA):** Conduct a blameless post-mortem with\n  all involved parties. Perform a deep-dive analysis using Snowflake's\n  Query Profile to find the true root cause and assign owners to\n  actionable follow-up items.\n\n- **Readiness & preparation:** Update your runbooks with new information\n  learned during the incident. Proactively test your team's readiness\n  and the accuracy of your documentation by conducting \"Game Days\" that\n  simulate real-world incidents.\n\n### Recommendations\n\nEffective incident management in Snowflake relies on leveraging its\nunique architectural strengths—separating compute from storage and\nproviding rich operational metadata. These recommendations provide\nactionable steps for detection, response, and improvement.\n\n### Establish a single source of truth for triage\n\nDuring an incident, speed and accuracy are paramount. Centralize your\ninitial investigation using Snowflake's comprehensive metadata logs to\nshorten the time from detection to diagnosis.\n\nCentralize incident detection with ACCOUNT_USAGE views\n\n- **Action**: Your on-call SRE and Engineering teams should treat the\n  SNOWFLAKE.ACCOUNT_USAGE schema as the definitive event log. Build\n  pre-configured Snowsight dashboards and alerts that immediately\n  highlight anomalies in key views:\n\n  - QUERY_HISTORY: To spot long-running, failing, or unusually high-IO\n    queries.\n\n  - WAREHOUSE_LOAD_HISTORY: To detect warehouse overload, queuing, and\n    resource contention.\n\n  - LOGIN_HISTORY: To investigate potential access or security-related\n    incidents.\n\n- **Snowflake Tooling**: [ACCOUNT_USAGE\n  schema](https://docs.snowflake.com/en/sql-reference/account-usage),\n  Snowsight Dashboards, Snowflake Alerts.\n\n### Isolate and mitigate performance incidents immediately \n\nSnowflake's architecture provides powerful levers to contain and resolve\nperformance degradation without affecting the entire platform. Your\nresponse should focus on isolating the problematic workload and\nadjusting compute resources dynamically.\n\n**Terminate runaway queries without affecting the warehouse**\n\n- **Action:** The on-call Engineer should first use QUERY_HISTORY to\n  identify the specific query ID causing a performance issue.\n  Immediately execute the SYSTEM\\$CANCEL_QUERY() function to terminate\n  that single query. This surgical action stops the resource drain\n  without needing to restart the entire virtual warehouse, leaving all\n  other running queries unaffected.\n\n- **Snowflake Tooling:**\n  [SYSTEM$CANCEL_QUERY(\u003Cquery_id\u003E)](https://docs.snowflake.com/en/sql-reference/functions/system_cancel_query)\n\n**Dynamically scale compute to resolve resource contention**\n\n- **Action:** If an incident is caused by a legitimate surge in workload\n  (e.g., month-end reporting), the SRE or Engineering Lead can instantly\n  mitigate it. For warehouses already configured as Multi-cluster\n  Warehouses (MCW), scaling is automatic. If not, manually resize the\n  warehouse using the ALTER WAREHOUSE command. This on-the-fly scaling\n  resolves queuing and provides immediate relief, a unique advantage of\n  Snowflake's elastic architecture.\n\n- **Snowflake Tooling:** [ALTER\n  WAREHOUSE](https://docs.snowflake.com/en/sql-reference/sql/alter-warehouse)\n  ... SET WAREHOUSE_SIZE = ..., Multi-cluster Warehouse configuration.\n\n### Automate disaster recovery and high-availability responses \n\nFor major incidents like a regional outage, your response should be\nswift, tested, and reliable. This depends on preparation and leveraging\nSnowflake's built-in business continuity features.\n\n**Execute pre-defined runbooks for cross-region failover.**\n\n- **Action:** The CIO/CTO provides the business approval, and the SRE\n  team executes the failover runbook. This involves running a single\n  command (ALTER FAILOVER GROUP ... PRIMARY) to promote a replica\n  database in a secondary region to primary status. This action is\n  underpinned by asynchronous database replication, which should already\n  be configured for all critical databases. Applications can then be\n  seamlessly rerouted using **Client Redirect**.\n\n- **Snowflake Tooling:** [Database\n  Replication](https://docs.snowflake.com/en/user-guide/account-replication-intro),\n  **Failover Groups**, **Client Redirect**\n\n### Perform data-driven post-mortems for continuous improvement\n\nEvery incident is a learning opportunity. Use Snowflake's detailed query\nexecution data to move beyond symptoms and identify the precise root\ncause, leading to permanent fixes.\n\n**Analyze the query profile to pinpoint inefficiencies**\n\n- **Action:** As part of a blameless post-mortem, the **Engineering**\n  and **Data Science** teams involved should analyze the **Query\n  Profile** of the problematic query in Snowsight. This tool provides a\n  visual, step-by-step breakdown of query execution. Look for specific\n  anti-patterns like \"exploding\" joins, excessive remote disk spilling,\n  or full table scans on poorly clustered data. This turns a generic\n  \"slow query\" incident into an actionable finding.\n\n- **Snowflake Tooling:** [Query\n  Profile](https://docs.snowflake.com/en/user-guide/ui-query-profile)\n  interface in Snowsight.\n\n### Persona responsibilities (RACI chart)\n\nA RACI (Responsible, Accountable, Consulted, Informed) matrix defines\nthe roles and responsibilities for incident and governance management:\n\n**Legend:** **R** = Responsible, **A** = Accountable, **C** = Consulted,\n**I** = Informed\n\n| Role | CIO/CDO/CTO/CFO | Chief Enterprise Architect | Engineering | Data Science | Security | SRE |\n|---|---|---|---|---|---|---|\n| Incident management | A | C | R | I | C | R |\n| Governance | A | R | C | I | R | C |\n| Security | A | C | I | I | R | C |\n| Cost management | A | C | R | I | I | C |\n\n## Enable collaboration & Secure Sharing\n\n### Overview\n\nEnabling secure, real-time collaboration across your organization, with\ncustomers, and with business partners is a foundational pillar of the\nSnowflake AI Data Cloud. Unlike traditional methods that involve risky\nand inefficient data duplication and FTP transfers, Snowflake's\narchitecture allows you to **share live, governed data without moving or\ncopying it**. This unlocks new opportunities for data-driven insights,\nAI development, and monetization while maintaining a strong security and\ngovernance posture.\n\nThis framework provides principles and best practices to help you build\na robust strategy for sharing and collaboration. By implementing these\nguidelines, you can break down data silos, accelerate innovation, and\ncreate new value streams, all while ensuring your data remains\nprotected.\n\n### Focus areas\n\nTo effectively enable collaboration and secure sharing in Snowflake,\nconcentrate on four key areas. These areas provide a structured approach\nto designing, implementing, and managing your data sharing ecosystem.\n\n- **Secure data sharing architecture:** This area focuses on the\n  foundational components and patterns for sharing data. It covers the\n  technical constructs like Shares, Reader Accounts, and the Snowflake\n  Marketplace, and how to structure them to meet various business needs,\n  from internal cross-departmental access to public data monetization.\n\n- **Granular governance and control:** Secure sharing is impossible\n  without robust governance. This area addresses the policies and\n  controls needed to protect data. Key technologies include Role-Based\n  Access Control (RBAC), Dynamic Data Masking, Row-Access Policies, and\n  Data Classification (using tags) to ensure that consumers only see the\n  data they are authorized to see.\n\n- **Unified collaboration for workloads:** This focuses on the tools and\n  features that enable different teams and workloads to collaborate\n  effectively on the same data. It includes using Snowpark for joint\n  data science and engineering projects, leveraging Streams and Tasks\n  for building collaborative data pipelines, and developing Snowflake\n  Native Apps to share data-powered applications securely.\n\n- **Comprehensive auditing and monitoring:** To maintain trust and\n  security, you should have visibility into how shared data is being\n  used. This area covers the practices for monitoring share consumption,\n  auditing access patterns using views like ACCESS_HISTORY, and setting\n  up alerts to detect and respond to anomalous activity.\n\n### Phase-based activities\n\nA successful data sharing strategy is implemented progressively. The\nfollowing phases outline the journey from initial planning to continuous\nimprovement.\n\n### Prepare\n\nThe Prepare phase is about establishing the strategy, governance\nframework, and organizational alignment needed for secure data sharing.\n\n| **Focus area** | **Activities** |\n|----|----|\n| **Secure data sharing architecture** | Identify and prioritize datasets suitable for sharing. Define potential data consumers (internal teams, external partners) and their access requirements. Design a hub-and-spoke or federated sharing model. |\n| **Granular governance and control** | Define a data sharing policy that outlines acceptable use, security requirements, and the approval process. Establish a data classification framework to tag sensitive data (e.g., PII, confidential). |\n| **Unified collaboration for workloads** | Identify key collaboration use cases, such as joint AI/ML model development or building a shared analytics dashboard. |\n| **Comprehensive auditing and monitoring** | Define key metrics for success and risk, such as the number of data consumers, query volume on shares, and types of sensitive data being accessed. Plan your auditing strategy. |\n\n### Implement\n\nThe Implement phase involves the hands-on configuration of the Snowflake\nplatform to bring your sharing strategy to life.\n\n| **Focus area** | **Activities** |\n|----|----|\n| **Secure data sharing architecture** | Create SHARE objects and grant them access to specific database objects (tables, secure views). For external sharing without a Snowflake account, provision Reader Accounts. For broad distribution, create listings on the Snowflake Marketplace. |\n| **Granular governance and control** | Implement RBAC roles for data sharing administration and consumption. Apply dynamic data masking policies to sensitive columns and row-access policies to tables before adding them to a share. Use object tags to automate policy application. |\n| **Unified collaboration for workloads** | Develop and deploy Snowpark applications that can be shared via listings. Build shared data engineering pipelines using Streams and Tasks. Package and publish Snowflake Native Apps to offer data and application logic together. |\n| **Comprehensive auditing and monitoring** | Configure alerts on QUERY_HISTORY and ACCESS_HISTORY to monitor for unusual access patterns on shared objects. Set up monitoring dashboards to track share consumption and performance. |\n\n### Operate\n\nThe Operate phase focuses on the day-to-day management of your data\nsharing environment, ensuring it runs smoothly and securely.\n\n| **Focus area** | **Activities** |\n|----|----|\n| **Secure data sharing architecture** | Manage the lifecycle of data consumers, including approving requests, providing support, and revoking access when necessary. Regularly update data in shares to ensure consumers have the freshest information. |\n| **Granular governance and control** | Conduct periodic reviews of access controls and sharing policies to ensure they remain aligned with business needs and compliance requirements. |\n| **Unified collaboration for workloads** | Provide support for shared assets like Snowpark applications and data pipelines. Gather feedback from users to identify areas for improvement. |\n| **Comprehensive auditing and monitoring** | Regularly review audit logs and monitoring dashboards. Investigate any security alerts or performance degradation related to data sharing activities. |\n\n### Improve\n\nThe Improve phase is about optimizing and evolving your data sharing\ncapabilities based on feedback, usage data, and new business\nrequirements.\n\n| **Focus area** | **Activities** |\n|----|----|\n| **Secure data sharing architecture** | Actively solicit feedback from data consumers to enhance datasets and create new data products. Analyze Marketplace usage to optimize listings and pricing. Automate the consumer onboarding process. |\n| **Granular governance and control** | Refine and automate the application of governance policies using tag-based masking and access controls. Update the data sharing policy based on lessons learned and evolving regulations. |\n| **Unified collaboration for workloads** | Enhance Snowflake Native Apps with new features based on consumer feedback. Explore new collaboration patterns using emerging Snowflake features. |\n| **Comprehensive auditing and Monitoring** | Fine-tune monitoring alerts to reduce false positives. Develop more sophisticated usage analytics to better understand the value derived from shared data and identify new sharing opportunities. |\n\n### Recommendations\n\nTo activate your data sharing and collaboration strategy, your teams\nshould take specific, coordinated actions. The following recommendations\nprovide an imperative guide for stakeholders, detailing the exact tools\nto use and referencing official Snowflake documentation for further\ndetail.\n\n### Mandate the use of secure views for all shares\n\nInstead of sharing raw tables, always use [SECURE\nVIEWS](https://docs.snowflake.com/en/user-guide/views-secure) as the\ninterface for your data consumers. This creates a durable, controlled\ncontract that decouples consumers from your underlying physical data\nmodel and embeds fine-grained security logic directly into the shared\nobject.\n\n**Action Plan:**\n\n1.  The Chief Enterprise Architect and Security team will mandate a\n    policy stating that no TABLE object can be directly added to a\n    SHARE.\n\n2.  For a new sharing request, the Data Science or business user defines\n    the specific columns and row-level filtering criteria needed by the\n    consumer.\n\n3.  The Data Engineer translates these requirements into a CREATE SECURE\n    VIEW statement. Within the WHERE clause of the view, they use\n    functions like CURRENT_ROLE() or IS_ROLE_IN_SESSION() to implement\n    logic that filters data based on the consumer's role.\n\n4.  The Security team reviews and approves the view's DDL to ensure it\n    doesn't expose sensitive data.\n\n5.  Finally, the Data Engineer grants SELECT on the secure view to the\n    SHARE.\n\n### Operationalize a \"data as a product\" mindset with in-platform documentation\n\nTreat every shared dataset as a product. A product requires clear\ndocumentation that allows consumers to discover, understand, and trust\nit. Use Snowflake's native features to build and share this\ndocumentation alongside the data itself.\n\n**Action Plan:**\n\n1.  The Data Governance team defines a standard for documentation,\n    including mandatory descriptions for all shared tables, views, and\n    columns.\n\n2.  During development, the Data Engineer adds descriptive\n    [COMMENT](https://docs.snowflake.com/en/sql-reference/sql/comment)\n    metadata to every object and column using COMMENT = '...' in their\n    DDL or COMMENT ON ... IS '...' statements.\n\n3.  The Chief Enterprise Architect designs a \"Data Dictionary\" view\n    built on the SNOWFLAKE.ACCOUNT_USAGE.COLUMNS view. This view should\n    be shared with all internal data consumers, allowing them to query\n    and explore available datasets and their documented business\n    context.\n\n4.  For external consumers on the Marketplace, the Engineering team adds\n    rich descriptions and sample queries directly into the listing's UI\n    in Snowsight.\n\n### Automate governance at scale with tag-based policies\n\nManually applying security policies to hundreds of tables is not\nscalable and is prone to error. Instead, implement a [tag-based\ngovernance\nframework](https://docs.snowflake.com/en/user-guide/tag-based-masking-policies)\nwhere security policies (like masking) automatically attach to data\nbased on its classification.\n\n**Action Plan:**\n\n1.  The Security team, in consultation with the CIO/CDO, defines a data\n    classification taxonomy and creates the corresponding object tags in\n    Snowflake (e.g., CREATE TAG pii_level WITH ALLOWED_VALUES 'HIGH',\n    'LOW').\n\n2.  Security then creates generic masking policies. For example, a\n    policy named mask_pii_high that redacts data, and another named\n    mask_email that shows only the email domain.\n\n3.  Security then associates these policies with the tags (e.g., ALTER\n    TAG pii_level SET MASKING POLICY mask_pii_high).\n\n4.  As part of their CI/CD process, Data Engineers are responsible for\n    setting the appropriate tags on tables and columns as they are\n    created (e.g., ALTER TABLE ... MODIFY COLUMN email SET TAG pii_level\n    = 'HIGH').\n\n5.  Snowflake automatically applies the correct masking policy to the\n    email column by virtue of the tag, ensuring governance is enforced\n    without manual intervention before the data is ever added to a\n    share.\n\n### Distribute application logic securely with Snowflake Native Apps\n\nWhen you need to share more than just data—such as a proprietary\nalgorithm, a machine learning model, or a complete interactive\napplication—use the [Snowflake Native App\nFramework](https://docs.snowflake.com/en/developer-guide/native-apps/native-apps-about).\nThis allows consumers to run your logic on their own data without the\ncode or data ever leaving their secure Snowflake environment.\n\n**Action Plan:**\n\n1.  A Data Science team develops a predictive model using Snowpark for\n    Python and saves it as a User-Defined Function (UDF).\n\n2.  An Application Developer (within Engineering) builds a user\n    interface using the Streamlit in Snowflake integration that allows\n    users to input data and see the model's prediction.\n\n3.  The developer packages the Snowpark UDF, the Streamlit UI, and any\n    necessary stored procedures into an APPLICATION PACKAGE. They define\n    the components in a manifest.yml file and a setup.sql script.\n\n4.  The CDO and Engineering lead decide to list the application on the\n    Marketplace. The engineer uses Snowsight to create a listing from\n    the application package, adding pricing and usage terms.\n\n5.  A consumer can now \"install\" this application, running the\n    provider's proprietary model against their own private customer\n    table, with the provider having zero access to the consumer's data.\n\n### Persona responsibilities (RACI chart)\n\nClarifying roles and responsibilities is crucial for a well-governed\ndata sharing program. The following RACI (Responsible, Accountable,\nConsulted, Informed) matrix outlines the typical duties for each\npersona.\n\n**Legend:** **R** = Responsible, **A** = Accountable, **C** = Consulted,\n**I** = Informed\n\n| **Activity** | **CIO / CDO** | **Chief Enterprise Architect** | **Security** | **Engineering / SRE** | **Data Science** |\n|----|----|----|----|----|----|\n| Define Data Sharing & Monetization Strategy | A | C | C | I | C |\n| Establish Governance & Sharing Policies | A | C | R | I | I |\n| Design the Sharing Architecture (e.g., Shares, Views) | I | A | C | R | C |\n| Implement and Apply Security Controls (Masking/Row Access) | I | I | A | R | I |\n| Publish and Manage Marketplace Listings | A | I | C | R | C |\n| Approve and Onboard Data Consumers | I | I | C | R | A |\n| Monitor and Audit Sharing Usage | I | I | A | R | I |\n| Develop Collaborative Snowpark/Native App Assets | I | C | C | R | A |\n\n## Manage the Software Development Lifecycle (SDLC)\n\n### Overview\n\nA well-defined Software Development Lifecycle (SDLC) in Snowflake\nenables teams to innovate faster while maintaining stability and\ngovernance. It transforms development from an ad-hoc process into a\npredictable, repeatable, and automated workflow. By applying software\nengineering best practices like version control, automated testing, and\nCI/CD to your data projects, you can significantly reduce manual errors,\nimprove collaboration, and increase the trustworthiness of your data\nassets. This is essential for all key workloads, whether you are\nbuilding scalable data pipelines, developing complex machine learning\nmodels with Snowpark, or deploying native applications.\n\n### Focus areas\n\nTo build a robust SDLC, we recommend concentrating on five key focus\nareas. These areas provide the foundation for a mature and scalable\ndevelopment process on Snowflake.\n\n- **Version control & code management:** The practice of tracking and\n  managing changes to your code and configuration files. This is the\n  bedrock of collaborative development, enabling teams to work in\n  parallel, review changes, and maintain a complete history of every\n  modification. Key components include Git-based repositories, branching\n  strategies (e.g., GitFlow), and mandatory peer reviews.\n\n- **CI/CD automation (Continuous Integration/Continuous Deployment):**\n  The automation of building, testing, and deploying code changes.\n  **CI** focuses on automatically integrating code changes from multiple\n  contributors into a single shared repository. **CD** extends this by\n  automatically deploying the integrated code to various environments\n  (development, staging, production) after it passes all tests. This\n  accelerates delivery and reduces deployment risk.\n\n- **Testing & quality assurance:** The process of validating that your\n  data, code, and models meet quality standards. This is not just about\n  code functionality but also about data accuracy, integrity, and\n  performance. This includes unit tests for Snowpark functions,\n  integration tests for data pipelines, and data quality checks using\n  tools like dbt Tests or Great Expectations.\n\n- **Environment management:** The strategy for creating and managing\n  separate, isolated Snowflake environments for different stages of the\n  SDLC (e.g., Development, Test/QA, Production). This ensures that\n  development work doesn't impact production workloads and allows for\n  safe testing of changes before they are promoted. This often involves\n  Snowflake's Zero-Copy Cloning for efficient environment creation.\n\n- **Observability & monitoring:** The ability to understand the internal\n  state of your systems from their external outputs. This involves\n  collecting logs, metrics, and traces to monitor the health,\n  performance, and cost of your Snowflake workloads. Effective\n  observability helps you detect issues proactively, troubleshoot\n  failures, and optimize resource usage.\n\n### Phase-based activities\n\nManaging the SDLC in a well-architected way can be broken down into four\ndistinct phases. Here's how the focus areas apply to each phase.\n\n### Prepare\n\nThis phase is about planning and setting up the foundational components\nfor your project.\n\n- **Version control:** Establish a Git repository (e.g., in GitHub,\n  GitLab) for your project. Define and document a branching strategy.\n\n- **CI/CD automation:** Select and configure your CI/CD tools (e.g.,\n  GitHub Actions, Jenkins). Create starter pipeline templates for\n  different workload types (dbt, Snowpark, Streamlit).\n\n- **Testing:** Define the project's testing strategy. Identify the tools\n  and frameworks you'll use for unit, integration, and data quality\n  testing.\n\n- **Environment management:** Define your environment promotion\n  strategy. Use scripts (e.g., Terraform, SQL) to create role-based\n  access controls and provision separate development, testing, and\n  production databases or schemas.\n\n- **Observability:** Define key performance indicators (KPIs) for the\n  workload. Set up logging standards and choose monitoring tools to\n  capture query history, credit usage, and performance metrics from\n  Snowflake's ACCOUNT_USAGE views.\n\n### Implement\n\nThis phase involves the core development and building of your data asset\nor application.\n\n- **Version control:** Developers create feature branches to work on new\n  code. All changes are committed to these branches with clear,\n  descriptive messages. Pull/Merge Requests are used to initiate code\n  reviews.\n\n- **CI/CD automation:** Upon a pull request, the CI pipeline\n  automatically triggers. It runs linters, builds artifacts (e.g.,\n  Snowpark UDFs), and executes unit tests.\n\n- **Testing:** Developers write unit tests for their code (e.g., Pytest\n  for Snowpark Python). Integration tests are developed to validate\n  interactions between different components, and data quality tests are\n  defined (e.g., asserting not_null on a primary key column).\n\n- **Environment management:** Developers use their dedicated, isolated\n  development environments or databases, often created using Zero-Copy\n  Clones of production data subsets, to build and test their features\n  safely.\n\n- **Observability:** Implement structured logging within your code\n  (e.g., in Snowpark functions or stored procedures). Add custom tags to\n  queries to track lineage and cost attribution.\n\n### Operate\n\nThis phase focuses on deploying, managing, and monitoring the solution\nin production.\n\n- **Version control:** Merging a feature branch into the main branch\n  serves as the trigger for deployment and creates an immutable, tagged\n  release.\n\n- **CI/CD automation:** The CD pipeline takes over after a successful CI\n  run and merge. It automatically deploys the changes to the production\n  environment, applying database object changes (SchemaOps/GitOps) and\n  updating tasks or streams.\n\n- **Testing:** Automated smoke tests run immediately after deployment to\n  verify the health of the production system. Continuous data quality\n  tests run against production data to catch anomalies.\n\n- **Environment management:** The CI/CD pipeline manages the promotion\n  of code and database objects through environments (Dev -\\\u003E Test -\\\u003E\n  Prod). Access to the production environment is highly restricted and\n  managed via automation.\n\n- **Observability:** Actively monitor dashboards for system health,\n  query performance, and credit consumption. Configure alerts to notify\n  the SRE team of failures, performance degradation, or cost anomalies.\n\n### Improve\n\nThis final phase is about iterating on the solution and the process\nitself based on operational feedback.\n\n- **Version control:** Analyze the commit history and pull request\n  feedback to identify areas for improving code quality and\n  collaboration.\n\n- **CI/CD automation:** Optimize pipeline performance to reduce build\n  and deployment times. Add new steps to the pipeline to automate more\n  quality checks or security scans.\n\n- **Testing:** Review test failures and data quality alerts to identify\n  recurring issues. Refine and expand the test suite to improve coverage\n  and prevent regressions.\n\n- **Environment management:** Periodically review and clean up old\n  development environments. Use feedback to improve the environment\n  creation and data seeding processes.\n\n- **Observability:** Analyze performance and cost trends from monitoring\n  data. Use these insights to refactor inefficient queries, optimize\n  warehouse sizes, and improve the overall architecture. Conduct\n  post-mortems on incidents to identify root causes and implement\n  preventative measures.\n\n### Recommendations\n\nTo implement a mature SDLC for the Snowflake AI Data Cloud, your teams\nshould adopt specific practices and tools. These recommendations provide\nactionable guidance for each stakeholder to build a reliable, automated,\nand governable development lifecycle.\n\n### Standardize your core SDLC toolchain\n\n**Action:** The Chief Enterprise Architect and Engineering Leads should\ndefine and enforce a single, approved toolchain for source control,\nCI/CD, and infrastructure management. This prevents fragmentation and\nensures consistency.\n\n- Engineering and SRE teams will configure a central Git provider (e.g.,\n  GitHub, GitLab) as the single source of truth for all\n  Snowflake-related code, including SQL scripts, Snowpark Python/Java\n  files, and dbt models.\n\n- They will create standardized CI/CD pipeline templates (e.g., using\n  GitHub Actions, Jenkins) that all teams must use. These templates\n  should include predefined stages for linting, testing, building, and\n  deploying to Snowflake.\n\n- Developers and Data Scientists should use these templates to ensure\n  every project adheres to the same quality and security gates before\n  code is merged. This streamlines onboarding and enforces best\n  practices automatically.\n\nThese CI/CD pipelines will use tools like the [SnowSQL\nCLI](https://docs.snowflake.com/en/user-guide/snowsql) or the\n[Snowflake Connector for\nPython](https://docs.snowflake.com/en/developer-guide/python-connector/python-connector)\nto execute scripts and deploy objects against Snowflake environments.\n\n### Adopt GitOps for all Snowflake object management\n\n**Action:** All changes to Snowflake database objects (schemas, tables,\nviews, roles, grants) can be managed declaratively as code in Git.\nDirect CREATE OR REPLACE commands against production environments should\nbe prohibited.\n\n- The SRE and Engineering teams should consider implementing an\n  open-source schema migration tool like\n  [schemachange](https://github.com/Snowflake-Labs/schemachange)\n  within the standard CD pipeline. This tool compares the state of a\n  target database with the state defined in Git and applies only the\n  necessary changes in a versioned, ordered manner.\n\n- Developers and Data Engineers must commit all database object changes\n  as new, version-numbered SQL scripts in a designated folder within\n  their Git repository.\n\n- The deployment pipeline, triggered by a merge to the main branch, will\n  automatically execute schemachange to apply these scripts to the\n  target Snowflake environment. This creates a fully auditable and\n  reversible history of every change to your database schema.\n\nThis practice provides a robust audit trail for all DDL, DML, and DCL\nstatements executed against Snowflake, improving governance and\nsimplifying troubleshooting.\n\n### Automate quality gates with comprehensive testing\n\n**Action:** Enforce automated testing as a mandatory step in your CI\npipeline. Pull requests that do not pass all tests must be blocked from\nmerging.\n\n- Data Scientists and Engineers working with Snowpark must write unit\n  tests for their Python/Java/Scala code using standard frameworks\n  (e.g., pytest, JUnit). These tests validate business logic within\n  User-Defined Functions (UDFs) and Stored Procedures before they are\n  deployed to Snowflake.\n\n- Data Engineers using tools like dbt must write data quality tests\n  (e.g., not_null, unique, relationships) for their data models. These\n  tests are defined in YAML files alongside the models and run\n  automatically as part of the CI process.\n\n- The SRE team must configure the CI pipeline to execute these tests\n  against a temporary, cloned environment for every pull request. The\n  test results should be published back to the pull request to provide\n  immediate feedback.\n\nTesting can be done against temporary schemas or databases created using\nZero-Copy Cloning, providing a production-like environment without\nincurring storage costs or performance impact.\n\n### Isolate workflows with on-demand cloned environments\n\n**Action:** Empower your development teams with self-service, isolated\nenvironments using Snowflake's [Zero-Copy\nCloning](https://docs.snowflake.com/en/user-guide/object-clone)\nfeature. This eliminates development bottlenecks and ensures\nhigh-fidelity testing.\n\n- SRE and DevOps teams should create an automated job or script (e.g.,\n  in the CI/CD tool or a chatbot) that allows any developer to instantly\n  provision a new environment. This script should execute the\n  [CREATE TRANSIENT DATABASE \u003Cdev_db_name\u003E CLONE\n  \u003Cprod_db_name\u003E;](https://docs.snowflake.com/en/sql-reference/sql/create-clone)\n  command and apply the appropriate role-based access controls.\n\n- Developers and Data Scientists should trigger this job at the start of\n  any new feature branch work. This provides them with a full-scale,\n  read-only copy of the production data to develop and test against\n  without any risk to the production environment.\n\n- A nightly job should be created to automatically tear down cloned\n  environments older than a few days to maintain hygiene.\n\nThis directly leverages one of Snowflake's most powerful features.\nCloning is an instantaneous metadata operation, meaning environments are\nready in seconds, not hours, and consume no additional storage until\nchanges are made.\n\n### Embed cost and performance monitoring into the workflow\n\n**Action:** Make cost and performance explicit responsibilities of the\ndevelopment team, not just an operational afterthought. Integrate\nmonitoring directly into the SDLC.\n\n- SREs and Engineering Leads should build shared dashboards using data\n  from the SNOWFLAKE.ACCOUNT_USAGE schema, specifically views like\n  QUERY_HISTORY and WAREHOUSE_METERING_HISTORY. These dashboards should\n  be reviewed in weekly team meetings.\n\n- All Developers should programmatically set the QUERY_TAG session\n  parameter at the start of their CI/CD jobs, applications, or data\n  pipelines. The tag should include context like the Git commit hash,\n  feature name, or executing user (e.g., {'git_commit':'a1b2c3d',\n  'feature':'new_customer_model'}).\n\n- During code review, developers should be required to analyze the query\n  profile for new, complex queries to identify performance bottlenecks\n  before the code is merged into production.\n\nThis leverages Snowflake's rich metadata and governance features. Using\nQUERY_TAG allows you to precisely attribute credit consumption to\nspecific features or changes, enabling true cost visibility.\n\n### Persona responsibilities (RACI chart)\n\nThis RACI (Responsible, Accountable, Consulted, Informed) matrix\noutlines the typical roles and responsibilities across the SDLC\nlifecycle.\n\n**Legend:** **R** = Responsible, **A** = Accountable, **C** = Consulted,\n**I** = Informed\n\n| Focus Area / Activity                 | Engineering | Data Science | SRE | Security | Architecture | C‑Level |\n|---|---|---|---|---|---|---|\n| Define SDLC toolchain & standards     | R | C | C | C | A | I |\n| Set up Git repos & branching strategy | R | R | C | I | A | I |\n| Develop & commit code/models          | R | R | I | I | C | I |\n| Conduct peer code reviews                   | R | R | C | C | I | I |\n| Build & maintain CI/CD pipelines            | R | C | A | C | C | I |\n| Write unit & integration tests              | R | R | C | I | I | I |\n| Manage environment provisioning (IaC)       | C | I | R | C | A | I |\n| Execute production deployments              | A | I | R | C | I | I |\n| Monitor production health & performance     | C | C | R | I | I | I |\n| Respond to production incidents             | C | C | R | I | I | I |\n| Optimize pipeline performance cost                           | R | R | A | I | C | I |\n| Define & enforce security policies | C | C | C | A | R | I |\n\n## Continuously improve performance & practices\n\n### Overview\n\nContinuously improving performance and operational practices is\nessential for maximizing the value, efficiency, and innovation you get\nfrom the Snowflake AI Data Cloud. It's not a one-time task but an\nongoing cycle of measurement, analysis, and optimization that ensures\nyour platform evolves with your business needs. This approach helps you\ncontrol costs, enhance user experience, and maintain a robust, scalable\ndata environment.\n\n### Focus areas\n\nTo structure your improvement efforts, concentrate on these four key\nareas. They provide a comprehensive framework for optimizing every\naspect of your Snowflake usage, from query execution to team expertise.\n\n- **Workload optimization**: This involves tuning the technical aspects\n  of your Snowflake environment to ensure that data engineering\n  pipelines, analytics queries, AI models, and applications run as\n  efficiently as possible. The goal is to improve speed and reduce\n  resource consumption.\n\n- **Cost governance and FinOps**: This area focuses on managing and\n  optimizing your Snowflake spend. It involves monitoring usage,\n  forecasting costs, setting budgets, and fostering a culture of\n  cost-awareness across all teams. It's about treating cost as a\n  critical performance metric.\n\n- **Operational excellence**: This centers on automating and\n  streamlining the processes used to manage your Snowflake environment.\n  It includes CI/CD (Continuous Integration/Continuous Deployment) for\n  code, infrastructure-as-code (IaC) for environment setup, monitoring,\n  alerting, and incident response to ensure reliability and reduce\n  manual effort.\n\n- **Practice and skill enhancement**: This is the human element of\n  continuous improvement. It involves keeping your teams' skills sharp\n  and ensuring they follow best practices. A platform as dynamic as\n  Snowflake requires continuous learning to leverage new features and\n  capabilities effectively.\n\n### Phase-based activities\n\nContinuous improvement is a journey. By breaking it down into the four\ndistinct iterative phases of the Operational Excellence pillar, you can\napply focused effort at each stage of your project lifecycle.\n\n### Prepare\n\nIn this phase, you lay the groundwork for success by defining goals,\nstandards, and metrics before a project begins.\n\n- **Workload optimization**:\n\n  - Define clear Service Level Objectives (SLOs) for critical workloads.\n\n  - Estimate compute needs and select initial virtual warehouse sizes\n    based on workload characteristics (e.g., small for data ingestion,\n    large for complex transformations).\n\n- **Cost governance and FinOps**:\n\n  - Establish budgets and spending alerts for the new project using\n    Snowflake's resource monitors.\n\n  - Define a comprehensive tagging strategy to allocate costs accurately\n    to different teams, projects, or cost centers.\n\n- **Operational excellence**:\n\n  - Define standards for monitoring, logging, and alerting for the new\n    workload.\n\n  - Plan your CI/CD and IaC strategy for managing Snowflake objects and\n    code.\n\n- **Practice and skill enhancement**:\n\n  - Identify any new Snowflake features the project will use (e.g.,\n    Snowpark, Streamlit) and arrange for team training.\n\n### Implement\n\nDuring the development and deployment phase, you turn plans into action,\nwith a focus on building efficient and manageable solutions.\n\n- **Workload optimization**:\n\n  - Use the **Query Profile** tool in Snowsight to analyze and tune\n    complex queries during development.\n\n  - Implement data clustering on large tables based on common query\n    filter patterns to improve performance.\n\n- **Cost governance and FinOps**:\n\n  - Apply resource tags to all objects (warehouses, databases, etc.) as\n    defined in the prepare phase.\n\n  - Monitor development and testing costs to ensure they align with\n    projections.\n\n- **Operational excellence**:\n\n  - Develop automated deployment pipelines for database objects, roles,\n    and tasks.\n\n  - Implement automated data quality and functional tests within your\n    CI/CD process.\n\n- **Practice and skill enhancement**:\n\n  - Conduct regular peer code reviews to share knowledge and enforce\n    best practices for SQL, Snowpark, and application code.\n\n### Operate\n\nOnce a solution is live, the focus shifts to monitoring, maintenance,\nand real-time optimization.\n\n- **Workload optimization**:\n\n  - Continuously monitor warehouse utilization using Snowsight\n    dashboards to identify underutilized or overloaded warehouses.\n\n  - Adjust warehouse settings dynamically, such as scaling up for peak\n    demand, scaling out with multi-cluster warehouses for high\n    concurrency, or suspending during idle periods.\n\n- **Cost governance and FinOps**:\n\n  - Review daily and weekly spend using the ACCOUNT_USAGE schema to\n    track costs against budgets and identify anomalies.\n\n  - Analyze storage costs and implement data lifecycle management\n    policies.\n\n- **Operational excellence**:\n\n  - Respond to automated alerts for performance degradation or job\n    failures.\n\n  - Use Snowflake Tasks and Streams to automate data pipelines and\n    reduce operational overhead.\n\n- **Practice and skill enhancement**:\n\n  - Encourage teams to participate in Snowflake webinars, workshops, and\n    community forums to stay current.\n\n### Improve\n\nThis proactive phase involves looking for opportunities to refine and\nenhance your existing solutions and practices.\n\n- **Workload optimization**:\n\n  - Proactively analyze historical query performance data\n    (QUERY_HISTORY) to find and refactor inefficient queries.\n\n  - Experiment with advanced Snowflake features like the Search\n    Optimization Service for point lookups or Query Acceleration Service\n    for large-scale scans.\n\n- **Cost governance and FinOps**:\n\n  - Conduct quarterly FinOps reviews to analyze spending trends and set\n    new optimization goals.\n\n  - Optimize storage by identifying unused tables or converting large,\n    transient tables to temporary ones where appropriate.\n\n- **Operational excellence**:\n\n  - Refine monitoring dashboards to provide more insightful, role-based\n    views of platform health.\n\n  - Automate repetitive operational tasks identified during the operate\n    phase, such as user provisioning or access reviews.\n\n- **Practice and skill enhancement**:\n\n  - Establish a Center of Excellence (CoE) to formalize best practices,\n    provide internal consulting, and drive platform adoption.\n\n  - Invest in official Snowflake certifications to validate and deepen\n    team expertise.\n\n### Recommendations\n\n### Proactively manage workload performance with observability tools\n\nDon't wait for performance issues to arise. Empower your teams to use\nSnowflake's built-in observability tools to find and fix inefficiencies\nbefore they impact the business.\n\n**Action for Engineering & Data Science**:\n\n- **Analyze before you deploy:** During development, every complex or\n  long-running query must be analyzed using the [**Query\n  Profile**](https://docs.snowflake.com/en/user-guide/ui-query-profile).\n  Use this tool to visually identify performance bottlenecks, such as\n  inefficient joins, excessive data spillage to storage, or full table\n  scans that could be avoided with better pruning.\n\n- **Investigate historical performance:** Regularly review your team's\n  most expensive or slowest queries from the past week using the **Query\n  History** page in Snowsight. Look for performance regressions after a\n  new release or changes in data volume.\n\n**Action for SREs & Architects**:\n\n- **Build centralized monitoring:** Create a dedicated Snowsight\n  dashboard for platform health using data from the\n  SNOWFLAKE.ACCOUNT_USAGE schema. Key views to monitor include\n  QUERY_HISTORY (to spot slow queries), WAREHOUSE_LOAD_HISTORY (to see\n  queuing), and WAREHOUSE_METERING_HISTORY (to correlate performance\n  with cost).\n\n- **Set performance benchmarks:** Use the data from these dashboards to\n  establish performance Service Level Objectives (SLOs) for critical\n  workloads and configure alerts that trigger when these SLOs are at\n  risk.\n\n### Implement a continuous compute optimization cycle\n\nVirtual warehouse configuration is not a \"set it and forget it\" task.\nCreate a formal, data-driven process to ensure your compute resources\nare always perfectly matched to your workloads.\n\n**Action for Engineering Leads & SREs**:\n\n- Establish a quarterly [warehouse\n  review](https://docs.snowflake.com/en/user-guide/warehouses-considerations).\n  Schedule a recurring meeting to review the performance and utilization\n  of every production warehouse. Use the WAREHOUSE_LOAD_HISTORY view to\n  answer key questions:\n\n  - Is there queuing? A high AVG_RUNNING and AVG_QUEUED_LOAD value\n    indicates the warehouse is undersized or needs a multi-cluster\n    configuration.\n\n  - Is it idle? If a warehouse has low utilization, consider resizing it\n    down or consolidating its workloads with another warehouse.\n\n- Automate suspension. Ensure every warehouse has an aggressive\n  AUTO_SUSPEND setting (e.g., 60 seconds) to eliminate payment for idle\n  compute time. This enforces an efficient \"on-demand\" practice.\n\n**Action for Engineering & Finance (FinOps)**:\n\n- Use [Resource\n  Monitors](https://docs.snowflake.com/en/user-guide/resource-monitors)\n  for governance. For each major workload or department, apply a\n  Resource Monitor to its set of warehouses. This acts as a performance\n  and cost circuit breaker, automatically notifying stakeholders or\n  suspending compute when consumption exceeds its budget—often a sign of\n  a runaway query or performance issue.\n\n### Automate performance guardrails and operational tasks\n\nReduce manual effort and human error by embedding performance best\npractices and operational duties directly into your automated workflows\nand data pipelines.\n\n**Action for SREs & DevOps Engineers**:\n\n- **Automate performance regression testing:** As part of your CI/CD\n  pipeline, use Snowflake's [Zero-Copy\n  Cloning](https://docs.snowflake.com/en/user-guide/object-clone)\n  feature to create an instantaneous, full-scale clone of your\n  production data for testing. Before merging code, automatically run a\n  suite of benchmark queries against this clone to ensure the changes do\n  not negatively impact performance.\n\n- **Manage warehouses as code:** Use an Infrastructure-as-Code (IaC)\n  tool like Terraform to manage all virtual warehouse configurations.\n  This enforces consistency and allows changes to warehouse sizing or\n  scaling policies to go through a peer-reviewed, auditable process.\n\n**Action for Data Engineers**:\n\n- **Automate data pipelines with\n  [Tasks](https://docs.snowflake.com/en/user-guide/tasks-intro)**:\n  For any recurring data processing logic (e.g., merging data from a\n  staging table, refreshing a materialized view), use Snowflake Tasks.\n  This serverless tool removes the need for external orchestrators for\n  many common workflows, improving reliability and reducing operational\n  complexity.\n\n### Foster a culture of continuous learning and excellence\n\nYour team's expertise is the most critical factor in achieving sustained\nperformance. Invest in a structured program to keep skills sharp and\nalign everyone on best practices.\n\n**Action for C-Level & Chief Architects**:\n\n- **Charter and fund a Center of Excellence (CoE):** The CoE is\n  accountable for platform-wide best practices. Its members must\n  regularly evaluate new Snowflake features announced in the monthly\n  [Release\n  Notes](https://docs.snowflake.com/release-notes/all-release-notes?bundle=true)\n  and create actionable guidance on how teams can use them to improve\n  performance (e.g., adopting Query Acceleration Service, using\n  Snowpark-optimized warehouses).\n\n**Action for Team Leads & Engineers**:\n\n- **Conduct performance-focused code reviews:** Make performance a\n  mandatory part of every code review. Ask questions like: \"Is there a\n  WHERE clause to enable partition pruning?\" or \"Could this join be\n  rewritten to be more efficient?\"\n\n- **Share knowledge actively:** Create an internal channel (e.g., Slack,\n  Teams) dedicated to Snowflake performance. Encourage engineers to\n  share their Query Profile screenshots, optimization successes, and\n  tough performance challenges to foster [collaborative\n  problem-solving.](https://community.snowflake.com/s/)\n\n### Persona responsibilities (RACI chart)\n\nClarifying roles ensures that everyone understands their part in the\ncontinuous improvement process. The matrix below outlines typical\nresponsibilities.\n\n\n\n**Legend:** **R** - Responsible, **A** - Accountable, **C** - Consulted,\n**I** - Informed\n\n| Activity | C-Level (CIO/CDO) | Chief Architect | Engineering | Data Science | Security | SRE |\n|---|---|---|---|---|---|---|\n| Set platform budget & cost strategy | A | C | I | I | I | I |\n| Define performance & architectural standards | A | R | C | C | C | C |\n| Tune queries & optimize workloads | I | C | R | R | I | C |\n| Monitor & adjust warehouse configuration | I | C | R | C | I | R |\n| Develop & maintain CI/CD pipelines | I | C | R | C | I | A |\n| Implement cost tagging & monitoring | I | A | R | R | I | R |\n| Conduct regular FinOps reviews | A | R | C | C | I | C |\n| Establish a Center of Excellence (CoE) | A | R | C | C | C | C |\n\n\n","title":"Quickstart Article Body","multiValue":false,":type":"text/x-markdown"},"quickstartArticleLogoImage":{"dataType":"string","title":"Quickstart Article Logo Image","multiValue":false,":type":"text/plain"}},"elementsOrder":["quickstartArticleBody","quickstartArticleLogoImage"],":type":"snowflake-site/components/contentfragment","isDeveloperGuidesPage":false,":items":{},":itemsOrder":[],"model":"snowflake-site/models/quickstart-article"},"flexible_column_cont":{"id":"flexible-column-container-331e614673","type":"2-column-75-25","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"none","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"id":"container-a4538aae53","layout":"SIMPLE",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"quickstart_last_modi":{"id":"quickstart-last-modified-c9ebe2e8ca","icon":{"id":"icon","icon":"calendar",":type":"snowflake-site/components/icon","appliedCssClassNames":"snowflake-icon-blue"},"lastModifiedDatePrefix":"Updated","lastModifiedDate":"2026-06-17",":type":"snowflake-site/components/quickstart/quickstart-last-modified","appliedCssClassNames":"snowflake-responsive-component-top-padding-small"},"text":{"id":"text-3ad593b325","additionalClasses":"qs-disclaimer-text","text":"\u003Cp\u003E\u003Cspan style=\"color: #666;\"\u003EThis content is provided as is, and is not maintained on an ongoing basis. It may be out of date with current Snowflake instances\u003C/span\u003E\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"snowflake-responsive-component-top-padding-small"}},":itemsOrder":["quickstart_last_modi","text"]},"flexible_column_content_container_2":{"id":"container-59aab43734","layout":"SIMPLE",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{},":itemsOrder":[]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":false,"isActiveTOC":false}},":itemsOrder":["contentfragment","flexible_column_cont"]},"flexible_column_content_container_2":{"id":"container-78558b337b","layout":"SIMPLE",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"quickstart_table_of_":{"id":"container-fb2102e54b","layout":"SIMPLE","isDeveloperGuidesPage":false,":type":"snowflake-site/components/quickstart/quickstart-table-of-content/quickstart-table-of-content-container",":items":{"quickstart_table_of_":{"id":"quickstart-table-of-content-f18c145c48","fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/well-architected-framework-operational-excellence",":type":"snowflake-site/components/quickstart/quickstart-table-of-content","headings":["\u003Ch2\u003EOverview\u003C/h2\u003E","\u003Ch2\u003EPrinciples\u003C/h2\u003E","\u003Ch2\u003EEnsure operational readiness & performance\u003C/h2\u003E","\u003Ch2\u003EAutomate infrastructure & maintenance\u003C/h2\u003E","\u003Ch2\u003EEnhance Observability & Issue Resolution\u003C/h2\u003E","\u003Ch2\u003EManage incidents & problems\u003C/h2\u003E","\u003Ch2\u003EEnable collaboration & Secure Sharing\u003C/h2\u003E","\u003Ch2\u003EManage the Software Development Lifecycle (SDLC)\u003C/h2\u003E","\u003Ch2\u003EContinuously improve performance & practices\u003C/h2\u003E"]},"quickstart_button":{"id":"quickstart-button-d883ea106e","fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/well-architected-framework-operational-excellence",":type":"snowflake-site/components/quickstart/quickstart-button","appliedCssClassNames":"snowflake-responsive-component-top-padding-none"}},":itemsOrder":["quickstart_table_of_","quickstart_button"]}},":itemsOrder":["quickstart_table_of_"]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":false,"isActiveTOC":false},"markup_editor":{"id":"markup-editor-3cc2f9d40c","title":"Page CSS","cssContent":"#quickstart-template-main-flexible-container{padding:24px}#quickstart-template-main-flexible-container \u003E .snowflake-flexible-column-container-items{grid-template-columns:1fr 0}.qs-disclaimer-text p \u003E span{font-size:15px !important}@media (min-width:768px){#quickstart-template-main-flexible-container{padding:24px 32px}#quickstart-template-main-flexible-container \u003E .snowflake-flexible-column-container-items{grid-template-columns:7fr 3fr;gap:48px}}@media (max-width:767px){#quickstart-template-main-flexible-container \u003E .snowflake-flexible-column-container-items{gap:0}}@media (min-width:1024px){#quickstart-template-main-flexible-container{padding:0 92px 48px 92px}#quickstart-template-main-flexible-container \u003E .snowflake-flexible-column-container-items{gap:117px}}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false}},":itemsOrder":["quickstart_hero","flexible_column_cont","markup_editor"],":type":"wcm/foundation/components/responsivegrid"},"modal_container":{"id":"container-3e2f6b0c68","layout":"SIMPLE",":type":"snowflake-site/components/modal/modal-container",":items":{},":itemsOrder":[]},"experiencefragment-footer":{"id":"experiencefragment-2b77fcd0dd","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"additionalClasses":"sf-footer","id":"container-d4cf53b3b3","layout":"SIMPLE",":type":"snowflake-site/components/container",":items":{"container_copy":{"additionalClasses":"sf-footer__inner","columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-0a22b97d26","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-container snowflake-responsive-container-inner-padding-small",":items":{"flexible_column_cont":{"id":"flexible-column-container-33d53f93df","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"medium","bottomPadding":"extra-small","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"propertiesCSSClasses":"sf-footer-grid","backgroundImageOption":"none","flexible_column_content_container_1":{"id":"container-2386b83f25","layout":"SIMPLE",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container":{"additionalClasses":"sf-footer-grid__inner","columnClassNames":{"container":"aem-GridColumn aem-GridColumn--default--12","container_1622723482":"aem-GridColumn aem-GridColumn--default--12","container_copy_copy_":"aem-GridColumn aem-GridColumn--default--12","container_copy_copy":"aem-GridColumn aem-GridColumn--default--12","container_copy":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-c90f063d7f","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"container_1622723482":{"additionalClasses":"sf-footer__column","columnClassNames":{"container":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-1be3c95a16","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"container":{"additionalClasses":"sf-footer__newsletter-group","columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12","marketo_v2":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-4678b2cfaa","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"text":{"id":"text-0d13396ac7","additionalClasses":"sf-footer__newsletter-title","text":"\u003Cp\u003E\u003Cb\u003ESubscribe to our monthly newsletter\u003C/b\u003E\u003C/p\u003E\r\n\u003Cp\u003EStay up to date on Snowflake’s latest products, expert insights and resources—right in your inbox!\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-regular text-color-text-04"},"marketo_v2":{"id":"marketo-v2-160071cdf0","marketoForm":{"edit":false,"formId":"45871","successUrl":null,"script":null,"values":null,"hidden":null},"munchkinId":"252-RFO-227","serverInstance":"252-RFO-227.mktoweb.com","marketoConfigured":true,"formConfigured":true,":type":"snowflake-site/components/form/marketo-v2"}},":itemsOrder":["text","marketo_v2"]}},":itemsOrder":["container"]},"container":{"columnClassNames":{"text_copy":"aem-GridColumn aem-GridColumn--default--12","text":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-158b33db0b","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-medium",":items":{"text":{"id":"text-a9913d3dcf","additionalClasses":"sf-footer__link-group","text":"\u003Cp class=\"sf-footer__column-title\"\u003EProduct\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/product/platform/\"\u003EPlatform\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/product/snowflake-cowork/\"\u003ESnowflake CoWork\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/product/data-engineering/\"\u003EData Engineering\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/product/analytics/\"\u003EAnalytics\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/product/ai/\"\u003EAI\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/product/applications-and-collaboration/\"\u003EApplications &amp; Collaboration\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/pricing-options/\"\u003EPricing\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"},"text_copy":{"id":"text-abce698c26","additionalClasses":"sf-footer__link-group","text":"\u003Cp class=\"sf-footer__column-title\"\u003ESupport\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/support/\"\u003ESupport\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/legal/addenda/priority-support-services-description/\"\u003EPriority Support\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://status.snowflake.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EStatus\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"}},":itemsOrder":["text","text_copy"]},"container_copy_copy":{"columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-2af13f6763","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"text":{"id":"text-755c827e45","additionalClasses":"sf-footer__link-group","text":"\u003Cp class=\"sf-footer__column-title\"\u003E\u003Ca href=\"/en/solutions/industries/\"\u003EIndustries\u003C/a\u003E\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/advertising-media-entertainment/\"\u003EAdvertising, Media &amp; Entertainment\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/financial-services/\"\u003EFinancial Services\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/healthcare-and-life-sciences/\"\u003EHealthcare &amp; Life Sciences\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/manufacturing/\"\u003EManufacturing\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/public-sector/\"\u003EPublic Sector\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/retail-consumer-goods/\"\u003ERetail &amp; Consumer Goods\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/telecom/\"\u003ETelecom\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/solutions/industries/technology/\"\u003ETechnology\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"}},":itemsOrder":["text"]},"container_copy":{"columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-00a964b09e","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"text":{"id":"text-cdce9fec59","additionalClasses":"sf-footer__link-group","text":"\u003Cp class=\"sf-footer__column-title\"\u003ECompany\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/company/overview/about-snowflake/\"\u003EAbout Snowflake\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/company/overview/leadership-and-board/\"\u003ELeadership &amp; Board\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://careers.snowflake.com/us/en\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ECareers\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://investors.snowflake.com/overview/default.aspx\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EInvestor Relations\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://trust.snowflake.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ETrust Center\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/brand-guidelines/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EBrand Guidelines\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/contact/\"\u003EContact\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/news/\"\u003ENewsroom\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/company/overview/esg/\"\u003EEnvironmental, Social &amp; Governance\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/company/overview/snowflake-ventures/\"\u003ESnowflake Ventures\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/company/overview/end-data-disparity/\"\u003EEnd Data Disparity\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/summit/\"\u003ESnowflake Summit 26\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"}},":itemsOrder":["text"]},"container_copy_copy_":{"columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-a768bbca38","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"text":{"id":"text-fa14d7359b","additionalClasses":"sf-footer__link-group","text":"\u003Cp class=\"sf-footer__column-title\"\u003ELearn\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://snowflake.com/en/resources/\"\u003EResource Library\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/webinars/demo/\"\u003ELive Demos\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/fundamentals/\"\u003EFundamentals\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/resources/learn/training/\"\u003ETraining\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/resources/learn/certifications/\"\u003ECertifications\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://learn.snowflake.com/en/\"\u003ESnowflake University\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/developers/guides\"\u003EDeveloper Guides\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://docs.snowflake.com/\"\u003EDocumentation\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/data-governance/\"\u003EData Governance\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"}},":itemsOrder":["text"]}},":itemsOrder":["container_1622723482","container","container_copy_copy","container_copy","container_copy_copy_"]}},":itemsOrder":["container"]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":false,"isActiveTOC":false}},":itemsOrder":["flexible_column_cont"]},"container_573483281_":{"additionalClasses":"sf-footer__bottom","columnClassNames":{"container_112062425":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-195afbcae0","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-none",":items":{"container_112062425":{"columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-07d0938f6e","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-container snowflake-responsive-container-inner-padding-small",":items":{"flexible_column_cont":{"id":"flexible-column-container-5abd533001","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"id":"container-68004e2a0b","layout":"SIMPLE",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container":{"additionalClasses":"sf-footer__legal-container","columnClassNames":{"container":"aem-GridColumn aem-GridColumn--default--12","text_copy_copy_16360":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-1e1e1a490b","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-none",":items":{"container":{"columnClassNames":{"image":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-6a6f6ac014","layout":"RESPONSIVE_GRID","columnCount":12,":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-extra-small",":items":{"image":{"id":"image-5a148a6605","additionalClasses":"sf-footer__logo","alt":"Snowflake logo","imageLink":{"valid":true,"url":"/en/"},"lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master/_jcr_content/root/container_573483281_/container_112062425/flexible_column_cont/flexible_column_content_container_1/container/container/image.coreimg.svg/1747882370694/nav-icon-snowflake-bug.svg","height":"64","width":"64",":type":"snowflake-site/components/image"}},":itemsOrder":["image"]},"text_copy_copy_16360":{"id":"text-2c1c6f8c58","additionalClasses":"sf-footer__legal-links","text":"\u003Cul\u003E\r\n\u003Cli\u003E© 2026 Snowflake Inc. All Rights Reserved\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/legal/privacy/privacy-policy/\"\u003EPrivacy Policy\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://snowflake.com/en/legal/snowflake-site-terms/\"\u003ESite Terms\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://info.snowflake.com/Preference-center.html\"\u003ECommunication Preferences\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Cbutton id=\"ot-sdk-btn\" class=\"ot-sdk-show-settings\"\u003ECookie Settings\u003C/button\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/legal/privacy/privacy-policy/#12\"\u003EDo Not Share My Personal Information\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/legal/\"\u003ELegal\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"},"markup_editor":{"id":"markup-editor-5e1e6ab8f0","title":" ","htmlContent":"\u003Cdiv class=\"sf-footer__social\"\u003E\r\n\u003Cdiv data-testid=\"snowflake-footer-twitter\" class=\"snowflake-button-icon snowflake-button-white snowflake-footer-social-item\"\u003E\u003Cdiv class=\"snowflake-button-icon \"\u003E\u003Ca href=\"https://x.com/Snowflake\" data-testid=\"button-external\" aria-label=\"X (Twitter)\" role=\"button\" class=\"snowflake-button-container\" title=\"X (Twitter)\" tabindex=\"0\" target=\"_blank\" rel=\"noreferrer\"\u003E\u003Cdiv data-testid=\"button-icon-wrapper\"\u003E\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 59 53\" class=\"button-icon\"\u003E\u003Cpath fill=\"currentColor\" d=\"M46.614 0h9.044L35.8 22.49 59 53H40.795L26.54 34.46 10.223 53H1.18l21.036-24.055L0 0h18.657l12.878 16.937zM43.45 47.72h5.013L16.023 5.085h-5.387z\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003C/div\u003E\u003C/a\u003E\u003Cdiv\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\u003Cdiv data-testid=\"snowflake-footer-linkedin\" class=\"snowflake-button-icon snowflake-button-white snowflake-footer-social-item\"\u003E\u003Cdiv class=\"snowflake-button-icon \"\u003E\u003Ca href=\"https://www.linkedin.com/company/3653845\" data-testid=\"button-external\" aria-label=\"LinkedIn\" role=\"button\" class=\"snowflake-button-container\" title=\"LinkedIn\" tabindex=\"0\" target=\"_blank\" rel=\"noreferrer\"\u003E\u003Cdiv data-testid=\"button-icon-wrapper\"\u003E\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"button-icon\"\u003E\u003Cpath d=\"M22.223 0H1.772C.792 0 0 .773 0 1.73v20.536C0 23.222.792 24 1.772 24h20.451c.98 0 1.777-.778 1.777-1.73V1.73C24 .773 23.203 0 22.223 0ZM7.12 20.452H3.558V8.995H7.12v11.457ZM5.34 7.434a2.064 2.064 0 1 1 0-4.125 2.063 2.063 0 0 1 0 4.125Zm15.112 13.018h-3.558v-5.57c0-1.326-.024-3.037-1.852-3.037-1.851 0-2.133 1.449-2.133 2.944v5.663H9.356V8.995h3.413v1.566h.047c.473-.9 1.636-1.852 3.365-1.852 3.605 0 4.27 2.372 4.27 5.457v6.286Z\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003C/div\u003E\u003C/a\u003E\u003Cdiv\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\u003Cdiv data-testid=\"snowflake-footer-facebook\" class=\"snowflake-button-icon snowflake-button-white snowflake-footer-social-item\"\u003E\u003Cdiv class=\"snowflake-button-icon \"\u003E\u003Ca href=\"https://www.facebook.com/snowflakedb/\" data-testid=\"button-external\" aria-label=\"Facebook\" role=\"button\" class=\"snowflake-button-container\" title=\"Facebook\" tabindex=\"0\" target=\"_blank\" rel=\"noreferrer\"\u003E\u003Cdiv data-testid=\"button-icon-wrapper\"\u003E\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"button-icon\"\u003E\u003Cpath d=\"M24 12c0-6.627-5.373-12-12-12S0 5.373 0 12c0 5.99 4.388 10.954 10.125 11.854V15.47H7.078V12h3.047V9.356c0-3.007 1.792-4.668 4.533-4.668 1.312 0 2.686.234 2.686.234v2.953H15.83c-1.491 0-1.956.925-1.956 1.875V12h3.328l-.532 3.469h-2.796v8.385C19.612 22.954 24 17.99 24 12Z\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003C/div\u003E\u003C/a\u003E\u003Cdiv\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\u003Cdiv data-testid=\"snowflake-footer-youtube\" class=\"snowflake-button-icon snowflake-button-white snowflake-footer-social-item\"\u003E\u003Cdiv class=\"snowflake-button-icon \"\u003E\u003Ca href=\"https://www.youtube.com/user/snowflakecomputing\" data-testid=\"button-external\" aria-label=\"YouTube\" role=\"button\" class=\"snowflake-button-container\" title=\"YouTube\" tabindex=\"0\" target=\"_blank\" rel=\"noreferrer\"\u003E\u003Cdiv data-testid=\"button-icon-wrapper\"\u003E\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"button-icon\"\u003E\u003Cpath d=\"M23.76 7.2s-.233-1.655-.955-2.381c-.914-.956-1.936-.961-2.405-1.017-3.356-.244-8.395-.244-8.395-.244h-.01s-5.039 0-8.395.244c-.469.056-1.49.06-2.405 1.017C.473 5.545.244 7.2.244 7.2S0 9.145 0 11.086v1.819c0 1.94.24 3.886.24 3.886s.233 1.654.95 2.38c.915.957 2.115.924 2.65 1.027 1.92.183 8.16.24 8.16.24s5.044-.01 8.4-.249c.469-.056 1.49-.06 2.405-1.017.722-.727.956-2.381.956-2.381S24 14.85 24 12.905v-1.819c0-1.94-.24-3.886-.24-3.886ZM9.52 15.113V8.367l6.483 3.385-6.483 3.36Z\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003C/div\u003E\u003C/a\u003E\u003Cdiv\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\r\n\u003C/div\u003E",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false}},":itemsOrder":["container","text_copy_copy_16360","markup_editor"]}},":itemsOrder":["container"]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":false,"isActiveTOC":false}},":itemsOrder":["flexible_column_cont"]}},":itemsOrder":["container_112062425"]},"markup_editor_copy":{"id":"markup-editor-7bc6c30aad","title":"New css","cssContent":".snowflake-image-container img{background-color:transparent}div.snowflake-person-chip-avatar{width:80px !important}#snowflake-blog-template-main-container .aem-GridColumn:has(.vertical-video){background-color:#000;border-radius:16px;overflow:hidden}#snowflake-blog-template-main-container .vertical-video{max-width:240px;margin-left:auto;margin-right:auto}@media screen and (min-width:1367px){.dynamic .heading-1-v2 .snowflake-title-v2-line{font-size:72px !important;line-height:60px !important}}.snowflake-flexible-column-container-items-alignment-match-height .download-card,.snowflake-flexible-column-container-items-alignment-match-height .download-card\u003E.container{height:100%}.download-card div.code-toolbar\u003E.toolbar .copy-to-clipboard-button{background-color:white;border:1px solid #a9e1f6;margin-right:4px;top:6px;border-radius:16px;height:26px;width:40px}.download-card .snowflake-code-snippet\u003Ediv.code-toolbar\u003E.toolbar\u003E.toolbar-item\u003Ebutton:before{content:'';background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2' style='stroke:%23249EDC;'%3E%3C/rect%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1' style='stroke:%23249EDC;'%3E%3C/path%3E%3C/svg%3E\");background-size:auto 65%;background-position:center;background-repeat:no-repeat;top:0;left:0;width:100%;height:100%}.download-card .snowflake-code-snippet\u003Ediv.code-toolbar\u003E.toolbar\u003E.toolbar-item\u003Ebutton:hover:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2' style='stroke:%23fff;'%3E%3C/rect%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1' style='stroke:%23fff;'%3E%3C/path%3E%3C/svg%3E\")}.download-card\u003Ediv{background-color:#fff;border:1px solid #ccc;border-radius:8px;padding:24px}.download-chip__headline{border-bottom:1px solid #ccc;padding-bottom:16px;margin-bottom:16px}.download-chip{padding:8px 12px !important;border-radius:4px;transition:300ms ease background-color}.download-chip .black-blue-text-color .snowflake-title-v2-line{color:#000 !important;padding-right:24px;font-family:'Lato',sans-serif;font-size:14px !important;font-weight:500 !important}.download-chip .black-blue-text-color .snowflake-title-v2-line:not(:first-child){opacity:.6;font-style:italic !important}.download-chip .snowflake-content-chip-button{display:none}.download-chip.is-external-link{background-size:16px 16px;background-image:url(\"data:image/svg+xml,%3Csvg width='15' height='15' viewBox='0 0 15 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.06055 13.0607L11.8605 2.26067M13.0605 10.6607V1.06067H3.46055' stroke='%23249EDC' stroke-width='2.12132' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\")}.download-chip{background-image:url(\"data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_883_7979)'%3E%3Cpath d='M3.375 16.875H14.625' stroke='%23249EDC' stroke-width='1.40625' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M9 1.125V11.25' stroke='%23249EDC' stroke-width='1.40625' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.5 7.875L9 12.375L13.5 7.875' stroke='%23249EDC' stroke-width='1.40625' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_883_7979'%3E%3Crect width='18' height='18' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A\");background-size:24px auto;background-repeat:no-repeat;background-position:calc(100% - 12px) center}.download-chip__headline{display:flex;gap:16px;flex-direction:row !important;flex-wrap:nowrap}.download-chip__headline::before{content:'';display:inline-block;width:24px;height:24px;background-position:center;background-image:url(\"data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.50005 9.89999C8.13657 9.89999 8.74702 9.64713 9.19711 9.19704C9.64719 8.74696 9.90005 8.13651 9.90005 7.49999V2.69999C9.90005 2.06347 9.64719 1.45302 9.19711 1.00293C8.74702 .552844 8.13657 .299988 7.50005 .299988H2.70005C2.06353 .299988 1.45308 .552844 1.00299 1.00293C.552905 1.45302 .300049 2.06347 .300049 2.69999V7.49999C.300049 8.13651 .552905 8.74696 1.00299 9.19704C1.45308 9.64713 2.06353 9.89999 2.70005 9.89999H7.50005ZM7.50005 7.49999H2.70005V2.69999H7.50005V7.49999Z' fill='%23249EDC' stroke='white' stroke-width='.6'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.50005 20.3C8.13657 20.3 8.74702 20.0472 9.19711 19.5971C9.64719 19.147 9.90005 18.5365 9.90005 17.9V13.1C9.90005 12.4635 9.64719 11.853 9.19711 11.403C8.74702 10.9529 8.13657 10.7 7.50005 10.7H2.70005C2.06353 10.7 1.45308 10.9529 1.00299 11.403C.552905 11.853 .300049 12.4635 .300049 13.1V17.9C.300049 18.5365 .552905 19.147 1.00299 19.5971C1.45308 20.0472 2.06353 20.3 2.70005 20.3H7.50005ZM7.50005 17.9H2.70005V13.1H7.50005V17.9Z' fill='%23249EDC' stroke='white' stroke-width='.6'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.9001 9.89999C18.5366 9.89999 19.147 9.64713 19.5971 9.19704C20.0472 8.74696 20.3001 8.13651 20.3001 7.49999V2.69999C20.3001 2.06347 20.0472 1.45302 19.5971 1.00293C19.147 .552844 18.5366 .299988 17.9001 .299988H13.1001C12.4636 .299988 11.8531 .552844 11.403 1.00293C10.9529 1.45302 10.7001 2.06347 10.7001 2.69999V7.49999C10.7001 8.13651 10.9529 8.74696 11.403 9.19704C11.8531 9.64713 12.4636 9.89999 13.1001 9.89999H17.9001ZM17.9001 7.49999H13.1001V2.69999H17.9001V7.49999Z' fill='%23249EDC' stroke='white' stroke-width='.6'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.9001 20.3C18.5366 20.3 19.147 20.0472 19.5971 19.5971C20.0472 19.147 20.3001 18.5365 20.3001 17.9V13.1C20.3001 12.4635 20.0472 11.853 19.5971 11.403C19.147 10.9529 18.5366 10.7 17.9001 10.7H13.1001C12.4636 10.7 11.8531 10.9529 11.403 11.403C10.9529 11.853 10.7001 12.4635 10.7001 13.1V17.9C10.7001 18.5365 10.9529 19.147 11.403 19.5971C11.8531 20.0472 12.4636 20.3 13.1001 20.3H17.9001ZM17.9001 17.9H13.1001V13.1H17.9001V17.9Z' fill='%23249EDC' stroke='white' stroke-width='.6'/%3E%3C/svg%3E%0A\");background-size:contain;background-repeat:no-repeat}.download-chip__headline.is-cli::before{background-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 17L10 11L4 5' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12 19H20' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\")}.download-card pre[class*=language-]{padding:8px 12px;background-color:var(--ui-background-05);overflow:hidden}.download-chip__headline.is-windows,.download-chip__headline.is-mac{gap:12px}.download-chip__headline.is-windows::before{width:16px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg width='4875' height='4875' viewBox='0 0 4875 4875' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_122_201)'%3E%3Cpath d='M0 0H2311V2310H0V0ZM2564 0H4875V2310H2564V0ZM0 2564H2311V4875H0V2564ZM2564 2564H4875V4875H2564' fill='%23000'/%3E%3C/g%3E%3C/svg%3E\")}.download-chip__headline.is-mac::before{width:16px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns:x='ns_extend;' xmlns:i='ns_ai;' xmlns:graph='ns_graphs;' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0' y='0' viewBox='0 0 41.5 51' style='enable-background:new 0 0 41.5 51;' xml:space='preserve'%3E%3Cmetadata%3E%3Csfw xmlns='ns_sfw;'%3E%3Cslices%3E%3C/slices%3E%3CsliceSourceBounds bottomLeftOrigin='true' height='51' width='41.5' x='166.1' y='-208.1'%3E%3C/sliceSourceBounds%3E%3C/sfw%3E%3C/metadata%3E%3Cg%3E%3Cpath d='M40.2,17.4c-3.4,2.1-5.5,5.7-5.5,9.7c0,4.5,2.7,8.6,6.8,10.3c-.8,2.6-2,5-3.5,7.2c-2.2,3.1-4.5,6.3-7.9,6.3s-4.4-2-8.4-2 c-3.9,0-5.3,2.1-8.5,2.1s-5.4-2.9-7.9-6.5C2,39.5,.1,33.7,0,27.6c0-9.9,6.4-15.2,12.8-15.2c3.4,0,6.2,2.2,8.3,2.2 c2,0,5.2-2.3,9-2.3C34.1,12.2,37.9,14.1,40.2,17.4z M28.3,8.1C30,6.1,30.9,3.6,31,1c0-.3,0-.7-.1-1c-2.9,.3-5.6,1.7-7.5,3.9 c-1.7,1.9-2.7,4.3-2.8,6.9c0,.3,0,.6,.1,.9c.2,0,.5,.1,.7,.1C24.1,11.6,26.6,10.2,28.3,8.1z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E\")}.download-chip__headline.is-desktop::before{background-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg opacity='.8'%3E%3Cpath d='M1.5 21H22.5V18H1.5V21Z' fill='%23000' stroke='white' stroke-width='.75'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.5 15C20.2956 15 21.0587 14.6839 21.6213 14.1213C22.1839 13.5587 22.5 12.7956 22.5 12V6C22.5 5.20435 22.1839 4.44129 21.6213 3.87868C21.0587 3.31607 20.2956 3 19.5 3H4.5C3.70435 3 2.94129 3.31607 2.37868 3.87868C1.81607 4.44129 1.5 5.20435 1.5 6V12C1.5 12.7956 1.81607 13.5587 2.37868 14.1213C2.94129 14.6839 3.70435 15 4.5 15H19.5ZM19.5 12H4.5V6H19.5V12Z' fill='%23000' stroke='white' stroke-width='.75'/%3E%3C/g%3E%3C/svg%3E%0A\")}.download-card .snowflake-code-snippet,.download-card .snowflake-code-snippet code,.download-card .snowflake-code-snippet pre{font-size:14px;color:#000;text-shadow:none !important}.download-chip:hover{background-color:var(--ui-background-05) !important;transition:300ms ease background-color}body:has(.snowflake-skip-to-content[style]) #subNav,.pushdown-banner-dismissed #subNav{top:var(--scroll-padding-top) !important;transition:300ms ease top}body:has(.snowflake-skip-to-content[style*=\"58\"]) #subNav{top:34px !important}body:has(.snowflake-skip-to-content[style*=\"82\"]) #subNav{top:58px !important}body:has(.snowflake-skip-to-content[style*=\"130\"]) #subNav{top:106px !important}body:has(.snowflake-skip-to-content[style*=\"138\"]) #subNav{top:114px !important}body:has(.snowflake-skip-to-content[style*=\"146\"]) #subNav{top:122px !important}.is-hidden .snowflake-person-chip-avatar{display:none}.is-small .snowflake-person-chip-avatar{width:56px;height:56px}.ai-summary ul{margin:16px 0 0 0 !important;padding:0 !important;list-style-type:none}.ai-summary li{margin:0;padding:0 0 0 32px;position:relative}.ai-summary li::before{content:\"\";display:block;border-radius:100%;background:#29b5e8;width:18px;height:18px;position:absolute;top:4px;left:0;border:5px solid #e5f2f7;box-sizing:border-box}.ai-summary li:not(:last-child){margin-bottom:1rem}.snowflake-content-chip-image__image{aspect-ratio:5 / 3 !important}.content-chip-new .snowflake-content-chip-image__image{height:100% !important;aspect-ratio:unset !important}.snapshot-card .snowflake-text p:not(:first-child){margin-top:var(--spacing-01)}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(2) p:has(b){font-family:'Texta',sans-serif;margin-top:24px}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(2) p b{font-weight:700 !important}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(2){border-bottom:1px solid #ccc;padding-bottom:24px}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(3) p:first-child:has(b){font-family:'Texta',sans-serif;font-size:20px !important;margin-bottom:1rem !important}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(3) li{display:inline-block}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(3) li a{display:inline-block;text-decoration:none;padding:4px 16px !important;border:1px solid #ccc;border-radius:24px;color:#666 !important}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(3) ul{list-style-type:none;display:flex;padding:0 !important;margin:0 !important;gap:12px}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container img{width:90%;max-width:240px;margin:0 auto}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container{padding:40px;max-width:450px;margin:0 0 0 auto;background-color:#fff;box-shadow:0 2px 6px 0 rgba(152,162,179,.25),0 10px 20px 0 rgba(152,162,179,.10);border-radius:8px;border-top:4px solid var(--ui-01)}.ai-summary{background-color:#f3fbfe;border-left:2px solid var(--ui-01);padding:40px}.ai-summary\u003Espan p:last-child:has(i){color:#666;font-size:14px !important}.ai-summary\u003Espan p:last-child:has(i) a{color:#666 !important;text-decoration:underline !important}.ai-summary\u003Espan p:last-child:has(i) a:hover{color:var(--ui-01) !Important}.ai-summary\u003Espan p:first-child:has(b)::after{content:'';display:inline-block;width:20px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9.3158 3.15226C8.6475 6.2258 6.22698 8.64545 3.15232 9.31587C2.94923 9.36072 2.94923 9.63928 3.15232 9.68413C6.22698 10.3522 8.6475 12.7742 9.3158 15.8477C9.36067 16.0508 9.63933 16.0508 9.6842 15.8477C10.3525 12.7742 12.773 10.3545 15.8477 9.68413C16.0508 9.63928 16.0508 9.36072 15.8477 9.31587C12.773 8.64781 10.3525 6.2258 9.6842 3.15226C9.63933 2.94925 9.36067 2.94925 9.3158 3.15226Z' fill='%23249EDC'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.3725 11.5461C16.9098 13.6739 15.2341 15.3491 13.1054 15.8132C12.9649 15.8443 12.9649 16.0371 13.1054 16.0681C15.2341 16.5307 16.9098 18.2074 17.3725 20.3353C17.4035 20.4758 17.5965 20.4758 17.6275 20.3353C18.0902 18.2074 19.7659 16.5323 21.8946 16.0681C22.0352 16.0371 22.0352 15.8443 21.8946 15.8132C19.7659 15.3507 18.0902 13.6739 17.6275 11.5461C17.5965 11.4055 17.4035 11.4055 17.3725 11.5461Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\");background-repeat:no-repeat;background-size:contain;background-position:center;vertical-align:middle;margin-left:8px}.ai-summary\u003Espan p:first-child:has(b){color:var(--ui-01) !important;text-transform:uppercase}.border-top{border-top:1px solid rgba(0,0,0,.2)}.border-top\u003Espan{display:block;padding-top:32px}body .snowflake-card-v2-advanced-image__image{aspect-ratio:16 / 9 !important}.content-chip-new .snowflake-content-chip-image__image{border-radius:0;object-fit:cover;height:100%}.sf-footer #ot-sdk-btn.ot-sdk-show-settings,.sf-footer #ot-sdk-btn.optanon-show-settings{color:rgba(255,255,255,.7) !important;text-underline-offset:4px;border-top:none;border-left:none;border-right:none;border-bottom:1px dotted transparent;background-color:transparent !important;background-image:none !important;transition:300ms ease text-decoration-color;padding:0 !important;font-size:12px;font-family:'Lato',sans-serif}.sf-footer #ot-sdk-btn.ot-sdk-show-settings:hover,.sf-footer #ot-sdk-btn.optanon-show-settings:hover{color:rgba(255,255,255,1) !important;border-bottom:1px dotted var(--ui-01);transition:300ms ease text-decoration-color}.sf-footer__legal-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:last-child{flex-shrink:0}.sf-footer__disclaimers{background-color:#042130}.sf-footer__disclaimers .snowflake-simple-stat-disclaimer p a{color:inherit;text-decoration:none !important}.sf-footer__disclaimers .snowflake-simple-stat-disclaimer p sup{margin-right:2px}.sf-footer__disclaimers .snowflake-simple-stat-disclaimer p{text-indent:-5px;padding-left:5px}.sf-footer__disclaimers-inner{border-top:1px solid rgba(255,255,255,.25);padding:40px 0}.sf-footer__disclaimers .snowflake-simple-stat{align-items:flex-start;text-align:left;color:rgba(255,255,255,.7);margin-bottom:10px}.sf-footer__social{display:flex;justify-content:center;gap:12px}.sf-footer .snowflake-footer-social-item{margin:0 !important}.sf-footer .snowflake-footer-social-item a{line-height:0;background-color:rgba(3,24,35,.8);display:inline-block;width:48px !important;height:48px;border-radius:8px;display:inline-flex;justify-content:center;align-items:center;transition:300ms ease background-color}.sf-footer .snowflake-footer-social-item a:hover{background-color:var(--ui-01) !important;transition:300ms ease background-color}.sf-footer__bottom{padding-bottom:40px}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoError .mktoErrorMsg{max-width:100%;color:#fff}.sf-footer .mktoForm .mktoError .mktoErrorMsg .mktoErrorDetail{display:inline-block}.sf-footer .mktoFormRow:has(.mktoHtmlText:empty){display:none}.sf-footer .mktoFormRow .mktoHtmlText span{color:#fff !important}.sf-footer{background-color:#042130}.sf-footer .optanon-toggle-display:hover{text-decoration-color:var(--ui-01) !important;cursor:pointer !important;text-underline-offset:4px;text-decoration-style:dotted !important;text-decoration-color:var(--ui-01);color:#fff !important;transition:300ms ease text-decoration-color;text-decoration:underline;opacity:1}.sf-footer__logo{width:40px}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container{row-gap:32px}.sf-footer__legal-container\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;justify-content:space-between;align-items:center;text-align:center;row-gap:16px}.sf-footer__legal-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(2){text-align:center;flex-grow:1}.sf-footer__legal-links li button,.sf-footer__legal-links li a,.sf-footer__legal-links li{margin:0;color:rgba(255,255,255,.7) !important;font-weight:500}.sf-footer__legal-links li a:hover{color:rgba(255,255,255,1) !important}.sf-footer div.sf-footer__copyright p,.sf-footer div.sf-footer__legal-links li,.sf-footer div.sf-footer__legal-links a,.sf-footer div.sf-footer__legal-links p{font-size:12px !important}.sf-footer__legal-links ul{list-style-type:none;margin:0;padding:0;display:flex;gap:20px;row-gap:4px;justify-content:center;flex-wrap:wrap;text-align:center}.sf-footer__legal-links li:last-child{width:100%}.sf-footer .mktoFormRow:has(.mktoPlaceholder),.sf-footer .mktoFormRow:has(input[type=\"hidden\"]){display:none !important}.sf-footer .mktoFormCol{margin-bottom:0 !important}.sf-footer label[for=\"adhoc1\"]{width:auto !important;flex-grow:1;margin-left:16px}.sf-footer .mktoFieldWrap:has(label[for=\"adhoc1\"]){display:flex;flex-direction:row-reverse;margin-top:22px}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoCheckboxList input[type=checkbox]{background-color:transparent !important;border:1px solid rgba(255,255,255,.4) !important;border-radius:4px !important}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoEmailField,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoTelField,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoTextField,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap select{background-color:transparent !important;color:#fff !important;height:auto !important;border:1px solid rgba(255,255,255,.4) !important;border-radius:4px !important;padding:12px 18px !important}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoEmailField:focus,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoTelField:focus,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoTextField:focus,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap select:focus{border-color:var(--ui-01) !important}.sf-footer .mktoForm *{padding:0 !important}.sf-footer .mktoForm,.sf-footer .snowflake-marketo-form-container{padding:0 !important;background:transparent;margin-bottom:0;box-shadow:none}.sf-footer .mktoHtmlText.mktoHasWidth{width:100% !important;margin:24px 0}.sf-footer .mktoFormRow{flex-direction:column}.sf-footer .mktoForm .mktoButtonWrap{margin:0 !important}.sf-footer select{background-image:url(\"data:image/svg+xml,%3Csvg width='14' height='8' viewBox='0 0 14 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.981445 1.43496L6.90897 7.32496L12.9314 1.33496' stroke='white' stroke-width='1.33333' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\") !important}.sf-footer .snowflake-marketo-form .mktoButtonWrap.mktoNative{justify-content:flex-start}.sf-footer *::placeholder{color:#fff !important;opacity:.8}.sf-footer .mktoForm .mktoButtonWrap.mktoSimple .mktoButton{background-color:var(--ui-01) !important;color:#fff !important;width:100% !important;padding:12px 16px !important;border:1px solid var(--ui-01) !important;background-image:none !important;border-radius:48px;text-transform:uppercase;font-weight:800 !important;font-family:'Texta',sans-serif !important;font-size:16px !important;line-height:1.2}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoHtmlText\u003Espan,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoLabel\u003Espan,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap label.mktoLabel{color:#fff !important}.sf-footer__newsletter-title p:not(:first-child){margin-top:8px !important}.sf-footer__newsletter-title p b{font-weight:800 !important;font-family:'Texta',sans-serif !important;font-size:22px !important;line-height:1.2}.sf-footer__newsletter-title p:last-child{font-size:14px !important;opacity:.8}.sf-footer__link-group li a[target=\"_blank\"]::after{content:'';display:inline-block;width:10px;height:10px;margin-left:5px;background-image:url(\"data:image/svg+xml,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.72222 1.22222C6.38471 1.22222 6.11111 .948616 6.11111 .611111C6.11111 .273607 6.38471 0 6.72222 0H10.3889C10.551 0 10.7064 .0643867 10.821 .178988C10.9356 .293596 11 .449032 11 .611111V4.27778C11 4.61529 10.7264 4.88889 10.3889 4.88889C10.0514 4.88889 9.77778 4.61529 9.77778 4.27778V2.08647L4.09879 7.76545C3.86013 8.00409 3.4732 8.00409 3.23454 7.76545C2.99589 7.52681 2.99589 7.13986 3.23454 6.90122L8.91355 1.22222H6.72222ZM0 2.44444C0 1.76943 .547207 1.22222 1.22222 1.22222H4.27778C4.61529 1.22222 4.88889 1.49583 4.88889 1.83333C4.88889 2.17084 4.61529 2.44444 4.27778 2.44444H1.22222V9.77778H8.55556V6.72222C8.55556 6.38471 8.82915 6.11111 9.16667 6.11111C9.50418 6.11111 9.77778 6.38471 9.77778 6.72222V9.77778C9.77778 10.4528 9.23059 11 8.55556 11H1.22222C.547207 11 0 10.4528 0 9.77778V2.44444Z' fill='white'/%3E%3C/svg%3E%0A\");background-size:contain;background-repeat:no-repeat;background-position:center}.sf-footer__link-group ul,.sf-footer__link-group li{margin:0;padding:0;list-style-type:none}.sf-footer__link-group ul{margin-top:20px !important}.sf-footer__link-group li{margin-top:15px}.sf-footer div.sf-footer__link-group\u003Espan\u003Ep\u003Ea,.sf-footer div.sf-footer__link-group\u003Espan\u003Ep{color:var(--ui-01) !important;font-weight:800 !important;font-family:'Texta',sans-serif !important;font-size:20px !important;line-height:1.2}.sf-footer__link-group li a{opacity:.9;color:#fff !important;font-weight:500 !important;font-size:15px !important;line-height:1.3}.sf-footer__link-group li a:hover{opacity:1}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container::before,.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container::after{display:none}.sf-footer__column{flex-grow:1}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:not(:first-child){width:50%}@media (min-width:800px){.sf-footer__legal-links ul{justify-content:flex-start;text-align:left}.sf-footer__social{justify-content:flex-end}.sf-footer__legal-links ul{padding-left:24px}.sf-footer__legal-container\u003E.container\u003E.cmp-container\u003E.aem-container{text-align:right;flex-wrap:nowrap}.sf-footer__legal-links.align-left ul{justify-content:flex-start}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;justify-content:space-between;flex-direction:row}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:auto !important;max-width:200px}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{flex-grow:1;order:2;width:100% !important;max-width:none}.sf-footer__legal-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:auto}}@media screen and (min-width:1380px){.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container{flex-wrap:nowrap}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{padding-right:48px;max-width:380px;background-color:rgba(3,24,35,.4);padding:32px;margin-left:48px;border-radius:16px}.sf-footer__link-group li,.sf-footer__link-group li a{font-size:14px !important;line-height:1.3}}@media screen and (max-width:991px){.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{order:2;margin-top:24px !important}}@media screen and (max-width:420px){.is-reduced-mobile .heading-1-v2,.is-reduced-mobile .heading-1-v2-sm{font-size:32px;line-height:28px}}.quote-content-chip{background-color:var(--ui-background-05);padding:24px;border-radius:12px;position:relative}.quote-content-chip .black-blue-text-color .snowflake-title-v2-line\u003Espan{color:rgba(0,0,0,.8) !important;font-size:15px !important;line-height:1.5 !important;font-family:'Lato',sans-serif;font-weight:400 !important}.quote-content-chip .black-blue-text-color .snowflake-title-v2-line\u003Espan:not(:first-child){max-width:calc(100% - 200px)}.quote-content-chip .black-blue-text-color .snowflake-title-v2-line\u003Espan:nth-child(2){font-family:'Texta',sans-serif;color:#000 !important;font-size:20px !important;font-weight:800 !important;margin-top:24px}.quote-content-chip .snowflake-content-chip-image{width:140px !important}@media screen and (min-width:992px){.quote-content-chip .snowflake-content-chip-image{position:absolute !important;bottom:24px;right:16px}}@media screen and (max-width:991px){.quote-content-chip .snowflake-content-chip-image{margin-bottom:40px}.quote-content-chip{flex-direction:column}}#spa-root{background-color:#fff}.lowercase .snowflake-title-v2-line{text-transform:none !important}.centered .snowflake-logo-content-container-inner{justify-content:center}div.snowflake-linklist-dropdown-menu{max-height:380px}.first-line-blue .snowflake-typographyv2 .snowflake-title-v2-line:first-child{color:var(--ui-01) !important}.is-front{position:relative;z-index:2}.use-case-body .snowflake-text h1,.use-case-body .snowflake-text h2,.use-case-body .snowflake-text h3,.use-case-body .snowflake-text h4,.use-case-body .snowflake-text h5,.use-case-body .snowflake-text h6{font-family:'Texta',sans-serif;color:#000;margin:.25rem 0 0 0}.pc-hero .button-group\u003E.container\u003E.cmp-container\u003E.aem-container{justify-content:flex-start}.sf-footer .mktoFormRow .mktoHtmlText span{font-family:'Lato',sans-serif !important}.snowflake-button-primary.snowflake-button-blue .snowflake-button-container{justify-content:center}.related-chip-25{background-color:#fff;border:1px solid rgba(204,204,204,.5);border-radius:8px;padding:20px;position:relative}.related-chip-25:hover{box-shadow:rgba(152,162,179,.1) 0 10px 20px 0}.related-chip-25:hover::after{right:24px;transition:300ms ease right}.related-chip-25::after{content:'';display:block;transition:300ms ease right;background-image:url(\"data:image/svg+xml,%3Csvg width='8' height='14' viewBox='0 0 8 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.66699 7C7.66699 6.6571 7.53559 6.32825 7.30169 6.08578L2.34446 .947072C1.84529 .429617 1.0164 .429617 .517219 .947072C.0427878 1.43887 .042788 2.21798 .517219 2.70978L4.65591 7L.51722 11.2902C.0427889 11.782 .0427887 12.5611 .51722 13.0529C1.0164 13.5704 1.84529 13.5704 2.34447 13.0529L7.30169 7.91421C7.53559 7.67175 7.66699 7.34289 7.66699 7Z' fill='%2329B5E8'/%3E%3C/svg%3E%0A\");width:8px;height:14px;display:block;position:absolute;right:30px;top:50%;transform:translateY(-50%);background-size:contain;background-position:center;background-repeat:no-repeat}.related-chip-25 .heading-5-v2{font-size:22px;line-height:1.1}.related-chip-25 .snowflake-content-chip-image{width:48px;flex-shrink:0}.related-chip-25 .snowflake-content-chip-image__image{aspect-ratio:1;height:auto;object-fit:contain}.related-chip-25 .snowflake-content-chip-button{display:none}.related-chip-25 .snowflake-content-chip-content-without-tag{flex-grow:1;padding-right:24px}.case-study-25.small-logo .snowflake-case-study-card-logo img{width:60px !important}.swiper-slide .case-study-25{width:95%;margin-left:auto;margin-right:auto}.case-study-25 .snowflake-case-study-card-logo img{width:140px !important;height:auto !important;transform:none !important;margin:24px 0 8px 0}.case-study-25 .snowflake-case-study-card-image__image{object-position:left center}.case-study-25 .snowflake-case-study-card-information-container{padding-right:24px}.case-study-25 ul{list-style-type:none;padding:0;margin:8px 0 0 0}.case-study-25 li{font-size:15px !important;line-height:1.3 !important;display:flex;flex-direction:column;border-left:4px solid var(--ui-01);padding-left:24px;margin-top:24px;color:#535862;gap:4px}.case-study-25 li b{display:block;font-family:'Texta',sans-serif;font-weight:900 !important;font-size:48px !important;line-height:.9 !important;color:var(--ui-01)}.case-study-25 .snowflake-case-study-card-description p{color:#535862}.case-study-25 .snowflake-case-study-card-description p:nth-child(2):not(:has(a)){color:#000;font-family:Texta;font-size:30px !important;line-height:1 !important;font-style:normal;font-weight:700;text-indent:-8px}.case-study-25.is-story .snowflake-case-study-card-description p:nth-child(2):not(:has(a)){text-indent:0}.case-study-25 .snowflake-case-study-card-key-card{background-color:transparent}.case-study-25 .snowflake-case-study-card-button{display:none}.case-study-25{border-radius:24px;overflow:hidden}@media screen and (min-width:1024px){.case-study-25 .snowflake-case-study-card-left-container{position:static;width:60%;min-height:0}.case-study-25 .snowflake-case-study-card-right-container::after{content:'';display:block;width:60%;max-width:340px;padding-bottom:50%;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 22 16' class='snowflake-pushdown-banner-placeholder-arrow'%3E%3Cpath fill='%2329B5E8' fill-rule='evenodd' d='M17.865 8.756c.088-.274.124-.555.118-.834a2.551 2.551 0 0 0-1.3-2.142L7.887.76C6.645.055 5.063.475 4.35 1.7a2.535 2.535 0 0 0 .947 3.494l4.916 2.809-4.916 2.801a2.543 2.543 0 0 0-.947 3.502c.713 1.222 2.295 1.64 3.537.934l8.796-5.024a2.541 2.541 0 0 0 1.182-1.46Z' clip-rule='evenodd'%3E%3C/path%3E%3C/svg%3E\");background-size:contain;background-repeat:no-repeat;position:absolute;top:-10%;left:-20%}.case-study-25 .snowflake-case-study-card-right-container{max-width:none;width:40%;position:absolute;top:-5%;right:-5%;z-index:0;height:110%}}@media screen and (min-width:768px){.case-study-25 li{max-width:50%}.case-study-25 ul{display:flex;gap:48px}}.snowflake-text.section-eyebrow p{margin-left:auto;margin-right:auto;margin-bottom:16px !important}.snowflake-text.section-eyebrow p,.snowflake-text.eyebrow-text p{text-transform:uppercase;font-family:'Texta',sans-serif !important;font-weight:800 !important;letter-spacing:.025em;margin-bottom:12px;line-height:1.1 !important}.snowflake-title-v2.dynamic .heading-2-v2 span.snowflake-title-v2-line{font-size:clamp(2.5rem,4.5vw,4rem) !important;line-height:.82 !important}.checklist ul{padding:0;margin:0}.checklist ul li{list-style-type:none;padding-left:32px;position:relative}.checklist ul li:not(:last-child){margin-bottom:1em}.checklist ul li::before{content:'';display:inline-block;width:20px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg width='24' height='25' viewBox='0 0 24 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect y='.985352' width='24' height='24' rx='12' fill='%23D4F0FA'/%3E%3Cpath d='M7.28613 13.2967L10.7147 16.7253L17.5718 9.86816' stroke='%2329B5E8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");background-size:contain;background-repeat:no-repeat;position:absolute;top:3px;left:0}.last-line-blue .snowflake-typographyv2 .snowflake-title-v2-line:last-child{color:var(--ui-01)}.snowflake-text p sup{line-height:0}.snowflake-title-v2.lowercase .heading-3-v2{font-size:28px;line-height:1;text-transform:none;font-weight:700}.snowflake-title-v2.lowercase .heading-2-v2{font-size:32px;line-height:1;text-transform:none;font-weight:700}.content-chip-new{border:1px solid rgba(204,204,204,.5);border-radius:16px;overflow:hidden}.content-chip-new .snowflake-image-container{border-radius:0;display:none}.content-chip-new .snowflake-content-chip-image{margin-right:0;max-width:180px;flex-shrink:0}.content-chip-new .snowflake-content-chip-content{padding:24px}.content-chip-new .black-blue-text-color .snowflake-title-v2-line:first-child{font-size:24px;line-height:1.1}.content-chip-new .black-blue-text-color .snowflake-title-v2-line:not(:first-child){font-family:'Lato',sans-serif;font-size:17px;color:#535862 !important;font-weight:500;line-height:1.45;margin-top:8px;display:none}div.snowflake-text a{font-weight:normal;color:var(--ui-01);text-decoration:underline;text-underline-offset:4px;text-decoration-style:dotted !important;text-decoration-color:transparent;transition:300ms ease text-decoration-color}div.snowflake-text a:hover{text-decoration-color:var(--ui-01);transition:300ms ease text-decoration-color}.footer-nav__link-group .snowflake-button-container,.subnav__item--button,.snowflake-card-v2-advanced-button .snowflake-button-container{justify-content:flex-start}.button-container\u003E.container\u003E.cmp-container\u003E.aem-container{align-items:center}.button-container\u003E.container\u003E.cmp-container\u003E.aem-container .snowflake-button-primary+.snowflake-button-link{margin-left:12px !important}.snowflake-button-regular.snowflake-button-link .snowflake-button-container{font-size:18px !important;text-align:left;justify-content:flex-start;line-height:1.4 !important}body .snowflake-card-v2-advanced{border:1px solid rgba(204,204,204,.5);border-radius:var(--spacing-02);transition:300ms ease all}body .snowflake-card-v2-advanced:hover{transform:translateY(-10px);box-shadow:rgba(152,162,179,.1) 0 10px 20px 0;transition:300ms ease all}body .snowflake-card-v2-advanced-inner{border-bottom:none}body .snowflake-card-v2-advanced-image{line-height:0}body .snowflake-card-v2-advanced-image__image{aspect-ratio:16 / 9}body .snowflake-card-v2-advanced-content{position:relative}body .snowflake-card-v2-advanced-content::after{content:'';display:block;position:absolute;bottom:0;left:0;transition:300ms ease all;width:20%;height:4px;background-color:var(--ui-01);opacity:0}body .snowflake-card-v2-advanced:hover .snowflake-card-v2-advanced-content::after{width:100%;opacity:1;transition:300ms ease all}body .snowflake-card-v2-advanced .snowflake-button-link.snowflake-button-blue .snowflake-button-container\u003E.link-icon{transition:300ms ease transform}body .snowflake-card-v2-advanced:hover .snowflake-button-link.snowflake-button-blue .snowflake-button-container\u003E.link-icon{transform:translateX(4px);transition:300ms ease transform}.six-columns\u003E.container\u003E.cmp-container\u003E.aem-container,.three-columns\u003E.container\u003E.cmp-container\u003E.aem-container,.four-columns\u003E.container\u003E.cmp-container\u003E.aem-container,.five-columns\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-wrap:wrap;gap:24px}.six-columns.align-center\u003E.container\u003E.cmp-container\u003E.aem-container,.three-columns.align-center\u003E.container\u003E.cmp-container\u003E.aem-container,.four-columns.align-center\u003E.container\u003E.cmp-container\u003E.aem-container,.five-columns.align-center\u003E.container\u003E.cmp-container\u003E.aem-container{justify-content:center}.three-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:100%;margin:0 !important}.six-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv,.four-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv,.five-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(50% - 12px);margin:0 !important}@media screen and (min-width:768px){.three-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(50% - 12px)}.six-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv,.four-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv,.five-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(33.333% - 16px)}}@media screen and (min-width:1024px){.snowflake-title-v2.lowercase .heading-3-v2{font-size:34px}.snowflake-title-v2.lowercase.larger .heading-2-v2{font-size:44px;line-height:.95}.three-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(33.333% - 16px)}.four-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(25% - 18px)}.five-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(20% - 19.2px)}.six-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(16.6666% - 20px)}.snowflake-title-v2.lowercase .heading-3-v2{font-size:28px !important}}@media screen and (min-width:1200px){.snowflake-title-v2.lowercase .heading-2-v2{font-size:40px}.content-chip-new .snowflake-content-chip-content{padding:32px}.content-chip-new .snowflake-image-container,.content-chip-new .black-blue-text-color .snowflake-title-v2-line:not(:first-child){display:block}}.promo-banner-25{border-radius:16px;overflow:hidden}.promo-banner-25 .snowflake-premium-content-banner-image-container{position:relative;max-width:380px}.promo-banner-25 .snowflake-text{color:#535862}.promo-banner-25 .snowflake-premium-content-banner-image__image{transform:translateY(8px);transition:300ms ease transform;border-radius:0;width:85%;margin:0 auto;display:block;position:relative;z-index:1}.promo-banner-25 .snowflake-premium-content-banner-image__link:hover .snowflake-premium-content-banner-image__image{transform:translateY(0);transition:300ms ease transform}.promo-banner-25 .snowflake-premium-content-banner-image__inner{height:auto;padding-top:24px}.promo-banner-25 .snowflake-premium-content-banner-image__link{position:relative;z-index:1;height:auto}.promo-banner-25 .snowflake-premium-content-banner-image__link::after{content:'';display:block;position:absolute;clip-path:polygon(0 0,66% 0,100% 100%,0 100%);bottom:0;left:0;width:100%;height:100%;background:var(--ui-01);transition:300ms ease width}.promo-banner-25 .snowflake-premium-content-banner-image__link:hover::after{width:110%;transition:300ms ease width}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap select{background-position:95% 50%}.sf-footer__disclaimers .text-size-small .snowflake-text p{color:#fff !important;font-size:10px !important;opacity:.8}@media screen and (min-width:768px){.sf-footer__disclaimers .text-size-small .snowflake-text p{font-size:12px !important}}@media screen and (max-width:1023px){.mobile-top-padding{padding-top:64px}}@media (max-width:799px){.sf-footer .snowflake-marketo-form .mktoButtonWrap.mktoNative .mktoButton{width:100% !important}.sf-footer__logo{text-align:center;display:block;margin:0 auto}}.customer-card .snowflake-card-v2-advanced-image{aspect-ratio:4.35 / 1}.customer-card .snowflake-card-v2-advanced-image__image{width:100%;height:100%;padding-left:8px;object-fit:contain;object-position:left center;margin:0 !important;aspect-ratio:initial}.customer-card .snowflake-card-v2-advanced-image__inner{height:110px}.customer-card .snowflake-card-v2-advanced-tag-indicator{display:none}.pc-hero .snowflake-container-arrow-small-gray-image{top:-34% !important;width:18% !important}.pc-hero .snowflake-container-arrow-small-gray-image path{fill:var(--ui-01);opacity:1}@media screen and (max-width:767px){.mobile-padding-top{padding-top:64px}.hide-mobile{display:none !important}.pc-hero{padding-top:52px}.pc-hero .snowflake-text p,.pc-hero .left-alignment .snowflake-title-v2-line,.pc-hero h1 span{text-align:center !important}}div.snowflake-pushdown-banner-button{margin-top:0}.button-group.align-center\u003E.container\u003E.cmp-container\u003E.aem-container{align-items:center;justify-content:center !important}.text-center .snowflake-breadcrumb-swiper .swiper-wrapper{justify-content:center}div.snowflake-breadcrumb a.snowflake-breadcrumb-item,.snowflake-breadcrumb div.snowflake-breadcrumb-item{text-transform:none;font-weight:500}.snowflake-breadcrumb svg{display:none !important}.snowflake-breadcrumb a:has(svg)::after{content:'/';margin:0 12px;color:#666}.hide-filters .snowflake-filterable-and-searchable-grid-top-part{display:none !important}.page-section{padding-left:24px;padding-right:24px}@media screen and (min-width:768px){.page-section{padding-left:48px;padding-right:48px}}.download-card pre[class*=language-]{overflow-x:scroll !important}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false}},":itemsOrder":["container_copy","container_573483281_","markup_editor_copy"]}},":itemsOrder":["root"]},"markup_editor":{"id":"markup-editor-ab18f3de96","title":"Quickstarts Overrides","cssContent":".snowflake-markdown blockquote{padding:24px 32px;background:#f6f9fa;border:1px solid #29b5e8;border-radius:16px}.snowflake-markdown .snowflake-image-container img{width:auto !important;max-width:100%}.snowflake-markdown .snowflake-text ol{padding-left:20px !important}.snowflake-markdown .snowflake-text li{margin:0 0 12px 0 !important}.snowflake-markdown h3.snowflake-markdown-h3{font-size:20px !important;font-family:Texta,sans-serif !important}@media (min-width:768px){.snowflake-markdown h3.snowflake-markdown-h3{font-size:28px !important}}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false}},":itemsOrder":["experiencefragment-banner","experiencefragment-header","markup_editor_1950346551","responsivegrid","modal_container","experiencefragment-footer","markup_editor"],":type":"wcm/foundation/components/responsivegrid"}},":itemsOrder":["root"],"locale":"en"}
  