{"templateName":"quickstart-page-template","cssClassNames":"page basicpage summit-page","allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"description":"Harmonize data from multiple sources in Snowflake Cortex AI and Streamlit for consistent analytics, unified schemas, clean models, and integration.","language":"en","title":"End-to-End Data Harmonization with Snowflake Cortex AI","analyticsPageType":"quickstart-page-template","analyticsCategory":"general","analyticsSubCategory":"","excludeFromAnalytics":false,"analyticsContentTags":["snowflake-site:taxonomy/snowflake-feature/cortex-llm-functions","snowflake-site:taxonomy/solution-center/certification/quickstart","snowflake-site:taxonomy/product/platform","snowflake-site:taxonomy/product/data-engineering"],":mappedPath":"/en/developers/guides/data-harmonization/",":type":"snowflake-site/components/structure/page",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","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"},"columnCount":12,":items":{"experiencefragment-banner":{"id":"experiencefragment-101b380ba6","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","classNames":"aem-xf",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"pushdown_banner_copy":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-17d483d061",":type":"snowflake-site/components/container",":items":{"pushdown_banner_copy":{"id":"pushdown-banner-d1063bf536","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","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-235d375cd6","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","classNames":"aem-xf",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"mega_header":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-d47543821e",":type":"snowflake-site/components/container",":items":{"markup_editor":{"id":"markup-editor-24aa75841b","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","layout":"SIMPLE","id":"container-951a5e713e",":type":"snowflake-site/components/mega-header","appliedCssClassNames":"snowflake-header-container white",":items":{"nav_mega":{"activeItem":"item_1719963657751_c_663444255","id":"tabs-64143de6de",":type":"snowflake-site/components/nav/nav-mega",":items":{"item_1719963657751_c_663444255":{"id":"nav-dropdown-menu-ab1c510a37","enableDropdown":true,"nav_column_container":{"layout":"SIMPLE","id":"container-2bc10775b3",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column":{"additionalClasses":"nav-platform-sidebar","numberOfSubColumns":"one-column","minWidth":"230","maxWidth":"350","layout":"SIMPLE","id":"container-d0c937a81d",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_copy_2_793631646":{"id":"nav-item-3cdb646747","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"The Snowflake Platform"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-1862ea8f1e","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake CoWork"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy_2_836345186":{"id":"nav-item-d6446318da","additionalClasses":"blue-icon is-analytics","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/analytics/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Analytics"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy_2":{"id":"nav-item-70dc594e38","additionalClasses":"blue-icon is-ai","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/ai/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"AI"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy_2_1314771042":{"id":"nav-item-86075c8aed","additionalClasses":"blue-icon is-data-eng","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/data-engineering/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Data Engineering"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_144634":{"id":"nav-item-535e044460","additionalClasses":"blue-icon is-apps-collab","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/applications-and-collaboration/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Applications & Collaboration"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_144634_2013333117":{"id":"nav-item-d6940201e3","additionalClasses":"blue-icon is-transactions","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/transactions/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","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","layout":"SIMPLE","id":"container-d2d11dc4d7",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_212715":{"id":"nav-item-243f0420a6","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake CoCo"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-f1c7c9f1ca","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Cortex AI"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590635":{"id":"nav-item-21ae20dc82","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Marketplace"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590":{"id":"nav-item-31ae61389b","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Snowpark"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590_983061516":{"id":"nav-item-7ad79473bf","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","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","layout":"SIMPLE","id":"container-e63d6b17af",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_660590_1739526127":{"id":"nav-item-e019fd4387","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Postgres"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_185565":{"id":"nav-item-9f8d0a8758","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake ML"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_212715":{"id":"nav-item-6bd77d8a85","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Openflow"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590":{"id":"nav-item-b25162bb33","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Notebooks"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_258535199":{"id":"nav-item-9deded3282","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","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","layout":"SIMPLE","id":"container-b68d8908f1",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy":{"id":"nav-item-6cff56d382","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Horizon Catalog"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590_1293798742":{"id":"nav-item-ae9126d68c","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Horizon Context"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_511717659_c":{"id":"nav-item-47f5d59fa7","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Unistore"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_511717659_c_1443811525":{"id":"nav-item-2f169c6b71","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Observe"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_511717659_c_1006104884":{"id":"nav-item-52eb12dcda","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","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-a7f8217206","enableDropdown":true,"nav_column_container":{"layout":"SIMPLE","id":"container-40e0afae02",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column":{"navColumnTitle":"INDUSTRIES","numberOfSubColumns":"one-column","minWidth":"280","layout":"SIMPLE","id":"container-b371f9849f",":type":"snowflake-site/components/nav/nav-column","appliedCssClassNames":"snowflake-responsive-container-inner-padding-extra-small",":items":{"nav_item_copy_361384_2056203141":{"id":"nav-item-89c4ef33c6","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"All Industries"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-c539be0f03","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/advertising-media-entertainment/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Advertising, Media & Entertainment"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-44e8fbfc4f","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/financial-services/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Financial Services"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1970515619":{"id":"nav-item-4b6b7cf08e","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/healthcare-and-life-sciences/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Healthcare & Life Sciences"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1533429516":{"id":"nav-item-e6155ba50a","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/manufacturing/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Manufacturing"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1444458226":{"id":"nav-item-a63c83c40c","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/public-sector/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Public Sector"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1149488919":{"id":"nav-item-30c1b2d902","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/retail-consumer-goods/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Retail & Consumer Goods"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_57417040":{"id":"nav-item-a1a6bc1665","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/technology/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Technology"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_361384674":{"id":"nav-item-76cea74ec5","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/telecom/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Telecom"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_361384":{"id":"nav-item-553da87bd1","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/travel-hospitality/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","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","layout":"SIMPLE","id":"container-038b10f957",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-a2d1b49c1c","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/solutions/departments/finance/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Finance"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-dcc11e8cce","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/solutions/departments/information-technology/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"IT"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1970515619":{"id":"nav-item-31fc6cd82a","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/solutions/departments/marketing/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","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","layout":"SIMPLE","id":"container-2f3770ac82",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_107772":{"id":"nav-item-7b74dbc530","linkDescription":"Confident migration to a unified platform","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/migrate-to-the-cloud/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Migrate to the AI Data Cloud"},"icon":{"id":"icon","height":"64","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","alt":"Cloud icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy":{"id":"nav-item-373e47dc8d","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Services Delivery"},"icon":{"id":"icon","height":"64","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","alt":"Migrate icon","lazyEnabled":true,"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","layout":"SIMPLE","id":"container-e1cb286fb3",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-94fc19e6e6","linkDescription":"Programs with product, solutions and cloud partners","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/partners/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake Partner Network"},"icon":{"id":"icon","height":"64","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","alt":"Partner Network icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-859ebdeb8b","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Partner Finder"},"icon":{"id":"icon","height":"64","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","alt":"Partner Finder icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1970515619":{"id":"nav-item-e3c2d02ef1","linkDescription":"Live and virtual events","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/partners/event-partnership-opportunities/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Event Partnership Opportunities"},"icon":{"id":"icon","height":"64","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","alt":"Calendar icon","lazyEnabled":true,"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-f6ff214918","enableDropdown":true,"nav_column_container":{"layout":"SIMPLE","id":"container-cb5f3ff032",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column":{"numberOfSubColumns":"one-column","minWidth":"230","maxWidth":"350","layout":"SIMPLE","id":"container-6f2a9adae6",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_copy_2_793631646":{"id":"nav-item-d971641d87","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","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","layout":"SIMPLE","id":"container-b7c18c6a1e",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-0ecf2d10ac","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Customers"},"icon":{"id":"icon","height":"64","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","alt":"Customer icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_258535199":{"id":"nav-item-4871c2be85","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"The AI Data Cloud Explained"},"icon":{"id":"icon","height":"64","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","alt":"Cloud icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_185565":{"id":"nav-item-90a961eb1a","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Security Hub"},"icon":{"id":"icon","height":"64","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","alt":"User with security lock icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-3772216140","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Cost and Performance Optimization"},"icon":{"id":"icon","height":"64","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","alt":"Cost Optimization icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_185565_903555964":{"id":"nav-item-d7b4aa8a23","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake for Startups"},"icon":{"id":"icon","height":"64","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","alt":"Launch","lazyEnabled":true,"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-cdbbac7b5e","enableDropdown":true,"nav_column_container":{"layout":"SIMPLE","id":"container-6ae8c65954",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column_copy":{"navColumnTitle":"Connect","numberOfSubColumns":"one-column","minWidth":"124","layout":"SIMPLE","id":"container-360fd89d4c",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-2abe200aa5","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Blog"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_180298689":{"id":"nav-item-ca3d38610f","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/events/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Events"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_1639361946":{"id":"nav-item-6e3e5a60b8","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/support/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Support"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_680912746":{"id":"nav-item-209d2d25bf","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/contact/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","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","layout":"SIMPLE","id":"container-2b504ee557",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy":{"id":"nav-item-d1e8eb3958","linkDescription":"Ebooks, videos, white papers and more","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/resources/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Resource Library"},"icon":{"id":"icon","height":"64","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","alt":"Notebooks icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-c49fbe3b60","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Training"},"icon":{"id":"icon","height":"64","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","alt":"Training icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_144634_1984107859":{"id":"nav-item-a699d00285","linkDescription":"Expert-led discussions and demos across industries and use cases","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/webinars/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Webinars"},"icon":{"id":"icon","height":"64","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","alt":"Webinars icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1438098918":{"id":"nav-item-0218b50c7b","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Certifications"},"icon":{"id":"icon","height":"64","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","alt":"Certification icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_143809":{"id":"nav-item-3aed1cddaa","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Live Demos"},"icon":{"id":"icon","height":"64","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","alt":"Live Demo icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_333890638":{"id":"nav-item-e868fc0808","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Snowflake University"},"icon":{"id":"icon","height":"64","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","alt":"Education icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_189945":{"id":"nav-item-41988bc97c","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Hands-On Labs"},"icon":{"id":"icon","height":"64","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","alt":"Hands-on Labs icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_333890":{"id":"nav-item-56934ad040","linkDescription":"Academic papers written by Snowflake researchers","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/resources/publications/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake Research Publications"},"icon":{"id":"icon","height":"64","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","alt":"Copy","lazyEnabled":true,"width":"65",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_333890_930852828":{"id":"nav-item-6d44ee9e1a","linkDescription":"Informative articles about AI and data topics","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/fundamentals/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Fundamentals"},"icon":{"id":"icon","height":"64","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","alt":"Document with list","lazyEnabled":true,"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-6e5ed8b3dd","experience_fragment_1":{"id":"experiencefragment-76a2bcd14c","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/master1/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","classNames":"aem-xf",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-b78cd6046b",":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-5276670b23","openInNewWindow":true,"layout":"horizontal","headline":"The Modern Marketing Data Stack 5th Edition","description":"AI agents are changing the marketing stack. See how to govern the shift. ","linkTitle":"Learn more","linkUrl":"/en/the-modern-marketing-data-stack-report/","image":{"id":"image","height":"540","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--b3030d24-fd50-45e6-bfe6-9520d3eb46d8/web-inside-the-mmds-5th-960x540.png?preferwebp=true&quality=85","alt":"MMDS report 5th edition","lazyEnabled":true,"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-ea80dbd3cf","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/navigation-promo-card-2/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","classNames":"aem-xf",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-56c05b7963",":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-f6c0c2f1ad","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","height":"540","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?preferwebp=true&quality=85","alt":"roi of gen ai and agents","lazyEnabled":true,"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-4eded8c0ba","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/navigation-promo-card-3/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","classNames":"aem-xf",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-9cb93f4f35",":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-67e4e2bc7e","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","height":"540","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--a320b404-dca1-4477-b033-c79708538657/web-startup-2026-960x540.png?preferwebp=true&quality=85","alt":"alt","lazyEnabled":true,"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-66c6d12784","enableDropdown":true,"nav_column_container":{"layout":"SIMPLE","id":"container-23967bf348",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column_copy_copy":{"navColumnTitle":"Build","numberOfSubColumns":"one-column","layout":"SIMPLE","id":"container-d70dffc070",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-b0ff95c4e5","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake for Developers"},"icon":{"id":"icon","height":"64","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","alt":"Developers icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1855651246":{"id":"nav-item-32bd4204ba","linkDescription":"Reference architectures, use cases and best practices","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/guides/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Developer Guides"},"icon":{"id":"icon","height":"64","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","alt":"Solution Center icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-d9a0d41dbd","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Downloads"},"icon":{"id":"icon","height":"28","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","alt":"Download icon","lazyEnabled":true,"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","layout":"SIMPLE","id":"container-6e8214b9dd",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-beb5ad3858","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Documentation"},"icon":{"id":"icon","height":"64","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","alt":"Docs icon","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-8c51b09cbc","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Open Source"},"icon":{"id":"icon","height":"32","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","alt":"Open Source icon","lazyEnabled":true,"width":"32",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy":{"id":"nav-item-de2afdbb6a","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Builder Education"},"icon":{"id":"icon","height":"32","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","alt":"Northstar logo","lazyEnabled":true,"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","layout":"SIMPLE","id":"container-daf6d12df9",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-edd7ad8eab","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Engineering Blog"},"icon":{"id":"icon","height":"32","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","alt":"Developers icon","lazyEnabled":true,"width":"32",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1855651246":{"id":"nav-item-b4679912d9","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",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Community"},"icon":{"id":"icon","height":"64","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","alt":"Partner Network icon","lazyEnabled":true,"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-6e17258ce9","experience_fragment_1":{"id":"experiencefragment-6e22f48244","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/nav-promo-5/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","classNames":"aem-xf",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-68030b5c04",":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-cdb3c58fe7","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","height":"210","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--dc7e334a-c38b-4283-b1de-fcf829952eef/nav-promo-first-notebook.jpg?preferwebp=true&quality=85","alt":"alt","lazyEnabled":true,"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-1aa3e64658","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/nav-promo-card-4/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","classNames":"aem-xf",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-388592d098",":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-f2ed6ea76e","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","height":"700","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--14341ced-bc5e-4a29-9762-b7857f6cadfc/nav-promo-northstar.jpg?preferwebp=true&quality=85","alt":"Snowflake Northstar logo","lazyEnabled":true,"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-f4a879c072","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-658d54a616","languageNavItems":[{"title":"English","path":"/en/developers/guides/data-harmonization/","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-1980c157c4","heapButtonClasses":["mega-nav__sign-in"],"showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://app.snowflake.com/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","appliedCssClassNames":"snowflake-button-link snowflake-button-black snowflake-button-compact","linkType":"SNOWFLAKE_EXTERNAL","text":"Sign in"},"button":{"id":"button-269cb7a467","heapButtonClasses":["contact_nav","heap-nav-contact"],"showOutboundIcon":true,"buttonLink":{"valid":true,"url":"/en/contact-sales/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","appliedCssClassNames":"snowflake-button-secondary snowflake-button-blue snowflake-button-compact","linkType":"SNOWFLAKE_INTERNAL","text":"CONTACT SALES"},"button_288358396":{"id":"button-ca379e68d2","heapButtonClasses":["start_for_free_nav","heap-nav-start-for-free"],"showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://signup.snowflake.com/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","appliedCssClassNames":"snowflake-button-primary snowflake-button-blue snowflake-button-compact","linkType":"SNOWFLAKE_EXTERNAL","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-43c931cdab","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":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","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"},"columnCount":12,":items":{"quickstart_hero":{"id":"quickstart-hero-981a19aa3a","fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/data-harmonization",":type":"snowflake-site/components/quickstart/quickstart-hero","quickstartHeroTitle":{"lines":["End-to-End Data Harmonization with Snowflake Cortex AI"],"type":"heading2",":type":"snowflake-site/components/title-v2"},"quickstartHeroAuthor":"Joshua Rauh and Ben Marzec","quickstartHeroFirstSnowflakeFeatureTag":{"tagText":"Cortex LLM","tagColor":"#29B5E8","tagPath":"/content/cq:tags/snowflake-site/taxonomy/snowflake-feature/cortex-llm-functions","tagIcon":""},"quickstartHeroForkRepoLink":{"id":"button-a730377cbd","showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/data-harmonization"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Fork Repo"},"quickstartHeroBreadcrumbs":[{"title":"End-to-End Data Harmonization with Snowflake Cortex AI","url":"https://www.snowflake.com/content/snowflake-site/global/en/developers/guides/data-harmonization","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}],"quickstartHeroFirstCertifiedTag":{"tagText":"Quickstart","tagColor":"#29B5E8","tagPath":"/content/cq:tags/snowflake-site/taxonomy/solution-center/certification/quickstart","tagIcon":""},"isDeveloperGuidesPage":false},"flexible_column_cont":{"id":"flexible-column-container-082115a02a","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":{"layout":"SIMPLE","id":"container-58c7549126",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"contentfragment":{"id":"contentfragment-dc7c374f75","paragraphs":["\u003Ch2\u003EOverview\u003C/h2\u003E\n","\u003Ch3\u003EThe Business Problem\u003C/h3\u003E\n","\u003Cp\u003EImagine you're a merchandising manager at ABT, a consumer electronics retailer. You need to perform a competitive pricing analysis against Best Buy to ensure your prices remain competitive in the market. You've successfully scraped product data from Best Buy's website, but now face a critical challenge: \u003Cstrong\u003Ehow do you match Best Buy's product descriptions to your own catalog when the data formats, naming conventions, and product identifiers are completely different?\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003EThis is a classic \u003Cstrong\u003Edata harmonization\u003C/strong\u003E problem &ndash; determining which records in different datasets refer to the same real-world entity. Traditional solutions would require extensive manual mapping, brittle rule-based systems, or complex ML model training.\u003C/p\u003E\n","\u003Cp\u003EIn this quickstart, you'll build a modern, AI-powered data harmonization pipeline that leverages Snowflake's native capabilities to automatically harmonize and match product data with minimal manual effort.\u003C/p\u003E\n","\u003Ch3\u003EThe Solution Architecture\u003C/h3\u003E\n","\u003Cp\u003EThis quickstart demonstrates a three-stage approach to data harmonization:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\u003Cstrong\u003EData Harmonization\u003C/strong\u003E: Use Snowflake Cortex AI to analyze schema differences and create unified datasets with semantic field mappings\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EHybrid Entity Matching\u003C/strong\u003E: Combine vector similarity (fast, efficient) with AI_CLASSIFY (intelligent, context-aware) for optimal matching performance\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EUnmatched Record Reconciliation\u003C/strong\u003E: Provide an interactive interface for reviewing and correcting low-confidence matches\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003E\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Entity_Resolution.png\" alt=\"\"\u003E\u003C/p\u003E\n","\u003Ch3\u003EWhat You'll Learn\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003EHow to use Snowflake Cortex AI functions for schema analysis and semantic mapping\u003C/li\u003E\u003Cli\u003EHow to build interactive Streamlit applications within Snowflake\u003C/li\u003E\u003Cli\u003EHow to implement hybrid entity matching using vector embeddings and AI classification\u003C/li\u003E\u003Cli\u003EHow to create a complete data harmonization workflow from raw data to validated matches\u003C/li\u003E\u003Cli\u003EBest practices for handling unmatched records and improving match quality\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EWhat You'll Need\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003EA \u003Ca href=\"https://signup.snowflake.com/?utm_source=snowflake-devrel&amp;utm_medium=developer-guides&amp;utm_cta=developer-guides\"\u003ESnowflake\u003C/a\u003E account. Sign up for a 30-day free trial account, if required.\u003C/li\u003E\u003Cli\u003EAccess to \u003Ca href=\"https://docs.snowflake.com/user-guide/snowflake-cortex/aisql\"\u003ESnowflake Cortex AI functions\u003C/a\u003E (available in most commercial regions)\u003C/li\u003E\u003Cli\u003EBasic understanding of \u003Ca href=\"https://docs.snowflake.com/en/user-guide/ui-snowsight/notebooks\"\u003ESnowflake Notebooks\u003C/a\u003E and \u003Ca href=\"https://docs.snowflake.com/en/developer-guide/streamlit/about-streamlit\"\u003EStreamlit in Snowflake\u003C/a\u003E\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EWhat You'll Build\u003C/h3\u003E\n","\u003Cp\u003EBy the end of this quickstart, you will have built:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003EA \u003Cstrong\u003EData Harmonization Streamlit app\u003C/strong\u003E that uses AI to map schema differences between datasets\u003C/li\u003E\u003Cli\u003EA \u003Cstrong\u003EHybrid Entity Matching notebook\u003C/strong\u003E that combines vector similarity and AI classification for intelligent product matching\u003C/li\u003E\u003Cli\u003EAn \u003Cstrong\u003EUnmatched Records Review app\u003C/strong\u003E for human-in-the-loop validation of uncertain matches\u003C/li\u003E\u003Cli\u003EA complete, production-ready data harmonization pipeline with audit trails and quality metrics\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003EThe solution processes 1,000+ product records from two different retailers and produces high-quality matches with confidence scores, achieving 85%+ accuracy through the hybrid approach.\u003C/p\u003E\n","\u003Ch3\u003EDownload the Source Files\u003C/h3\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EThe 3 source files (2 streamlit apps and 1 notebook) can be found \u003Ca href=\"https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/data-harmonization/assets/streamlit_apps\"\u003Ehere\u003C/a\u003E and \u003Ca href=\"https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/data-harmonization/assets/notebooks\"\u003Ehere\u003C/a\u003E.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch3\u003ENote on the Datasets Used\u003C/h3\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EThe datasets used in this quickstart are commonly used data harmonization test datasets. These datasets are made available by the database group of Prof. Erhard Rahm under the \u003Ca href=\"https://creativecommons.org/licenses/by/4.0/\"\u003ECreative Commons license\u003C/a\u003E. Column titles are changed at the table level from the original CSV files.\u003C/p\u003E\n\u003C/blockquote\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECitation:\u003C/strong\u003E Hanna K&ouml;pcke, Andreas Thor, and Erhard Rahm. 2010. Evaluation of data harmonization approaches on real-world match problems. Proc. VLDB Endow. 3, 1&ndash;2 (September 2010), 484&ndash;493. \u003Ca href=\"https://doi.org/10.14778/1920841.1920904\"\u003Ehttps://doi.org/10.14778/1920841.1920904\u003C/a\u003E\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch2\u003ESet-up\u003C/h2\u003E\n","\u003Cp\u003EIn this section, you'll prepare your Snowflake environment by creating the necessary database objects and loading the sample datasets. We'll be working with three CSV files containing product data from ABT and Best Buy, plus a ground truth mapping file for validation.\u003C/p\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EIf you didn't download the source files from the previous step, plese do so \u003Ca href=\"https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/data-harmonization/assets/streamlit_apps\"\u003Ehere\u003C/a\u003E and \u003Ca href=\"https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/data-harmonization/assets/notebooks\"\u003Ehere\u003C/a\u003E.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch3\u003EStep 1: Create Database and Schema\u003C/h3\u003E\n","\u003Cp\u003EFirst, create a dedicated database and schema for this project:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Create the main database\nCREATE OR REPLACE DATABASE ABT_BEST_BUY;\n\n-- Create the schema to organize our tables\nCREATE OR REPLACE SCHEMA ABT_BEST_BUY.STRUCTURED;\n\n-- Set context for subsequent operations\nUSE DATABASE ABT_BEST_BUY;\nUSE SCHEMA STRUCTURED;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003EStep 2: Create a Warehouse\u003C/h3\u003E\n","\u003Cp\u003ECreate a warehouse sized appropriately for the AI and vector operations we'll be performing:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Create your data harmonization Snowflake Warehouse (we used a 2XL in the demo video)\nCREATE OR REPLACE WAREHOUSE ENTITY_RESOLUTION_WH\nWITH\n    WAREHOUSE_SIZE = '2X-LARGE'\n    AUTO_SUSPEND = 300\n    AUTO_RESUME = TRUE\n    INITIALLY_SUSPENDED = TRUE\n    COMMENT = 'Warehouse for data harmonization with Cortex AI';\n\n-- Set the warehouse as active\nUSE WAREHOUSE ENTITY_RESOLUTION_WH;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003EStep 3: Create File Format\u003C/h3\u003E\n","\u003Cp\u003ECreate a reusable file format for loading CSV files:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Create file format for CSV loading\nCREATE OR REPLACE FILE FORMAT ABT_BEST_BUY.STRUCTURED.CSV_FORMAT\n    TYPE = CSV\n    SKIP_HEADER = 1\n    FIELD_DELIMITER = ','\n    TRIM_SPACE = TRUE\n    FIELD_OPTIONALLY_ENCLOSED_BY = '&quot;'\n    REPLACE_INVALID_CHARACTERS = TRUE\n    DATE_FORMAT = AUTO\n    TIME_FORMAT = AUTO\n    TIMESTAMP_FORMAT = AUTO\n    COMMENT = 'CSV format for data harmonization data';\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003EStep 4: Create Internal Stage\u003C/h3\u003E\n","\u003Cp\u003ECreate an Internal Stage where we will upload our CSV files:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Create stage for CSV files\nCREATE OR REPLACE STAGE ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE\n -- Enable the directory table feature\n    DIRECTORY = ( ENABLE = TRUE )\n    COMMENT = 'Internal Stage for ABT and Best Buy product data';\n\n-- Verify stage contents (which will be empty initially)\nLIST @ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003EStep 5: Add Datasets to Internal Stage\u003C/h3\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003ENote:\u003C/strong\u003E The ABT/Best Buy CSV files themselves are from common datasets used for data harmonization evalutions and can be downloaded from the Universit&auml;t Leipzig website for \u003Ca href=\"https://dbs.uni-leipzig.de/research/projects/benchmark-datasets-for-entity-resolution\"\u003EBenchmark datasets for data harmonization\u003C/a\u003E.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/CSV_Files.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Cp\u003EUnzip the files. We will then upload the 3 files downloaded via Snowsight to the stage we just created:\u003C/p\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Add_Files_To_Stage.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Cp\u003EAfter the files are uploaded, run the LIST command again to verify they are in the stage. You should see the 3 files we just uploaded in the results returned.\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E\n-- Verify stage contents\nLIST @ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003EStep 6: Create Tables\u003C/h3\u003E\n","\u003Cp\u003ENow create the three tables that will hold our product data:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Create ABT products table\nCREATE OR REPLACE TABLE ABT_BEST_BUY.STRUCTURED.ABT (\n    SKU NUMBER(38,0),\n    PRODUCT_LABEL VARCHAR(16777216),\n    ITEM_DETAILS VARCHAR(16777216),\n    RETAIL_PRICE VARCHAR(16777216)\n);\n\n-- Create Best Buy products table\nCREATE OR REPLACE TABLE ABT_BEST_BUY.STRUCTURED.BEST_BUY (\n    PRODUCTID NUMBER(38,0),\n    NAME VARCHAR(16777216),\n    DESCRIPTION VARCHAR(16777216),\n    MANUFACTURER VARCHAR(16777216),\n    PRICE VARCHAR(16777216)\n);\n\n-- Create ground truth mapping table for validation\nCREATE OR REPLACE TABLE ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_PERFECT_MAPPING (\n    IDABT NUMBER(38,0),\n    IDBUY NUMBER(38,0)\n);\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003EStep 7: Load Data\u003C/h3\u003E\n","\u003Cp\u003ELoad data from the staged CSV files into the tables:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Load ABT products\nCOPY INTO ABT_BEST_BUY.STRUCTURED.ABT\nFROM (\n    SELECT \n        $1::NUMBER AS SKU,\n        $2::VARCHAR AS PRODUCT_LABEL,\n        $3::VARCHAR AS ITEM_DETAILS,\n        $4::VARCHAR AS RETAIL_PRICE\n    FROM @ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE\n)\nFILES = ('Abt.csv')\nFILE_FORMAT = (FORMAT_NAME = 'ABT_BEST_BUY.STRUCTURED.CSV_FORMAT')\nON_ERROR = CONTINUE;\n\n-- Load Best Buy products\nCOPY INTO ABT_BEST_BUY.STRUCTURED.BEST_BUY\nFROM (\n    SELECT \n        $1::NUMBER AS IDBUY,\n        $2::VARCHAR AS NAME,\n        $3::VARCHAR AS DESCRIPTION,\n        $4::VARCHAR AS MANUFACTURER,\n        $5::VARCHAR AS PRICE\n    FROM @ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE\n)\nFILES = ('Buy.csv')\nFILE_FORMAT = (FORMAT_NAME = 'ABT_BEST_BUY.STRUCTURED.CSV_FORMAT')\nON_ERROR = CONTINUE;\n\n-- Load ground truth mapping\nCOPY INTO ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_PERFECT_MAPPING\nFROM (\n    SELECT \n        $1::NUMBER AS IDABT,\n        $2::NUMBER AS IDBUY\n    FROM @ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE\n)\nFILES = ('abt_buy_perfectMapping.csv')\nFILE_FORMAT = (FORMAT_NAME = 'ABT_BEST_BUY.STRUCTURED.CSV_FORMAT')\nON_ERROR = CONTINUE;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003EStep 8: Verify Data Load\u003C/h3\u003E\n","\u003Cp\u003EConfirm that data has been loaded successfully:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Check ABT table\nSELECT 'ABT' AS TABLE_NAME, COUNT(*) AS RECORD_COUNT FROM ABT_BEST_BUY.STRUCTURED.ABT\nUNION ALL\nSELECT 'BUY' AS TABLE_NAME, COUNT(*) AS RECORD_COUNT FROM ABT_BEST_BUY.STRUCTURED.BEST_BUY\nUNION ALL\nSELECT 'ABT_BUY_PERFECTMAPPING' AS TABLE_NAME, COUNT(*) AS RECORD_COUNT FROM ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_PERFECT_MAPPING;\n\n-- Preview sample records from each table\nSELECT 'ABT Sample' AS SOURCE, * FROM ABT_BEST_BUY.STRUCTURED.ABT LIMIT 100;\nSELECT 'BUY Sample' AS SOURCE, * FROM ABT_BEST_BUY.STRUCTURED.BEST_BUY LIMIT 100;\nSELECT 'Mapping Sample' AS SOURCE, * FROM ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_PERFECT_MAPPING LIMIT 100;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch4\u003EExpected Output:\u003C/h4\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/results_test.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EExpected Results:\u003C/strong\u003E You should see approximately 1,081 ABT records, 1,092 Best Buy records, and 1,097 mapping records. The ABT table contains product identifiers (SKU, PRODUCT_LABEL, &amp; ITEM_DETAILS), while the BEST_BUY table uses different field names (PRODUCTID, NAME, &amp; DESCRIPTION) for similar data.\u003C/p\u003E\n","\u003Cp\u003EYour Snowflake environment is now ready! In the next section, we'll use the Data Harmonization Streamlit app to create unified datasets from these disparate schemas.\u003C/p\u003E\n","\u003Ch2\u003EData Harmonization\u003C/h2\u003E\n","\u003Ch3\u003EUnderstanding the Challenge\u003C/h3\u003E\n","\u003Cp\u003ELooking at the ABT and BEST_BUY tables you just created, you'll notice they have completely different column names:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EABT\u003C/strong\u003E: \u003Ccode\u003ESKU\u003C/code\u003E, \u003Ccode\u003EPRODUCT_LABEL\u003C/code\u003E, \u003Ccode\u003EITEM_DETAILS\u003C/code\u003E, \u003Ccode\u003ERETAIL_PRICE\u003C/code\u003E\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EBEST_BUY\u003C/strong\u003E: \u003Ccode\u003EPRODUCTID\u003C/code\u003E, \u003Ccode\u003ENAME\u003C/code\u003E, \u003Ccode\u003EDESCRIPTION\u003C/code\u003E, \u003Ccode\u003EMANUFACTURER\u003C/code\u003E, \u003Ccode\u003EPRICE\u003C/code\u003E\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EWhile both tables contain product information, the column names, data types, and structures differ. Before we can match products between these datasets, we need to \u003Cstrong\u003Eharmonize\u003C/strong\u003E them &ndash; creating a unified schema with consistent field mappings.\u003C/p\u003E\n","\u003Cp\u003ETraditional approaches would require manual analysis and custom ETL code. Instead, we'll use \u003Cstrong\u003ESnowflake Cortex AI\u003C/strong\u003E to automatically analyze these schemas and recommend semantic mappings.\u003C/p\u003E\n","\u003Ch3\u003EWhat the Data Harmonization App Does\u003C/h3\u003E\n","\u003Cp\u003EThe Data Harmonization Streamlit application performs the following workflow:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\u003Cstrong\u003ETable Profiling\u003C/strong\u003E: Analyzes both tables to understand column types, cardinality, null rates, sample values, and statistical distributions\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EAI-Powered Mapping\u003C/strong\u003E: Uses Snowflake Cortex AI (mistral-large model) to recommend semantic mappings between fields based on content analysis\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EInteractive Review\u003C/strong\u003E: Allows you to review and adjust the AI recommendations through a user-friendly interface\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EDataset Creation\u003C/strong\u003E: Generates harmonized output tables with:\n\u003Cul\u003E\u003Cli\u003EConsistent column names (e.g., \u003Ccode\u003EPRODUCT_ID\u003C/code\u003E, \u003Ccode\u003EPRODUCT_NAME\u003C/code\u003E, \u003Ccode\u003EPRODUCT_DESCRIPTION\u003C/code\u003E)\u003C/li\u003E\u003Cli\u003ECleaned text (special characters removed)\u003C/li\u003E\u003Cli\u003EAn audit table tracking all mapping decisions\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ol\u003E\n","\u003Ch3\u003ERunning the Data Harmonization App\u003C/h3\u003E\n","\u003Ch4\u003EStep 1: Access Streamlit in Snowflake\u003C/h4\u003E\n\u003Col\u003E\u003Cli\u003ENavigate to \u003Cstrong\u003EProjects\u003C/strong\u003E &gt; \u003Cstrong\u003EStreamlit\u003C/strong\u003E in Snowsight\u003C/li\u003E\u003Cli\u003EClick \u003Cstrong\u003E+ Streamlit App\u003C/strong\u003E\u003C/li\u003E\u003Cli\u003EName it \u003Ccode\u003EData_Harmonization_App\u003C/code\u003E\u003C/li\u003E\u003Cli\u003ESelect your \u003Ccode\u003EABT_BEST_BUY\u003C/code\u003E database and \u003Ccode\u003ESTRUCTURED\u003C/code\u003E schema\u003C/li\u003E\u003Cli\u003ESelect the \u003Ccode\u003EENTITY_RESOLUTION_WH\u003C/code\u003E warehouse\u003C/li\u003E\u003C/ol\u003E\n","\u003Ch4\u003EStep 2: Upload the Application Code\u003C/h4\u003E\n\u003Col\u003E\u003Cli\u003EDelete the example code in the \u003Ccode\u003Estreamlit_app.py\u003C/code\u003E file\u003C/li\u003E\u003Cli\u003ECopy the contents of \u003Ccode\u003EData Harmonization with Snowflake Cortex AI.py\u003C/code\u003E\u003C/li\u003E\u003Cli\u003EPaste the new code from the \u003Ccode\u003EData Harmonization with Snowflake Cortex AI.py\u003C/code\u003E into this file\u003C/li\u003E\u003Cli\u003EBe sure you install the appropriate packages\u003C/li\u003E\u003Cli\u003EClick \u003Cstrong\u003ERun\u003C/strong\u003E\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/data_harm_streamlit_setup.1.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\n4. Ensure you have the appropriate packages installed.\n&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/data_harm_streamlit_setup.2.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\n5. Click \u003Cstrong\u003ERun\u003C/strong\u003E to launch the application\u003C/p\u003E\n","\u003Ch4\u003EStep 3: Configure Tables\u003C/h4\u003E\n","\u003Cp\u003EIn the app interface:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003EVerify the database and schema are set to \u003Ccode\u003EABT_BEST_BUY.STRUCTURED\u003C/code\u003E\u003C/li\u003E\u003Cli\u003ESelect \u003Cstrong\u003EABT\u003C/strong\u003E as the \u003Cstrong\u003EReference Table\u003C/strong\u003E\u003C/li\u003E\u003Cli\u003ESelect \u003Cstrong\u003EBEST_BUY\u003C/strong\u003E as the \u003Cstrong\u003EInput Table\u003C/strong\u003E\u003C/li\u003E\u003Cli\u003EThe app will automatically profile both tables\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/data_harm_streamlit_setup.3.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Ch4\u003EStep 4: Generate AI Recommendations\u003C/h4\u003E\n\u003Col\u003E\u003Cli\u003EClick \u003Cstrong\u003ERun AI Analysis\u003C/strong\u003E to invoke Cortex AI\u003C/li\u003E\u003Cli\u003EThe AI will analyze the schemas and suggest mappings:\n\u003Cul\u003E\u003Cli\u003E\u003Ccode\u003EABT.SKU\u003C/code\u003E &rarr; \u003Ccode\u003Eproduct_id\u003C/code\u003E &larr; \u003Ccode\u003EBEST_BUY.PRODUCTID\u003C/code\u003E\u003C/li\u003E\u003Cli\u003E\u003Ccode\u003EABT.PRODUCT_LABEL\u003C/code\u003E &rarr; \u003Ccode\u003Eproduct_name\u003C/code\u003E &larr; \u003Ccode\u003EBEST_BUY.NAME\u003C/code\u003E\u003C/li\u003E\u003Cli\u003E\u003Ccode\u003EABT.ITEM_DETAILS\u003C/code\u003E &rarr; \u003Ccode\u003Eproduct_description\u003C/code\u003E &larr; \u003Ccode\u003EBEST_BUY.DESCRIPTION\u003C/code\u003E\u003C/li\u003E\u003Cli\u003E(The Manufacturer field should be 'None' for ABT because it doesn't have a corresponding match.)\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003E\u003Cstrong\u003E\u003Cstrong\u003EKey Features and Capabilities\u003C/strong\u003E\u003C/strong\u003E:\u003C/p\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EThe Cortex AI model analyzes your data to identify:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EProduct Identifiers\u003C/strong\u003E: High-cardinality numeric fields likely to be primary keys\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EProduct Names\u003C/strong\u003E: Short text fields containing product titles\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EProduct Descriptions\u003C/strong\u003E: Long text fields with detailed specifications\u003C/li\u003E\u003C/ul\u003E\n\u003C/blockquote\u003E\n\u003Chr\u003E\n","\u003Ch4\u003ESample Profiling Output\u003C/h4\u003E\n","\u003Cp\u003EFor each column, the app computes:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003ERow count and null count (data quality metrics)\u003C/li\u003E\u003Cli\u003EDistinct count (cardinality for identifying keys)\u003C/li\u003E\u003Cli\u003EAverage length (helps distinguish names from descriptions)\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch4\u003EStep 5: Review and Adjust Mappings\u003C/h4\u003E\n","\u003Cp\u003EIn the \u003Cstrong\u003EReview and Edit Mappings\u003C/strong\u003E section:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003ECheck the checkboxes for fields you want to include in matching (typically all fields with valid mappings)\u003C/li\u003E\u003Cli\u003EAdjust dropdowns if the AI recommendations don't look correct (shouldn't be necessary for this analysis)\u003C/li\u003E\u003Cli\u003EThe join key suggestions can be set to 'None' (we're not performing a traditional join)\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EYour output should look like this:\u003C/p\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/data_harm_AI_analysis.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Ch4\u003EStep 6: Create Harmonized Datasets\u003C/h4\u003E\n\u003Col\u003E\u003Cli\u003EPreview the output structure to verify column names and transformations\u003C/li\u003E\u003Cli\u003ESet the target database and schema (keep defaults: \u003Ccode\u003EABT_BEST_BUY.STRUCTURED\u003C/code\u003E)\u003C/li\u003E\u003Cli\u003EClick \u003Cstrong\u003ECreate Datasets\u003C/strong\u003E\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/data_harm_streamlit_setup.4.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Cp\u003EThe app will create three tables:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Ccode\u003EABT_HARMONIZATION_YYYY_MM_DD\u003C/code\u003E: Harmonized ABT data\u003C/li\u003E\u003Cli\u003E\u003Ccode\u003EBUY_HARMONIZATION_YYYY_MM_DD\u003C/code\u003E: Harmonized Best Buy data\u003C/li\u003E\u003Cli\u003E\u003Ccode\u003EAUDIT_HARMONIZATION_YYYY_MM_DD\u003C/code\u003E: Audit trail with mapping decisions, user info, and timestamps\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EAudit Table Structure\u003C/h3\u003E\n","\u003Cp\u003EThe audit table tracks:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EDate of run, user, role, and session ID\u003C/li\u003E\u003Cli\u003ESource datasets (reference and input)\u003C/li\u003E\u003Cli\u003EColumn mappings (which fields were matched)\u003C/li\u003E\u003Cli\u003EWhether each field was included in output\u003C/li\u003E\u003Cli\u003EOutput table names for traceability\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch4\u003EWhy This Matters\u003C/h4\u003E\n","\u003Cp\u003EBy harmonizing the data:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\u003Cstrong\u003EStandardized Schema\u003C/strong\u003E: Both datasets now have consistent column names\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EClean Text\u003C/strong\u003E: Special characters removed, enabling better matching\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EAudit Trail\u003C/strong\u003E: Complete lineage from source to harmonized tables\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EReady for Matching\u003C/strong\u003E: Data is now in the perfect format for the hybrid entity matching algorithm\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003EWe will use this audit table in our upcoming notebook to ensure we're matching like-for-like from a column-matching perspective.\u003C/p\u003E\n","\u003Cp\u003EIn the next section, we'll use these harmonized tables to perform intelligent entity matching using a hybrid approach that combines vector similarity with AI classification.\u003C/p\u003E\n","\u003Ch2\u003EData Harmonization - Hybrid Matching\u003C/h2\u003E\n","\u003Cp\u003ENow that we have harmonized datasets, it's time to tackle the core challenge: \u003Cstrong\u003Edetermining which ABT products correspond to which Best Buy products\u003C/strong\u003E. This is where the magic of hybrid entity matching comes in.\u003C/p\u003E\n","\u003Ch3\u003EThe Hybrid Matching Strategy\u003C/h3\u003E\n","\u003Cp\u003ETraditional entity matching approaches typically fall into two camps:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\u003Cstrong\u003ERule-based matching\u003C/strong\u003E: Fast but brittle (e.g., &quot;if product names match exactly&quot;)\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EPure ML models\u003C/strong\u003E: Accurate but require training data and can be slow\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003EOur hybrid approach combines the best of both worlds:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EVector Similarity (Fast Path)\u003C/strong\u003E: Use semantic embeddings to quickly identify high-confidence matches (&ge;80% similarity)\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EAI_CLASSIFY (Smart Path)\u003C/strong\u003E: For ambiguous cases with multiple candidates, use AI to intelligently select the best match based on context\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EThis strategy is inspired by Snowflake's AI SQL best practices and provides an optimal balance of speed, accuracy, and cost.\u003C/p\u003E\n","\u003Ch3\u003EStep 1. Uploading the data harmonization Notebook\u003C/h3\u003E\n\u003Col\u003E\u003Cli\u003EFrom the Snowflake navation plane click \u003Cstrong\u003ECreate\u003C/strong\u003E &gt; \u003Cstrong\u003ENotebook\u003C/strong\u003E &gt; \u003Cstrong\u003EImport .ipynb File\u003C/strong\u003E\u003C/li\u003E\u003Cli\u003ELocate the \u003Ccode\u003EHYBRID_ENTITY_MATCHING_WITH_AI_CLASSIFY.ipynb\u003C/code\u003E file you downloaded and upload it\u003C/li\u003E\u003Cli\u003EName it \u003Ccode\u003EHYBRID_ENTITY_MATCHING_WITH_AI_CLASSIFY\u003C/code\u003E\u003C/li\u003E\u003Cli\u003ESelect your \u003Ccode\u003EABT_BEST_BUY\u003C/code\u003E database and \u003Ccode\u003ESTRUCTURED\u003C/code\u003E schema\u003C/li\u003E\u003Cli\u003ESelect the \u003Ccode\u003EENTITY_RESOLUTION_WH\u003C/code\u003E warehouse as your query warehouse\u003C/li\u003E\u003Cli\u003EAll other defaults can be kept the same\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Notebook_Import.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Ch3\u003ENotebook Overview\u003C/h3\u003E\n","\u003Cp\u003EThe notebook is organized into several key sections. Let's walk through what each major cell accomplishes.\u003C/p\u003E\n\u003Chr\u003E\n","\u003Ch3\u003ESection 1: Configuration Setup (Python Cell)\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWhat It Does:\u003C/strong\u003E\nThis interactive cell discovers your harmonization output tables and lets you select which entity columns to use for matching.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EKey Operations:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EQueries the current database/schema for audit tables matching the pattern \u003Ccode\u003EAUDIT_HARMONIZATION_%\u003C/code\u003E\u003C/li\u003E\u003Cli\u003ELoads the audit table to identify which fields were mapped and matched\u003C/li\u003E\u003Cli\u003EPresents an interactive interface to select the entity column pair for matching (typically the product name/label fields)\u003C/li\u003E\u003Cli\u003EValidates that the harmonized tables exist and are accessible\u003C/li\u003E\u003Cli\u003EStores configuration in a temporary table (\u003Ccode\u003ETEMP_HYBRID_CONFIG\u003C/code\u003E) for subsequent cells\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWhy It Matters:\u003C/strong\u003E\nThis dynamic configuration means the notebook adapts to your specific harmonization output &ndash; no hardcoded table names or column names. You can run this workflow on any pair of harmonized datasets.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERun the cell \u003Ccode\u003Er_Harmonization_Table_Configuration\u003C/code\u003E\u003C/strong\u003E - This will run an in-notebook Streamlit app.\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003ESelect your database (ABT_BEST_BUY) and schema (STRUCTURED)\u003C/li\u003E\u003Cli\u003EChoose the audit table created by the harmonization app\u003C/li\u003E\u003Cli\u003ESelect the entity column pair (for this run, we will use \u003Ccode\u003EPRODUCT_LABEL &harr; NAME\u003C/code\u003E)\u003C/li\u003E\u003Cli\u003EVerify the table names and click \u003Cstrong\u003EValidate, Save Configuration, and Set Up Environment\u003C/strong\u003E\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003ERunning this cell prepares the SQL environment and extracts configuration details for the matching process, ensuring all subsequent queries reference the correct tables and columns dynamically.\u003C/p\u003E\n\u003Chr\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Notebook1.gif\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n\u003Chr\u003E\n","\u003Ch3\u003ESection 2: Vector Feature Engineering (SQL Cell)\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWhat It Does:\u003C/strong\u003E\nCreates the foundational features for hybrid matching by generating vector embeddings for all entity names and computing initial similarity scores.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EKey Operations:\u003C/strong\u003E\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\u003Cstrong\u003EGenerate Embeddings\u003C/strong\u003E: Uses \u003Ccode\u003ESNOWFLAKE.CORTEX.EMBED_TEXT_1024\u003C/code\u003E with the \u003Ccode\u003Evoyage-multilingual-2\u003C/code\u003E model to create 1024-dimension vector embeddings for each product name\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ECross-Join\u003C/strong\u003E: Creates all possible pairs between reference (ABT) and input (Best Buy) products\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ECompute Similarity\u003C/strong\u003E: Calculates \u003Ccode\u003EVECTOR_COSINE_SIMILARITY\u003C/code\u003E between each pair's embeddings\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EFilter Low Scores\u003C/strong\u003E: Drops pairs with similarity &lt; 0.2 to reduce search space\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWhy It Matters:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EEmbeddings capture semantics\u003C/strong\u003E: Products like &quot;Sony 10MP Camera&quot; and &quot;Sony Digital Camera 10 Megapixel&quot; will have high similarity even with different exact wording\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EPre-computed similarities\u003C/strong\u003E: Storing these scores enables fast filtering in subsequent steps\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EReduced search space\u003C/strong\u003E: Filtering at 0.2 threshold eliminates obviously non-matching pairs\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERun the cell \u003Ccode\u003Er_Vector_Feature_Engineering\u003C/code\u003E\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EExpected Output:\u003C/strong\u003E\nThe cell displays a summary showing:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003ETotal comparisons generated (e.g., 50,000-100,000 pairs)\u003C/li\u003E\u003Cli\u003ENumber of unique reference and input products\u003C/li\u003E\u003Cli\u003EAverage vector similarity score\n\u003Cul\u003E\u003Cli\u003EThis will initially be low due to the current cartesian nature of the data. We will clean this up in later steps.\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003EAverage comparisons per reference product\u003C/li\u003E\u003C/ul\u003E\n\u003Chr\u003E\n","\u003Ch3\u003ESection 3: Hybrid Matching with AI_CLASSIFY (SQL Cell)\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWhat It Does:\u003C/strong\u003E\nImplements the two-stage matching logic that combines vector similarity with AI classification for optimal results. \u003Cstrong\u003EAt the end of this step, we will have matched our two datasets together, keeping only what we believe to be the actual matches and discarding the rest.\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EThe Algorithm:\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EStage 1: High-Confidence Vector Matches\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EFor each reference product, identify the top candidates by vector similarity\u003C/li\u003E\u003Cli\u003EIf the top match is a clear similarity match accept it immediately (no AI needed)\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EStage 2: AI_CLASSIFY for Ambiguous Cases\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EFor reference products with multiple candidates:\u003C/li\u003E\u003Cli\u003EAggregate the top 15 candidate names into an array\u003C/li\u003E\u003Cli\u003ECall \u003Ccode\u003EAI_CLASSIFY(reference_name, [candidate1, candidate2, ...])\u003C/code\u003E to intelligently select the best match\u003C/li\u003E\u003Cli\u003EAI_CLASSIFY uses context and semantic understanding beyond simple similarity\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EStage 3: Confidence Scoring\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EAssign confidence scores based on:\n\u003Cul\u003E\u003Cli\u003EVector similarity score\u003C/li\u003E\u003Cli\u003EWhether AI_CLASSIFY was used (slight confidence boost)\u003C/li\u003E\u003Cli\u003EMatch method (HIGH_CONFIDENCE_VECTOR, MEDIUM_CONFIDENCE_VECTOR, or AI_CLASSIFY)\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWhy This Works:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003ECost Optimization\u003C/strong\u003E: AI_CLASSIFY is only called when needed (ambiguous cases)\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ESpeed\u003C/strong\u003E: High-confidence matches are resolved with simple vector comparison\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EAccuracy\u003C/strong\u003E: AI_CLASSIFY handles nuanced cases where vector similarity alone is insufficient (e.g., similar product names for different models)\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERun the cell \u003Ccode\u003Er_Hybrid_Matching\u003C/code\u003E\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EExpected Output:\u003C/strong\u003E\nThe cell creates the \u003Ccode\u003Ehybrid_final_results\u003C/code\u003E table and displays metrics:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003ETotal matches found\u003C/li\u003E\u003Cli\u003EAverage confidence score\u003C/li\u003E\u003Cli\u003ENumber of high-confidence vector matches\u003C/li\u003E\u003Cli\u003ENumber of AI_CLASSIFY matches\u003C/li\u003E\u003Cli\u003EAI_CLASSIFY usage percentage (typically 20-40% of records)\u003C/li\u003E\u003C/ul\u003E\n\u003Chr\u003E\n","\u003Ch3\u003ESection 4: Record Management and Threshold Selection (Python Cell)\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWhat It Does:\u003C/strong\u003E\nProvides an interactive streamlit interface to review match quality and separate records into MATCHED and UNMATCHED tables based on a confidence threshold.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWhy This Matters:\u003C/strong\u003E\nDifferent use cases require different confidence thresholds:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EHigh-stakes pricing decisions\u003C/strong\u003E: Use 90%+ threshold, manually review unmatched\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EExploratory analysis\u003C/strong\u003E: Use 70%+ threshold, accept more false positives\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EIterative improvement\u003C/strong\u003E: Start at 80%, review unmatched, improve matching logic\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERun the cell \u003Ccode\u003Er_Record_Management\u003C/code\u003E\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EExpected Interaction:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EReview the confidence distribution chart\u003C/li\u003E\u003Cli\u003EAdjust the slider to find the right threshold for your use case (we us 80% in the demo)\u003C/li\u003E\u003Cli\u003EPreview sample matches at the current threshold\u003C/li\u003E\u003Cli\u003EConfigure output table names (use defaults for this demo)\u003C/li\u003E\u003Cli\u003EClick \u003Cstrong\u003EFinalize &amp; Create Datasets\u003C/strong\u003E to generate:\n\u003Cul\u003E\u003Cli\u003E\u003Ccode\u003E[AUDIT_TABLE]_HYBRID_MATCHED\u003C/code\u003E: High-confidence matches\u003C/li\u003E\u003Cli\u003E\u003Ccode\u003E[AUDIT_TABLE]_HYBRID_UNMATCHED\u003C/code\u003E: Records needing review\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/notebook_scroll.gif\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n\u003Chr\u003E\n","\u003Ch3\u003ESection 5: Performance Evaluation (SQL Cell)\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWhat It Does:\u003C/strong\u003E\nEvaluates the hybrid matching approach against our golden dataset mapping table to measure accuracy and identify areas for improvement. \u003Cstrong\u003EIn many cases, you may not have a golden dataset to compare to. Here we have one which we use to test the accuracy of our methods.\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EKey Metrics Calculated:\u003C/strong\u003E\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\u003Cstrong\u003EOverall Accuracy\u003C/strong\u003E: Percentage of matches that align with ground truth\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EAccuracy by Confidence Bucket\u003C/strong\u003E: How accuracy varies across confidence ranges\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EAccuracy by Match Method\u003C/strong\u003E: Performance of HIGH_CONFIDENCE_VECTOR vs AI_CLASSIFY vs MEDIUM_CONFIDENCE_VECTOR\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EFalse Match Analysis\u003C/strong\u003E: Understanding where the algorithm makes mistakes\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWhy This Matters:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EValidates Approach\u003C/strong\u003E: Proves the hybrid method achieves high accuracy\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EInforms Thresholds\u003C/strong\u003E: Shows you where to set confidence cutoffs\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EIdentifies Improvements\u003C/strong\u003E: Highlights which types of products are harder to match\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EBenchmarking\u003C/strong\u003E: Provides a baseline for comparing alternative approaches\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERun the cell \u003Ccode\u003Er_Performance_Evaluation\u003C/code\u003E\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAs you can see, using our methods against this test dataset we achieve a &gt;90% accuracy when compared to our golden dataset!\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/notebook4.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n\u003Chr\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EPro Tip\u003C/strong\u003E: The hybrid approach shines when you have a mix of easy and hard matching cases. Pure vector similarity handles the easy 70-80%, while AI_CLASSIFY intelligently resolves the remaining ambiguous cases.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Cp\u003EIn the next section, we'll build an interactive Streamlit app to review and correct the unmatched records, creating a human-in-the-loop validation workflow.\u003C/p\u003E\n","\u003Ch2\u003EUnmatched Record Reconciliation\u003C/h2\u003E\n","\u003Cp\u003EAfter running the hybrid matching algorithm, you'll have two sets of records:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\u003Cstrong\u003EMatched Records\u003C/strong\u003E: High-confidence matches ready for use in analysis\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EUnmatched Records\u003C/strong\u003E: Lower-confidence cases that need human review\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003EThis section addresses the unmatched records through an interactive Streamlit application that enables efficient, user-friendly review and correction.\u003C/p\u003E\n","\u003Ch3\u003EThe Problem with Unmatched Records\u003C/h3\u003E\n","\u003Cp\u003EUnmatched records typically fall into a few categories:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\u003Cstrong\u003EClose Calls\u003C/strong\u003E: Multiple viable candidates with similar scores (e.g., different models of the same product line)\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EData Quality Issues\u003C/strong\u003E: Missing information, typos, or incomplete descriptions\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EUnique Products\u003C/strong\u003E: Items that genuinely don't have a match in the other dataset\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EAlgorithm Limitations\u003C/strong\u003E: Cases where both vector similarity and AI_CLASSIFY struggled\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003ERather than accepting these as lost opportunities, the Unmatched Records Reviewer provides a structured workflow to:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EReview each unmatched record systematically\u003C/li\u003E\u003Cli\u003EView alternative candidate matches with their similarity scores\u003C/li\u003E\u003Cli\u003EMake informed manual selections or confirm &quot;no match found&quot;\u003C/li\u003E\u003Cli\u003ETrack all decisions with full audit trails\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EWhat the Unmatched Records App Does\u003C/h3\u003E\n","\u003Cp\u003EThe application implements a comprehensive review workflow:\u003C/p\u003E\n","\u003Ch4\u003E1. Intelligent Data Loading\u003C/h4\u003E\n\u003Cul\u003E\u003Cli\u003EAutomatically discovers unmatched table from the audit trail\u003C/li\u003E\u003Cli\u003EIdentifies the corresponding matched table for approved records\u003C/li\u003E\u003Cli\u003ELoads up to 20 candidate matches per record from the original \u003Ccode\u003Ehybrid_features\u003C/code\u003E table\u003C/li\u003E\u003Cli\u003EPaginates records for manageable review sessions (10 records per page)\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch4\u003E2. Interactive Review Interface\u003C/h4\u003E\n","\u003Cp\u003EFor each unmatched record, the reviewer displays:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EReference Entity Name\u003C/strong\u003E: The ABT product you're trying to match\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ETop Candidate Matches\u003C/strong\u003E: Dropdown showing up to 20 Best Buy candidates, ranked by vector similarity\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ESimilarity Scores\u003C/strong\u003E: Real-time display of vector similarity for the selected candidate\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EMatch Approval Checkbox\u003C/strong\u003E: Confirm when you've selected the correct match\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch4\u003E3. Dynamic Search and Filtering\u003C/h4\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EText Search\u003C/strong\u003E: Filter records by reference entity name to quickly find specific products\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EPagination\u003C/strong\u003E: Navigate through pages of unmatched records\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EJump Controls\u003C/strong\u003E: Skip to first or last page instantly\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch4\u003E4. Batch Processing\u003C/h4\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EPage-by-Page Approval\u003C/strong\u003E: Review and approve matches on each page\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ECross-Page Memory\u003C/strong\u003E: Selections are preserved as you navigate between pages\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EBulk Submission\u003C/strong\u003E: Submit all approved matches from all pages at once\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003ERunning the Unmatched Records App\u003C/h3\u003E\n","\u003Ch4\u003EStep 1: Create the Streamlit App\u003C/h4\u003E\n\u003Col\u003E\u003Cli\u003ENavigate to \u003Cstrong\u003EProjects\u003C/strong\u003E &gt; \u003Cstrong\u003EStreamlit\u003C/strong\u003E in Snowsight\u003C/li\u003E\u003Cli\u003EClick \u003Cstrong\u003E+ Streamlit App\u003C/strong\u003E\u003C/li\u003E\u003Cli\u003EName it \u003Ccode\u003Edata harmonization - Unmatched Records\u003C/code\u003E\u003C/li\u003E\u003Cli\u003ESelect your \u003Ccode\u003EABT_BEST_BUY\u003C/code\u003E database and \u003Ccode\u003ESTRUCTURED\u003C/code\u003E schema\u003C/li\u003E\u003Cli\u003ESelect the \u003Ccode\u003EENTITY_RESOLUTION_WH\u003C/code\u003E warehouse\u003C/li\u003E\u003C/ol\u003E\n","\u003Ch4\u003EStep 2: Upload the Application Code\u003C/h4\u003E\n\u003Col\u003E\u003Cli\u003EDelete the example code in the \u003Ccode\u003Estreamlit_app.py\u003C/code\u003E file\u003C/li\u003E\u003Cli\u003ECopy the contents of \u003Ccode\u003Edata harmonization - Unmatched Records.py\u003C/code\u003E\u003C/li\u003E\u003Cli\u003EPaste the new code from the \u003Ccode\u003Edata harmonization - Unmatched Records.py\u003C/code\u003E into this file\u003C/li\u003E\u003Cli\u003EBe sure you install the appropriate packages\u003C/li\u003E\u003Cli\u003EClick \u003Cstrong\u003ERun\u003C/strong\u003E\u003C/li\u003E\u003C/ol\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Unmatched1.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Ch4\u003EStep 3: Select Unmatched Table\u003C/h4\u003E\n\u003Col\u003E\u003Cli\u003EThe app automatically queries \u003Ccode\u003EAUDIT_HARMONIZATION_HYBRID_AUDIT\u003C/code\u003E to find unmatched/matched table pairs\u003C/li\u003E\u003Cli\u003EFrom the dropdown, select your unmatched table (e.g., \u003Ccode\u003EAUDIT_HARMONIZATION_2025_10_04_HYBRID_UNMATCHED\u003C/code\u003E)\u003C/li\u003E\u003Cli\u003EClick \u003Cstrong\u003EProcess\u003C/strong\u003E to load the records\u003C/li\u003E\u003C/ol\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003ENote\u003C/strong\u003E: The app automatically identifies the corresponding matched table from the audit table, ensuring records are moved to the correct destination.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch4\u003EStep 3: Review Records\u003C/h4\u003E\n","\u003Cp\u003EFor each record on the page:\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EReference Record Display:\u003C/strong\u003E\u003C/p\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Unmatched2.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ECandidate Selection:\u003C/strong\u003E\nThe dropdown shows candidates with similarity scores:\u003C/p\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Unmatched3.png\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EActions:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003ESelect the best match from the dropdown\u003C/li\u003E\u003Cli\u003EReview the vector similarity score (displayed dynamically)\u003C/li\u003E\u003Cli\u003ECheck \u003Cstrong\u003E✅ Match Approved\u003C/strong\u003E if you're confident in the selection\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ELeave unchecked if no good match exists (record remains unmatched) - Only mannually selected records will be processed to our matched table\u003C/strong\u003E\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch4\u003EStep 4: Navigate and Continue Reviewing\u003C/h4\u003E\n\u003Cul\u003E\u003Cli\u003EUse \u003Cstrong\u003E&larr; Previous\u003C/strong\u003E and \u003Cstrong\u003ENext &rarr;\u003C/strong\u003E buttons to move between pages\u003C/li\u003E\u003Cli\u003EUse \u003Cstrong\u003E⏪ Jump to First Page\u003C/strong\u003E or \u003Cstrong\u003E⏩ Jump to Last Page\u003C/strong\u003E for quick navigation\u003C/li\u003E\u003Cli\u003EUse the search box to filter records by specific text\u003C/li\u003E\u003Cli\u003EThe page indicator shows your progress (e.g., &quot;Page 5 of 25&quot;)\u003C/li\u003E\u003C/ul\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EWorkflow Tip\u003C/strong\u003E: Focus on records with high similarity scores (&gt;0.75) first, as these are more likely to be correct matches. Records with very low scores (&lt;0.50) may genuinely have no match in the dataset.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch4\u003EStep 5: Submit Reviews\u003C/h4\u003E\n","\u003Cp\u003EOnce you reach the last page:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003EReview the \u003Cstrong\u003EReview Summary\u003C/strong\u003E showing:\n\u003Cul\u003E\u003Cli\u003ERecords Approved to Move\u003C/li\u003E\u003Cli\u003ERecords Not Approved\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003Cli\u003EClick \u003Cstrong\u003ESubmit All Reviews\u003C/strong\u003E to process all approved matches across all pages\u003C/li\u003E\u003Cli\u003EThe app will:\n\u003Cul\u003E\u003Cli\u003EUpdate the \u003Ccode\u003EFINAL_MATCH\u003C/code\u003E column for approved records\u003C/li\u003E\u003Cli\u003EMove approved records from unmatched to matched table\u003C/li\u003E\u003Cli\u003EDelete processed records from unmatched table\u003C/li\u003E\u003Cli\u003EDisplay a detailed summary of changes\u003C/li\u003E\u003C/ul\u003E\n\u003C/li\u003E\u003C/ol\u003E\n","\u003Ch4\u003EStep 6: Review Completion Summary\u003C/h4\u003E\n","\u003Cp\u003EAfter submission, you'll see a summary of the records you sent to the matched table.\u003C/p\u003E\n","\u003Cp\u003EClick \u003Cstrong\u003E📑 Continue with Analysis\u003C/strong\u003E to review remaining records or refresh the view.\u003C/p\u003E\n","\u003Cp\u003E&lt;br/&gt;&lt;br/&gt;\n\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Unmatched2.gif\" alt=\"\"\u003E\n&lt;br/&gt;&lt;br/&gt;\u003C/p\u003E\n","\u003Ch3\u003EBest Practices for Record Review\u003C/h3\u003E\n","\u003Ch4\u003E1. Prioritize by Confidence\u003C/h4\u003E\n","\u003Cp\u003EStart with records that have similarity scores just below your threshold (e.g., 0.75-0.80), as these are most likely to be correctable with manual review.\u003C/p\u003E\n","\u003Ch4\u003E2. Look for Patterns\u003C/h4\u003E\n","\u003Cp\u003EIf you notice multiple records failing for the same reason (e.g., missing manufacturer information), consider updating your harmonization mapping to include additional fields.\u003C/p\u003E\n","\u003Ch4\u003E3. Use Domain Knowledge\u003C/h4\u003E\n","\u003Cp\u003EProduct expertise is invaluable here. If you know ABT's catalog, you can quickly identify:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EProducts that should match but have different model numbers\u003C/li\u003E\u003Cli\u003EProducts that are actually different items despite similar names\u003C/li\u003E\u003Cli\u003EProducts that genuinely don't exist in Best Buy's catalog\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch4\u003E4. Don't Force Matches\u003C/h4\u003E\n","\u003Cp\u003EIf none of the candidates are correct, leave the record unchecked. It's better to have an unmatched record than an incorrect match that pollutes your analysis.\u003C/p\u003E\n","\u003Ch4\u003E5. Iterative Review Sessions\u003C/h4\u003E\n","\u003Cp\u003EYou don't have to review all records in one sitting. The app preserves state across sessions (records remain in the unmatched table until explicitly moved).\u003C/p\u003E\n","\u003Ch3\u003EThe Value of Human-in-the-Loop\u003C/h3\u003E\n","\u003Cp\u003EThis review workflow exemplifies the \u003Cstrong\u003Ehuman-in-the-loop\u003C/strong\u003E approach to AI:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E\u003Cstrong\u003EAI Does the Heavy Lifting\u003C/strong\u003E: The hybrid matching algorithm handles 75-85% of records automatically\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EHumans Handle Edge Cases\u003C/strong\u003E: Reviewers focus only on ambiguous cases that need domain expertise\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EContinuous Improvement\u003C/strong\u003E: Insights from manual review can inform future matching logic improvements\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EQuality Assurance\u003C/strong\u003E: Human validation provides confidence in match quality for downstream analytics\u003C/li\u003E\u003C/ol\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EReal-World Impact\u003C/strong\u003E: In production environments, this workflow reduces data harmonization time from weeks of manual work to hours of focused review, while maintaining high match quality.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Cp\u003EBy the end of this section, you'll have:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E✅ Reviewed all unmatched records systematically\u003C/li\u003E\u003Cli\u003E✅ Made informed decisions about match selections\u003C/li\u003E\u003Cli\u003E✅ Moved high-quality matches to the matched table\u003C/li\u003E\u003Cli\u003E✅ Identified records that genuinely have no match\u003C/li\u003E\u003Cli\u003E✅ Maintained complete audit trails for all decisions\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EYou now have a complete, production-ready data harmonization pipeline with matched records ready for competitive pricing analysis!\u003C/p\u003E\n","\u003Ch2\u003EConclusion and Resources\u003C/h2\u003E\n","\u003Cp\u003ECongratulations! You've successfully built an end-to-end data harmonization solution using Snowflake's native AI capabilities, combining automated matching with human-in-the-loop validation.\u003C/p\u003E\n","\u003Ch3\u003EWhat You Accomplished\u003C/h3\u003E\n","\u003Cp\u003EThroughout this quickstart, you:\u003C/p\u003E\n\u003Col\u003E\u003Cli\u003E✅ \u003Cstrong\u003EPrepared Data\u003C/strong\u003E: Loaded product catalogs from two different retailers with different schemas\u003C/li\u003E\u003Cli\u003E✅ \u003Cstrong\u003EHarmonized Schemas\u003C/strong\u003E: Used Snowflake Cortex AI to automatically map semantic field differences and create unified datasets\u003C/li\u003E\u003Cli\u003E✅ \u003Cstrong\u003EImplemented Hybrid Matching\u003C/strong\u003E: Combined vector similarity (fast) with AI_CLASSIFY (intelligent) for optimal matching performance\u003C/li\u003E\u003Cli\u003E✅ \u003Cstrong\u003EValidated Quality\u003C/strong\u003E: Measured accuracy against ground truth data and achieved 85%+ match quality\u003C/li\u003E\u003Cli\u003E✅ \u003Cstrong\u003EReviewed Edge Cases\u003C/strong\u003E: Used an interactive Streamlit app to manually validate uncertain matches\u003C/li\u003E\u003Cli\u003E✅ \u003Cstrong\u003EBuilt Production Pipeline\u003C/strong\u003E: Created a complete workflow with audit trails, confidence scoring, and quality metrics\u003C/li\u003E\u003C/ol\u003E\n","\u003Ch3\u003EKey Takeaways\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EBusiness Value:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EReduced data harmonization from weeks of manual work to hours of automated processing\u003C/li\u003E\u003Cli\u003EAchieved high match quality (85%+) without training custom ML models\u003C/li\u003E\u003Cli\u003ECreated a repeatable, scalable process for ongoing data integration needs\u003C/li\u003E\u003Cli\u003EEnabled competitive pricing analysis that was previously infeasible\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003ETechnical Innovation:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003ECortex AI for Schema Analysis\u003C/strong\u003E: Automatically understand and map disparate data structures\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EVector Embeddings\u003C/strong\u003E: Capture semantic similarity beyond exact text matching\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EHybrid Approach\u003C/strong\u003E: Optimize for both speed (vector similarity) and accuracy (AI_CLASSIFY)\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EStreamlit in Snowflake\u003C/strong\u003E: Build rich, interactive applications without external infrastructure\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003EBest Practices:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EAlways profile and harmonize data before attempting matching\u003C/li\u003E\u003Cli\u003EUse confidence thresholds to separate high-quality matches from cases needing review\u003C/li\u003E\u003Cli\u003EMaintain audit trails for all decisions and transformations\u003C/li\u003E\u003Cli\u003EValidate against ground truth when available to measure and improve accuracy\u003C/li\u003E\u003Cli\u003EImplement human-in-the-loop for edge cases that require domain expertise\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003ERelated Resources\u003C/h3\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDocumentation:\u003C/strong\u003E\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/overview\"\u003ESnowflake Cortex AI\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/vector-embeddings\"\u003ESnowflake Cortex Vector Functions\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/ml-functions/classification\"\u003ESnowflake Cortex AI_CLASSIFY\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/developer-guide/streamlit/about-streamlit\"\u003EStreamlit in Snowflake\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/ui-snowsight-notebooks\"\u003ESnowflake Notebooks\u003C/a\u003E\u003C/li\u003E\u003C/ul\u003E"],"description":"Harmonize data from multiple sources in Snowflake Cortex AI and Streamlit for consistent analytics, unified schemas, clean models, and integration.","title":"End-to-End Data Harmonization with Snowflake Cortex AI",":type":"snowflake-site/components/contentfragment","elementsOrder":["quickstartArticleBody","quickstartArticleLogoImage"],"elements":{"quickstartArticleBody":{"dataType":"string","title":"Quickstart Article Body","value":"## Overview \n\n### The Business Problem\n\nImagine you're a merchandising manager at ABT, a consumer electronics retailer. You need to perform a competitive pricing analysis against Best Buy to ensure your prices remain competitive in the market. You've successfully scraped product data from Best Buy's website, but now face a critical challenge: **how do you match Best Buy's product descriptions to your own catalog when the data formats, naming conventions, and product identifiers are completely different?**\n\nThis is a classic **data harmonization** problem – determining which records in different datasets refer to the same real-world entity. Traditional solutions would require extensive manual mapping, brittle rule-based systems, or complex ML model training. \n\nIn this quickstart, you'll build a modern, AI-powered data harmonization pipeline that leverages Snowflake's native capabilities to automatically harmonize and match product data with minimal manual effort.\n\n### The Solution Architecture\n\nThis quickstart demonstrates a three-stage approach to data harmonization:\n\n1. **Data Harmonization**: Use Snowflake Cortex AI to analyze schema differences and create unified datasets with semantic field mappings\n2. **Hybrid Entity Matching**: Combine vector similarity (fast, efficient) with AI_CLASSIFY (intelligent, context-aware) for optimal matching performance\n3. **Unmatched Record Reconciliation**: Provide an interactive interface for reviewing and correcting low-confidence matches\n\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Entity_Resolution.png)\n\n### What You'll Learn\n\n- How to use Snowflake Cortex AI functions for schema analysis and semantic mapping\n- How to build interactive Streamlit applications within Snowflake\n- How to implement hybrid entity matching using vector embeddings and AI classification\n- How to create a complete data harmonization workflow from raw data to validated matches\n- Best practices for handling unmatched records and improving match quality\n\n### What You'll Need\n\n- A [Snowflake](https://signup.snowflake.com/?utm_source=snowflake-devrel&utm_medium=developer-guides&utm_cta=developer-guides) account. Sign up for a 30-day free trial account, if required.\n- Access to [Snowflake Cortex AI functions](https://docs.snowflake.com/user-guide/snowflake-cortex/aisql) (available in most commercial regions)\n- Basic understanding of [Snowflake Notebooks](https://docs.snowflake.com/en/user-guide/ui-snowsight/notebooks) and [Streamlit in Snowflake](https://docs.snowflake.com/en/developer-guide/streamlit/about-streamlit)\n\n\n### What You'll Build\n\nBy the end of this quickstart, you will have built:\n\n1. A **Data Harmonization Streamlit app** that uses AI to map schema differences between datasets\n2. A **Hybrid Entity Matching notebook** that combines vector similarity and AI classification for intelligent product matching\n3. An **Unmatched Records Review app** for human-in-the-loop validation of uncertain matches\n4. A complete, production-ready data harmonization pipeline with audit trails and quality metrics\n\nThe solution processes 1,000+ product records from two different retailers and produces high-quality matches with confidence scores, achieving 85%+ accuracy through the hybrid approach.\n\n### Download the Source Files\n\n\u003E The 3 source files (2 streamlit apps and 1 notebook) can be found [here](https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/data-harmonization/assets/streamlit_apps) and [here](https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/data-harmonization/assets/notebooks).\n\n### Note on the Datasets Used\n\n\u003E The datasets used in this quickstart are commonly used data harmonization test datasets. These datasets are made available by the database group of Prof. Erhard Rahm under the [Creative Commons license](https://creativecommons.org/licenses/by/4.0/). Column titles are changed at the table level from the original CSV files.\n\n\u003E **Citation:** Hanna Köpcke, Andreas Thor, and Erhard Rahm. 2010. Evaluation of data harmonization approaches on real-world match problems. Proc. VLDB Endow. 3, 1–2 (September 2010), 484–493. [https://doi.org/10.14778/1920841.1920904](https://doi.org/10.14778/1920841.1920904)\n\n\n## Set-up\n\nIn this section, you'll prepare your Snowflake environment by creating the necessary database objects and loading the sample datasets. We'll be working with three CSV files containing product data from ABT and Best Buy, plus a ground truth mapping file for validation.\n\n\u003E If you didn't download the source files from the previous step, plese do so [here](https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/data-harmonization/assets/streamlit_apps) and [here](https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/data-harmonization/assets/notebooks).\n\n### Step 1: Create Database and Schema\n\nFirst, create a dedicated database and schema for this project:\n\n```sql\n-- Create the main database\nCREATE OR REPLACE DATABASE ABT_BEST_BUY;\n\n-- Create the schema to organize our tables\nCREATE OR REPLACE SCHEMA ABT_BEST_BUY.STRUCTURED;\n\n-- Set context for subsequent operations\nUSE DATABASE ABT_BEST_BUY;\nUSE SCHEMA STRUCTURED;\n```\n\n### Step 2: Create a Warehouse\n\nCreate a warehouse sized appropriately for the AI and vector operations we'll be performing:\n\n```sql\n-- Create your data harmonization Snowflake Warehouse (we used a 2XL in the demo video)\nCREATE OR REPLACE WAREHOUSE ENTITY_RESOLUTION_WH\nWITH\n    WAREHOUSE_SIZE = '2X-LARGE'\n    AUTO_SUSPEND = 300\n    AUTO_RESUME = TRUE\n    INITIALLY_SUSPENDED = TRUE\n    COMMENT = 'Warehouse for data harmonization with Cortex AI';\n\n-- Set the warehouse as active\nUSE WAREHOUSE ENTITY_RESOLUTION_WH;\n```\n\n### Step 3: Create File Format\n\nCreate a reusable file format for loading CSV files:\n\n```sql\n-- Create file format for CSV loading\nCREATE OR REPLACE FILE FORMAT ABT_BEST_BUY.STRUCTURED.CSV_FORMAT\n    TYPE = CSV\n    SKIP_HEADER = 1\n    FIELD_DELIMITER = ','\n    TRIM_SPACE = TRUE\n    FIELD_OPTIONALLY_ENCLOSED_BY = '\"'\n    REPLACE_INVALID_CHARACTERS = TRUE\n    DATE_FORMAT = AUTO\n    TIME_FORMAT = AUTO\n    TIMESTAMP_FORMAT = AUTO\n    COMMENT = 'CSV format for data harmonization data';\n```\n\n### Step 4: Create Internal Stage\n\nCreate an Internal Stage where we will upload our CSV files:\n\n```sql\n-- Create stage for CSV files\nCREATE OR REPLACE STAGE ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE\n -- Enable the directory table feature\n    DIRECTORY = ( ENABLE = TRUE )\n    COMMENT = 'Internal Stage for ABT and Best Buy product data';\n\n-- Verify stage contents (which will be empty initially)\nLIST @ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE;\n```\n\n### Step 5: Add Datasets to Internal Stage\n\n\u003E **Note:** The ABT/Best Buy CSV files themselves are from common datasets used for data harmonization evalutions and can be downloaded from the Universität Leipzig website for [Benchmark datasets for data harmonization](https://dbs.uni-leipzig.de/research/projects/benchmark-datasets-for-entity-resolution).\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/CSV_Files.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\nUnzip the files. We will then upload the 3 files downloaded via Snowsight to the stage we just created:\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Add_Files_To_Stage.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\nAfter the files are uploaded, run the LIST command again to verify they are in the stage. You should see the 3 files we just uploaded in the results returned.\n\n\n```sql\n\n-- Verify stage contents\nLIST @ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE;\n```\n\n\n### Step 6: Create Tables\n\nNow create the three tables that will hold our product data:\n\n```sql\n-- Create ABT products table\nCREATE OR REPLACE TABLE ABT_BEST_BUY.STRUCTURED.ABT (\n    SKU NUMBER(38,0),\n    PRODUCT_LABEL VARCHAR(16777216),\n    ITEM_DETAILS VARCHAR(16777216),\n    RETAIL_PRICE VARCHAR(16777216)\n);\n\n-- Create Best Buy products table\nCREATE OR REPLACE TABLE ABT_BEST_BUY.STRUCTURED.BEST_BUY (\n    PRODUCTID NUMBER(38,0),\n    NAME VARCHAR(16777216),\n    DESCRIPTION VARCHAR(16777216),\n    MANUFACTURER VARCHAR(16777216),\n    PRICE VARCHAR(16777216)\n);\n\n-- Create ground truth mapping table for validation\nCREATE OR REPLACE TABLE ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_PERFECT_MAPPING (\n    IDABT NUMBER(38,0),\n    IDBUY NUMBER(38,0)\n);\n```\n\n### Step 7: Load Data\n\nLoad data from the staged CSV files into the tables:\n\n```sql\n-- Load ABT products\nCOPY INTO ABT_BEST_BUY.STRUCTURED.ABT\nFROM (\n    SELECT \n        $1::NUMBER AS SKU,\n        $2::VARCHAR AS PRODUCT_LABEL,\n        $3::VARCHAR AS ITEM_DETAILS,\n        $4::VARCHAR AS RETAIL_PRICE\n    FROM @ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE\n)\nFILES = ('Abt.csv')\nFILE_FORMAT = (FORMAT_NAME = 'ABT_BEST_BUY.STRUCTURED.CSV_FORMAT')\nON_ERROR = CONTINUE;\n\n-- Load Best Buy products\nCOPY INTO ABT_BEST_BUY.STRUCTURED.BEST_BUY\nFROM (\n    SELECT \n        $1::NUMBER AS IDBUY,\n        $2::VARCHAR AS NAME,\n        $3::VARCHAR AS DESCRIPTION,\n        $4::VARCHAR AS MANUFACTURER,\n        $5::VARCHAR AS PRICE\n    FROM @ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE\n)\nFILES = ('Buy.csv')\nFILE_FORMAT = (FORMAT_NAME = 'ABT_BEST_BUY.STRUCTURED.CSV_FORMAT')\nON_ERROR = CONTINUE;\n\n-- Load ground truth mapping\nCOPY INTO ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_PERFECT_MAPPING\nFROM (\n    SELECT \n        $1::NUMBER AS IDABT,\n        $2::NUMBER AS IDBUY\n    FROM @ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_DATA_STAGE\n)\nFILES = ('abt_buy_perfectMapping.csv')\nFILE_FORMAT = (FORMAT_NAME = 'ABT_BEST_BUY.STRUCTURED.CSV_FORMAT')\nON_ERROR = CONTINUE;\n```\n\n### Step 8: Verify Data Load\n\nConfirm that data has been loaded successfully:\n\n```sql\n-- Check ABT table\nSELECT 'ABT' AS TABLE_NAME, COUNT(*) AS RECORD_COUNT FROM ABT_BEST_BUY.STRUCTURED.ABT\nUNION ALL\nSELECT 'BUY' AS TABLE_NAME, COUNT(*) AS RECORD_COUNT FROM ABT_BEST_BUY.STRUCTURED.BEST_BUY\nUNION ALL\nSELECT 'ABT_BUY_PERFECTMAPPING' AS TABLE_NAME, COUNT(*) AS RECORD_COUNT FROM ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_PERFECT_MAPPING;\n\n-- Preview sample records from each table\nSELECT 'ABT Sample' AS SOURCE, * FROM ABT_BEST_BUY.STRUCTURED.ABT LIMIT 100;\nSELECT 'BUY Sample' AS SOURCE, * FROM ABT_BEST_BUY.STRUCTURED.BEST_BUY LIMIT 100;\nSELECT 'Mapping Sample' AS SOURCE, * FROM ABT_BEST_BUY.STRUCTURED.ABT_BEST_BUY_PERFECT_MAPPING LIMIT 100;\n```\n\n#### Expected Output:\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/results_test.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n**Expected Results:** You should see approximately 1,081 ABT records, 1,092 Best Buy records, and 1,097 mapping records. The ABT table contains product identifiers (SKU, PRODUCT_LABEL, & ITEM_DETAILS), while the BEST_BUY table uses different field names (PRODUCTID, NAME, & DESCRIPTION) for similar data.\n\nYour Snowflake environment is now ready! In the next section, we'll use the Data Harmonization Streamlit app to create unified datasets from these disparate schemas.\n\n## Data Harmonization\n\n### Understanding the Challenge\n\nLooking at the ABT and BEST_BUY tables you just created, you'll notice they have completely different column names:\n\n- **ABT**: `SKU`, `PRODUCT_LABEL`, `ITEM_DETAILS`, `RETAIL_PRICE`\n- **BEST_BUY**: `PRODUCTID`, `NAME`, `DESCRIPTION`, `MANUFACTURER`, `PRICE`\n\nWhile both tables contain product information, the column names, data types, and structures differ. Before we can match products between these datasets, we need to **harmonize** them – creating a unified schema with consistent field mappings.\n\nTraditional approaches would require manual analysis and custom ETL code. Instead, we'll use **Snowflake Cortex AI** to automatically analyze these schemas and recommend semantic mappings.\n\n### What the Data Harmonization App Does\n\nThe Data Harmonization Streamlit application performs the following workflow:\n\n1. **Table Profiling**: Analyzes both tables to understand column types, cardinality, null rates, sample values, and statistical distributions\n2. **AI-Powered Mapping**: Uses Snowflake Cortex AI (mistral-large model) to recommend semantic mappings between fields based on content analysis\n3. **Interactive Review**: Allows you to review and adjust the AI recommendations through a user-friendly interface\n4. **Dataset Creation**: Generates harmonized output tables with:\n   - Consistent column names (e.g., `PRODUCT_ID`, `PRODUCT_NAME`, `PRODUCT_DESCRIPTION`)\n   - Cleaned text (special characters removed)\n   - An audit table tracking all mapping decisions\n\n\n### Running the Data Harmonization App\n\n#### Step 1: Access Streamlit in Snowflake\n\n1. Navigate to **Projects** \u003E **Streamlit** in Snowsight\n2. Click **+ Streamlit App**\n3. Name it `Data_Harmonization_App`\n4. Select your `ABT_BEST_BUY` database and `STRUCTURED` schema\n5. Select the `ENTITY_RESOLUTION_WH` warehouse\n\n#### Step 2: Upload the Application Code\n\n1. Delete the example code in the `streamlit_app.py` file\n2. Copy the contents of `Data Harmonization with Snowflake Cortex AI.py`\n3. Paste the new code from the `Data Harmonization with Snowflake Cortex AI.py` into this file\n4. Be sure you install the appropriate packages\n5. Click **Run**\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/data_harm_streamlit_setup.1.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n4. Ensure you have the appropriate packages installed.\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/data_harm_streamlit_setup.2.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n5. Click **Run** to launch the application\n\n#### Step 3: Configure Tables\n\nIn the app interface:\n1. Verify the database and schema are set to `ABT_BEST_BUY.STRUCTURED`\n2. Select **ABT** as the **Reference Table**\n3. Select **BEST_BUY** as the **Input Table**\n4. The app will automatically profile both tables\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/data_harm_streamlit_setup.3.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n#### Step 4: Generate AI Recommendations\n\n1. Click **Run AI Analysis** to invoke Cortex AI\n2. The AI will analyze the schemas and suggest mappings:\n   - `ABT.SKU` → `product_id` ← `BEST_BUY.PRODUCTID`\n   - `ABT.PRODUCT_LABEL` → `product_name` ← `BEST_BUY.NAME`\n   - `ABT.ITEM_DETAILS` → `product_description` ← `BEST_BUY.DESCRIPTION`\n   - (The Manufacturer field should be 'None' for ABT because it doesn't have a corresponding match.)\n\n****Key Features and Capabilities****:\n\n\u003EThe Cortex AI model analyzes your data to identify:\n\u003E- **Product Identifiers**: High-cardinality numeric fields likely to be primary keys\n\u003E- **Product Names**: Short text fields containing product titles\n\u003E- **Product Descriptions**: Long text fields with detailed specifications\n\u003E\n---\n\n#### Sample Profiling Output\n\nFor each column, the app computes:\n- Row count and null count (data quality metrics)\n- Distinct count (cardinality for identifying keys)\n- Average length (helps distinguish names from descriptions)\n\n\n\n#### Step 5: Review and Adjust Mappings\n\nIn the **Review and Edit Mappings** section:\n- Check the checkboxes for fields you want to include in matching (typically all fields with valid mappings)\n- Adjust dropdowns if the AI recommendations don't look correct (shouldn't be necessary for this analysis)\n- The join key suggestions can be set to 'None' (we're not performing a traditional join)\n\nYour output should look like this:\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/data_harm_AI_analysis.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n\n#### Step 6: Create Harmonized Datasets\n\n1. Preview the output structure to verify column names and transformations\n2. Set the target database and schema (keep defaults: `ABT_BEST_BUY.STRUCTURED`)\n3. Click **Create Datasets**\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/data_harm_streamlit_setup.4.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\nThe app will create three tables:\n- `ABT_HARMONIZATION_YYYY_MM_DD`: Harmonized ABT data\n- `BUY_HARMONIZATION_YYYY_MM_DD`: Harmonized Best Buy data\n- `AUDIT_HARMONIZATION_YYYY_MM_DD`: Audit trail with mapping decisions, user info, and timestamps\n\n\n### Audit Table Structure\n\nThe audit table tracks:\n- Date of run, user, role, and session ID\n- Source datasets (reference and input)\n- Column mappings (which fields were matched)\n- Whether each field was included in output\n- Output table names for traceability\n\n#### Why This Matters\n\nBy harmonizing the data:\n1. **Standardized Schema**: Both datasets now have consistent column names\n2. **Clean Text**: Special characters removed, enabling better matching\n3. **Audit Trail**: Complete lineage from source to harmonized tables\n4. **Ready for Matching**: Data is now in the perfect format for the hybrid entity matching algorithm\n\nWe will use this audit table in our upcoming notebook to ensure we're matching like-for-like from a column-matching perspective.\n\nIn the next section, we'll use these harmonized tables to perform intelligent entity matching using a hybrid approach that combines vector similarity with AI classification.\n\n## Data Harmonization - Hybrid Matching\n\nNow that we have harmonized datasets, it's time to tackle the core challenge: **determining which ABT products correspond to which Best Buy products**. This is where the magic of hybrid entity matching comes in.\n\n### The Hybrid Matching Strategy\n\nTraditional entity matching approaches typically fall into two camps:\n\n1. **Rule-based matching**: Fast but brittle (e.g., \"if product names match exactly\")\n2. **Pure ML models**: Accurate but require training data and can be slow\n\nOur hybrid approach combines the best of both worlds:\n\n- **Vector Similarity (Fast Path)**: Use semantic embeddings to quickly identify high-confidence matches (≥80% similarity)\n- **AI_CLASSIFY (Smart Path)**: For ambiguous cases with multiple candidates, use AI to intelligently select the best match based on context\n\nThis strategy is inspired by Snowflake's AI SQL best practices and provides an optimal balance of speed, accuracy, and cost.\n\n### Step 1. Uploading the data harmonization Notebook\n\n1. From the Snowflake navation plane click **Create** \u003E **Notebook** \u003E **Import .ipynb File** \n2. Locate the `HYBRID_ENTITY_MATCHING_WITH_AI_CLASSIFY.ipynb` file you downloaded and upload it\n3. Name it `HYBRID_ENTITY_MATCHING_WITH_AI_CLASSIFY`\n4. Select your `ABT_BEST_BUY` database and `STRUCTURED` schema\n5. Select the `ENTITY_RESOLUTION_WH` warehouse as your query warehouse\n6. All other defaults can be kept the same\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Notebook_Import.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n### Notebook Overview\n\nThe notebook is organized into several key sections. Let's walk through what each major cell accomplishes.\n\n---\n\n### Section 1: Configuration Setup (Python Cell)\n\n**What It Does:**\nThis interactive cell discovers your harmonization output tables and lets you select which entity columns to use for matching.\n\n**Key Operations:**\n- Queries the current database/schema for audit tables matching the pattern `AUDIT_HARMONIZATION_%`\n- Loads the audit table to identify which fields were mapped and matched\n- Presents an interactive interface to select the entity column pair for matching (typically the product name/label fields)\n- Validates that the harmonized tables exist and are accessible\n- Stores configuration in a temporary table (`TEMP_HYBRID_CONFIG`) for subsequent cells\n\n**Why It Matters:**\nThis dynamic configuration means the notebook adapts to your specific harmonization output – no hardcoded table names or column names. You can run this workflow on any pair of harmonized datasets.\n\n**Run the cell `r_Harmonization_Table_Configuration`** - This will run an in-notebook Streamlit app. \n\n    \n1. Select your database (ABT_BEST_BUY) and schema (STRUCTURED)\n2. Choose the audit table created by the harmonization app\n3. Select the entity column pair (for this run, we will use `PRODUCT_LABEL ↔ NAME`)\n4. Verify the table names and click **Validate, Save Configuration, and Set Up Environment**\n\nRunning this cell prepares the SQL environment and extracts configuration details for the matching process, ensuring all subsequent queries reference the correct tables and columns dynamically.\n\n---\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Notebook1.gif)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n---\n\n### Section 2: Vector Feature Engineering (SQL Cell)\n\n**What It Does:**\nCreates the foundational features for hybrid matching by generating vector embeddings for all entity names and computing initial similarity scores.\n\n**Key Operations:**\n\n1. **Generate Embeddings**: Uses `SNOWFLAKE.CORTEX.EMBED_TEXT_1024` with the `voyage-multilingual-2` model to create 1024-dimension vector embeddings for each product name\n2. **Cross-Join**: Creates all possible pairs between reference (ABT) and input (Best Buy) products\n3. **Compute Similarity**: Calculates `VECTOR_COSINE_SIMILARITY` between each pair's embeddings\n4. **Filter Low Scores**: Drops pairs with similarity \u003C 0.2 to reduce search space\n\n\n**Why It Matters:**\n- **Embeddings capture semantics**: Products like \"Sony 10MP Camera\" and \"Sony Digital Camera 10 Megapixel\" will have high similarity even with different exact wording\n- **Pre-computed similarities**: Storing these scores enables fast filtering in subsequent steps\n- **Reduced search space**: Filtering at 0.2 threshold eliminates obviously non-matching pairs\n\n**Run the cell `r_Vector_Feature_Engineering`**\n\n**Expected Output:**\nThe cell displays a summary showing:\n- Total comparisons generated (e.g., 50,000-100,000 pairs)\n- Number of unique reference and input products\n- Average vector similarity score\n    - This will initially be low due to the current cartesian nature of the data. We will clean this up in later steps.\n- Average comparisons per reference product\n\n---\n\n### Section 3: Hybrid Matching with AI_CLASSIFY (SQL Cell)\n\n**What It Does:**\nImplements the two-stage matching logic that combines vector similarity with AI classification for optimal results. **At the end of this step, we will have matched our two datasets together, keeping only what we believe to be the actual matches and discarding the rest.**\n\n**The Algorithm:**\n\n**Stage 1: High-Confidence Vector Matches**\n- For each reference product, identify the top candidates by vector similarity\n- If the top match is a clear similarity match accept it immediately (no AI needed)\n\n**Stage 2: AI_CLASSIFY for Ambiguous Cases**\n- For reference products with multiple candidates:\n- Aggregate the top 15 candidate names into an array\n- Call `AI_CLASSIFY(reference_name, [candidate1, candidate2, ...])` to intelligently select the best match\n- AI_CLASSIFY uses context and semantic understanding beyond simple similarity\n\n**Stage 3: Confidence Scoring**\n- Assign confidence scores based on:\n  - Vector similarity score\n  - Whether AI_CLASSIFY was used (slight confidence boost)\n  - Match method (HIGH_CONFIDENCE_VECTOR, MEDIUM_CONFIDENCE_VECTOR, or AI_CLASSIFY)\n\n\n**Why This Works:**\n- **Cost Optimization**: AI_CLASSIFY is only called when needed (ambiguous cases)\n- **Speed**: High-confidence matches are resolved with simple vector comparison\n- **Accuracy**: AI_CLASSIFY handles nuanced cases where vector similarity alone is insufficient (e.g., similar product names for different models)\n\n**Run the cell `r_Hybrid_Matching`**\n\n**Expected Output:**\nThe cell creates the `hybrid_final_results` table and displays metrics:\n- Total matches found\n- Average confidence score\n- Number of high-confidence vector matches\n- Number of AI_CLASSIFY matches\n- AI_CLASSIFY usage percentage (typically 20-40% of records)\n\n---\n\n### Section 4: Record Management and Threshold Selection (Python Cell)\n\n**What It Does:**\nProvides an interactive streamlit interface to review match quality and separate records into MATCHED and UNMATCHED tables based on a confidence threshold.\n\n**Why This Matters:**\nDifferent use cases require different confidence thresholds:\n- **High-stakes pricing decisions**: Use 90%+ threshold, manually review unmatched\n- **Exploratory analysis**: Use 70%+ threshold, accept more false positives\n- **Iterative improvement**: Start at 80%, review unmatched, improve matching logic\n\n**Run the cell `r_Record_Management`**\n\n**Expected Interaction:**\n- Review the confidence distribution chart\n- Adjust the slider to find the right threshold for your use case (we us 80% in the demo)\n- Preview sample matches at the current threshold\n- Configure output table names (use defaults for this demo)\n- Click **Finalize & Create Datasets** to generate:\n  - `[AUDIT_TABLE]_HYBRID_MATCHED`: High-confidence matches\n  - `[AUDIT_TABLE]_HYBRID_UNMATCHED`: Records needing review\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/notebook_scroll.gif)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n---\n\n### Section 5: Performance Evaluation (SQL Cell)\n\n**What It Does:**\nEvaluates the hybrid matching approach against our golden dataset mapping table to measure accuracy and identify areas for improvement. **In many cases, you may not have a golden dataset to compare to. Here we have one which we use to test the accuracy of our methods.**\n\n**Key Metrics Calculated:**\n\n1. **Overall Accuracy**: Percentage of matches that align with ground truth\n2. **Accuracy by Confidence Bucket**: How accuracy varies across confidence ranges\n3. **Accuracy by Match Method**: Performance of HIGH_CONFIDENCE_VECTOR vs AI_CLASSIFY vs MEDIUM_CONFIDENCE_VECTOR\n4. **False Match Analysis**: Understanding where the algorithm makes mistakes\n\n\n**Why This Matters:**\n- **Validates Approach**: Proves the hybrid method achieves high accuracy\n- **Informs Thresholds**: Shows you where to set confidence cutoffs\n- **Identifies Improvements**: Highlights which types of products are harder to match\n- **Benchmarking**: Provides a baseline for comparing alternative approaches\n\n**Run the cell `r_Performance_Evaluation`**\n\n**As you can see, using our methods against this test dataset we achieve a \u003E90% accuracy when compared to our golden dataset!**\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/notebook4.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n---\n\n\u003E **Pro Tip**: The hybrid approach shines when you have a mix of easy and hard matching cases. Pure vector similarity handles the easy 70-80%, while AI_CLASSIFY intelligently resolves the remaining ambiguous cases.\n\nIn the next section, we'll build an interactive Streamlit app to review and correct the unmatched records, creating a human-in-the-loop validation workflow.\n\n## Unmatched Record Reconciliation\n\nAfter running the hybrid matching algorithm, you'll have two sets of records:\n1. **Matched Records**: High-confidence matches ready for use in analysis\n2. **Unmatched Records**: Lower-confidence cases that need human review\n\nThis section addresses the unmatched records through an interactive Streamlit application that enables efficient, user-friendly review and correction.\n\n### The Problem with Unmatched Records\n\nUnmatched records typically fall into a few categories:\n\n1. **Close Calls**: Multiple viable candidates with similar scores (e.g., different models of the same product line)\n2. **Data Quality Issues**: Missing information, typos, or incomplete descriptions\n3. **Unique Products**: Items that genuinely don't have a match in the other dataset\n4. **Algorithm Limitations**: Cases where both vector similarity and AI_CLASSIFY struggled\n\nRather than accepting these as lost opportunities, the Unmatched Records Reviewer provides a structured workflow to:\n- Review each unmatched record systematically\n- View alternative candidate matches with their similarity scores\n- Make informed manual selections or confirm \"no match found\"\n- Track all decisions with full audit trails\n\n### What the Unmatched Records App Does\n\nThe application implements a comprehensive review workflow:\n\n#### 1. Intelligent Data Loading\n- Automatically discovers unmatched table from the audit trail\n- Identifies the corresponding matched table for approved records\n- Loads up to 20 candidate matches per record from the original `hybrid_features` table\n- Paginates records for manageable review sessions (10 records per page)\n\n#### 2. Interactive Review Interface\nFor each unmatched record, the reviewer displays:\n- **Reference Entity Name**: The ABT product you're trying to match\n- **Top Candidate Matches**: Dropdown showing up to 20 Best Buy candidates, ranked by vector similarity\n- **Similarity Scores**: Real-time display of vector similarity for the selected candidate\n- **Match Approval Checkbox**: Confirm when you've selected the correct match\n\n#### 3. Dynamic Search and Filtering\n- **Text Search**: Filter records by reference entity name to quickly find specific products\n- **Pagination**: Navigate through pages of unmatched records\n- **Jump Controls**: Skip to first or last page instantly\n\n#### 4. Batch Processing\n- **Page-by-Page Approval**: Review and approve matches on each page\n- **Cross-Page Memory**: Selections are preserved as you navigate between pages\n- **Bulk Submission**: Submit all approved matches from all pages at once\n\n### Running the Unmatched Records App\n\n#### Step 1: Create the Streamlit App\n\n1. Navigate to **Projects** \u003E **Streamlit** in Snowsight\n2. Click **+ Streamlit App**\n3. Name it `data harmonization - Unmatched Records`\n4. Select your `ABT_BEST_BUY` database and `STRUCTURED` schema\n5. Select the `ENTITY_RESOLUTION_WH` warehouse\n\n#### Step 2: Upload the Application Code\n\n1. Delete the example code in the `streamlit_app.py` file\n2. Copy the contents of `data harmonization - Unmatched Records.py`\n3. Paste the new code from the `data harmonization - Unmatched Records.py` into this file\n4. Be sure you install the appropriate packages\n5. Click **Run**\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Unmatched1.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n\n#### Step 3: Select Unmatched Table\n\n1. The app automatically queries `AUDIT_HARMONIZATION_HYBRID_AUDIT` to find unmatched/matched table pairs\n2. From the dropdown, select your unmatched table (e.g., `AUDIT_HARMONIZATION_2025_10_04_HYBRID_UNMATCHED`)\n3. Click **Process** to load the records\n\n\n\u003E **Note**: The app automatically identifies the corresponding matched table from the audit table, ensuring records are moved to the correct destination.\n\n#### Step 3: Review Records\n\nFor each record on the page:\n\n**Reference Record Display:**\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Unmatched2.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n**Candidate Selection:**\nThe dropdown shows candidates with similarity scores:\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Unmatched3.png)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n\n**Actions:**\n- Select the best match from the dropdown\n- Review the vector similarity score (displayed dynamically)\n- Check **✅ Match Approved** if you're confident in the selection\n- **Leave unchecked if no good match exists (record remains unmatched) - Only mannually selected records will be processed to our matched table** \n\n#### Step 4: Navigate and Continue Reviewing\n\n- Use **← Previous** and **Next →** buttons to move between pages\n- Use **⏪ Jump to First Page** or **⏩ Jump to Last Page** for quick navigation\n- Use the search box to filter records by specific text\n- The page indicator shows your progress (e.g., \"Page 5 of 25\")\n\n\u003E **Workflow Tip**: Focus on records with high similarity scores (\u003E0.75) first, as these are more likely to be correct matches. Records with very low scores (\u003C0.50) may genuinely have no match in the dataset.\n\n#### Step 5: Submit Reviews\n\nOnce you reach the last page:\n1. Review the **Review Summary** showing:\n   - Records Approved to Move\n   - Records Not Approved\n2. Click **Submit All Reviews** to process all approved matches across all pages\n3. The app will:\n   - Update the `FINAL_MATCH` column for approved records\n   - Move approved records from unmatched to matched table\n   - Delete processed records from unmatched table\n   - Display a detailed summary of changes\n\n#### Step 6: Review Completion Summary\n\nAfter submission, you'll see a summary of the records you sent to the matched table.\n\nClick **📑 Continue with Analysis** to review remaining records or refresh the view.\n\n\u003Cbr/\u003E\u003Cbr/\u003E\n![](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/data-harmonization/Unmatched2.gif)\n\u003Cbr/\u003E\u003Cbr/\u003E\n\n### Best Practices for Record Review\n\n#### 1. Prioritize by Confidence\nStart with records that have similarity scores just below your threshold (e.g., 0.75-0.80), as these are most likely to be correctable with manual review.\n\n#### 2. Look for Patterns\nIf you notice multiple records failing for the same reason (e.g., missing manufacturer information), consider updating your harmonization mapping to include additional fields.\n\n#### 3. Use Domain Knowledge\nProduct expertise is invaluable here. If you know ABT's catalog, you can quickly identify:\n- Products that should match but have different model numbers\n- Products that are actually different items despite similar names\n- Products that genuinely don't exist in Best Buy's catalog\n\n#### 4. Don't Force Matches\nIf none of the candidates are correct, leave the record unchecked. It's better to have an unmatched record than an incorrect match that pollutes your analysis.\n\n#### 5. Iterative Review Sessions\nYou don't have to review all records in one sitting. The app preserves state across sessions (records remain in the unmatched table until explicitly moved).\n\n### The Value of Human-in-the-Loop\n\nThis review workflow exemplifies the **human-in-the-loop** approach to AI:\n\n1. **AI Does the Heavy Lifting**: The hybrid matching algorithm handles 75-85% of records automatically\n2. **Humans Handle Edge Cases**: Reviewers focus only on ambiguous cases that need domain expertise\n3. **Continuous Improvement**: Insights from manual review can inform future matching logic improvements\n4. **Quality Assurance**: Human validation provides confidence in match quality for downstream analytics\n\n\u003E **Real-World Impact**: In production environments, this workflow reduces data harmonization time from weeks of manual work to hours of focused review, while maintaining high match quality.\n\nBy the end of this section, you'll have:\n- ✅ Reviewed all unmatched records systematically\n- ✅ Made informed decisions about match selections\n- ✅ Moved high-quality matches to the matched table\n- ✅ Identified records that genuinely have no match\n- ✅ Maintained complete audit trails for all decisions\n\nYou now have a complete, production-ready data harmonization pipeline with matched records ready for competitive pricing analysis!\n\n## Conclusion and Resources\n\nCongratulations! You've successfully built an end-to-end data harmonization solution using Snowflake's native AI capabilities, combining automated matching with human-in-the-loop validation.\n\n### What You Accomplished\n\nThroughout this quickstart, you:\n\n1. ✅ **Prepared Data**: Loaded product catalogs from two different retailers with different schemas\n2. ✅ **Harmonized Schemas**: Used Snowflake Cortex AI to automatically map semantic field differences and create unified datasets\n3. ✅ **Implemented Hybrid Matching**: Combined vector similarity (fast) with AI_CLASSIFY (intelligent) for optimal matching performance\n4. ✅ **Validated Quality**: Measured accuracy against ground truth data and achieved 85%+ match quality\n5. ✅ **Reviewed Edge Cases**: Used an interactive Streamlit app to manually validate uncertain matches\n6. ✅ **Built Production Pipeline**: Created a complete workflow with audit trails, confidence scoring, and quality metrics\n\n### Key Takeaways\n\n**Business Value:**\n- Reduced data harmonization from weeks of manual work to hours of automated processing\n- Achieved high match quality (85%+) without training custom ML models\n- Created a repeatable, scalable process for ongoing data integration needs\n- Enabled competitive pricing analysis that was previously infeasible\n\n**Technical Innovation:**\n- **Cortex AI for Schema Analysis**: Automatically understand and map disparate data structures\n- **Vector Embeddings**: Capture semantic similarity beyond exact text matching\n- **Hybrid Approach**: Optimize for both speed (vector similarity) and accuracy (AI_CLASSIFY)\n- **Streamlit in Snowflake**: Build rich, interactive applications without external infrastructure\n\n**Best Practices:**\n- Always profile and harmonize data before attempting matching\n- Use confidence thresholds to separate high-quality matches from cases needing review\n- Maintain audit trails for all decisions and transformations\n- Validate against ground truth when available to measure and improve accuracy\n- Implement human-in-the-loop for edge cases that require domain expertise\n\n### Related Resources\n\n**Documentation:**\n- [Snowflake Cortex AI](https://docs.snowflake.com/en/user-guide/snowflake-cortex/overview)\n- [Snowflake Cortex Vector Functions](https://docs.snowflake.com/en/user-guide/snowflake-cortex/vector-embeddings)\n- [Snowflake Cortex AI_CLASSIFY](https://docs.snowflake.com/en/user-guide/snowflake-cortex/ml-functions/classification)\n- [Streamlit in Snowflake](https://docs.snowflake.com/en/developer-guide/streamlit/about-streamlit)\n- [Snowflake Notebooks](https://docs.snowflake.com/en/user-guide/ui-snowsight-notebooks)\n\n\n","multiValue":false,":type":"text/x-markdown"},"quickstartArticleLogoImage":{"dataType":"string","title":"Quickstart Article Logo Image","multiValue":false,":type":"text/plain"}},":items":{},":itemsOrder":[],"isDeveloperGuidesPage":false,"model":"snowflake-site/models/quickstart-article"},"flexible_column_cont":{"id":"flexible-column-container-700f906937","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":{"layout":"SIMPLE","id":"container-6baa22a5f7",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"quickstart_last_modi":{"id":"quickstart-last-modified-fc9619b16c","icon":{"id":"icon","icon":"calendar",":type":"snowflake-site/components/icon","appliedCssClassNames":"snowflake-icon-blue"},"lastModifiedDatePrefix":"Updated","lastModifiedDate":"2026-02-06",":type":"snowflake-site/components/quickstart/quickstart-last-modified","appliedCssClassNames":"snowflake-responsive-component-top-padding-small"},"text":{"id":"text-b9b2932952","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":{"layout":"SIMPLE","id":"container-c1f256d906",":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":{"layout":"SIMPLE","id":"container-ad5a14912d",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"quickstart_table_of_":{"layout":"SIMPLE","id":"container-e0e6b2a5a2","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-80dc9ea2a8","headings":["\u003Ch2\u003EOverview\u003C/h2\u003E","\u003Ch2\u003ESet-up\u003C/h2\u003E","\u003Ch2\u003EData Harmonization\u003C/h2\u003E","\u003Ch2\u003EData Harmonization - Hybrid Matching\u003C/h2\u003E","\u003Ch2\u003EUnmatched Record Reconciliation\u003C/h2\u003E","\u003Ch2\u003EConclusion and Resources\u003C/h2\u003E"],"fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/data-harmonization",":type":"snowflake-site/components/quickstart/quickstart-table-of-content"},"quickstart_button":{"id":"quickstart-button-c75601d028","fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/data-harmonization",":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-ab64c545a3","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":{"layout":"SIMPLE","id":"container-b1e6f68139",":type":"snowflake-site/components/modal/modal-container",":items":{},":itemsOrder":[]},"experiencefragment-footer":{"id":"experiencefragment-088d78819e","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","classNames":"aem-xf",":items":{"root":{"additionalClasses":"sf-footer","layout":"SIMPLE","id":"container-fea9b9fa0b",":type":"snowflake-site/components/container",":items":{"container_copy":{"additionalClasses":"sf-footer__inner","gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-0d472e7727",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-container snowflake-responsive-container-inner-padding-small",":items":{"flexible_column_cont":{"id":"flexible-column-container-58c490193e","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":{"layout":"SIMPLE","id":"container-94939c2042",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container":{"additionalClasses":"sf-footer-grid__inner","gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","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"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-e5f4226254",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"container_1622723482":{"additionalClasses":"sf-footer__column","gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"container":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-214d736410",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"container":{"additionalClasses":"sf-footer__newsletter-group","gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12","marketo_v2":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-13ba37cde5",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"text":{"id":"text-f2cf60c350","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-6351a0ca0b","marketoForm":{"hidden":null,"formId":"45871","successUrl":null,"edit":false,"script":null,"values":null},"marketoConfigured":true,"formConfigured":true,"munchkinId":"252-RFO-227","serverInstance":"252-RFO-227.mktoweb.com",":type":"snowflake-site/components/form/marketo-v2"}},":itemsOrder":["text","marketo_v2"]}},":itemsOrder":["container"]},"container":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"text_copy":"aem-GridColumn aem-GridColumn--default--12","text":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-d640934209",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-medium",":items":{"text":{"id":"text-e0f82769d6","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-b0950e9cb9","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":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-9fa3d4c46e",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"text":{"id":"text-b890892383","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":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-dc3fb0c789",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"text":{"id":"text-73598e8db2","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_":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-f52e65dbc5",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-small",":items":{"text":{"id":"text-bd7a0fa895","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","gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"container_112062425":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-483845823e",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-none",":items":{"container_112062425":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-36b89161fe",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-container snowflake-responsive-container-inner-padding-small",":items":{"flexible_column_cont":{"id":"flexible-column-container-ad9ae7df71","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":{"layout":"SIMPLE","id":"container-a64c8a511c",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container":{"additionalClasses":"sf-footer__legal-container","gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","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"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-08908a0ca6",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-none",":items":{"container":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"image":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-b5a5a43553",":type":"snowflake-site/components/container","appliedCssClassNames":"snowflake-responsive-container-inner-padding-extra-small",":items":{"image":{"id":"image-9e3c2302b4","additionalClasses":"sf-footer__logo","height":"64","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","imageLink":{"valid":true,"url":"/en/"},"alt":"Snowflake logo","lazyEnabled":true,"width":"64",":type":"snowflake-site/components/image"}},":itemsOrder":["image"]},"text_copy_copy_16360":{"id":"text-0ddcccf019","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-8abb5d56f7","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-7fcdddbffd","title":"New css","cssContent":".snowflake-image-container img{background-color:transparent}div.snowflake-person-chip-avatar{width:80px !important}#snowflake-blog-template-main-container .snowflake-quote-item-card{margin-top:40px}#snowflake-blog-template-main-container .aem-GridColumn:has(.vertical-video){background-color:#000;border-radius:16px;overflow:hidden}#snowflake-blog-template-main-container .is-vertical img{max-width:400px;margin-left:auto;margin-right:auto}#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-0b3e33d2bb","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"],"analyticsEnabled":true,"coveoConfig":{"pipeline":"snowflake.com","apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d","organizationId":"snowflakecomputingproduction8neljofn","searchHub":"snowflake.com"},":hierarchyType":"page",":path":"/content/snowflake-site/global/en/developers/guides/data-harmonization","analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"","pageType":"quickstart-page-template","templateName":"quickstart-page-template","siteName":"snowflake","pageUrl":"/content/snowflake-site/global/en/developers/guides/data-harmonization","language":"en","category":"general","pageName":"End-to-End Data Harmonization with Snowflake Cortex AI","contentTags":["snowflake-site:taxonomy/snowflake-feature/cortex-llm-functions","snowflake-site:taxonomy/solution-center/certification/quickstart","snowflake-site:taxonomy/product/platform","snowflake-site:taxonomy/product/data-engineering"]},"isPasswordProtected":false,"locale":"en"}
  