Honeydew is a repository of shared business logic such as standard metrics and entity definitions.Honeydew integrates with dbt to allow an end-to-end analytics pipeline.
Honeydew enables any user tool to consume standard metrics and entities. When a tool like Tableau sends a query, Honeydew transforms it on-the-fly to the right set of JOINs and aggregations based on a shared data model definition.By integrating Honeydew and dbt, you can create a single source of truth from ingestion to Snowflake tables to BI that is based on the same standard definitions.
A typical data pipeline of Honeydew with Snowflake and dbt consists of the following stages:
Ingestion: Bringing raw data into Snowflake. Usually, with a tool such as Fivetran or similar.
Staging: An incremental periodic process that transforms raw data into analytic-ready granular data. The following transformations are typically performed at this stage:
Data cleanups, normalization, deduplication
Data merging, change data capture deconstruction
Dimensional modeling, incremental updates
Implemented using dbt or other transformation tools. Executed by an orchestrator (dbt Cloud, Airflow, etc.) based on a period (i.e. hourly) or change triggers.
Entity Layer (Data Mart): A periodic process that transforms granular data into a domain data mart with business entities, metrics and aggregated datasets.The following transformations are typically performed at this stage:
Business Entities: Extend granular data with logic properties, such as
Calculated columns (build an “Age Group” category out of “date of birth”)
Aggregated properties (first order data, total revenue per customer, etc.)
Metric Datasets: Build datasets such as:
Aggregated tables (“Monthly KPIs”)
Denormalized fact tables
Both are implemented using Honeydew metrics and can be materialized in Snowflake by Honeydew.
For materialization, Honeydew can leverage your dbt pipeline by creating Honeydew-managed dbt models, in the same dbt repository as your staging models.
Metric Layer: On-the fly transformation of user queries to JOINs and aggregations over entity tables using standard metrics like “Revenue” or “Active Customer Count”.
Ingestion: raw customer tables and raw order events are loaded into Snowflake.
Staging: dbt models that transform those into two tables:
dim_customers: A customer dimension table, with a row per known customer. Dbt preparation includes clean-up and merging from raw data.
fact_orders: An incremental model, with a row per unique order event. Dbt preparation includes handling backfilling and time stamp conversion.
Data Mart: Honeydew-managed models:
Entity models, such as customers: A customer entity table. Includes additional properties:
“Age Group” - a CASE WHEN that maps ages to categories
“First Order Data” - an aggregation of order facts that finds first order
“Lifetime Revenue” - the revenue standard metric by customer
Dataset models, such as monthly_kpis: An aggregated table:
“Order Month” - based on order timestamp
“Monthly Revenue” - the revenue standard metric by order month
“Monthly # Customers” - a count of customers active in a month
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Honeydew Documentation","colors":{"primary":"#abcb1a","light":"#CBE74A","dark":"#9cb918"},"logo":{"light":"https://mintcdn.com/honeydew/FY_ZgBcPUZJ2-No3/logo/logo.svg?fit=max\u0026auto=format\u0026n=FY_ZgBcPUZJ2-No3\u0026q=85\u0026s=10dbf238c7bdb5bb1ee94e85eea8049f","dark":"https://mintcdn.com/honeydew/FY_ZgBcPUZJ2-No3/logo/logo-white.svg?fit=max\u0026auto=format\u0026n=FY_ZgBcPUZJ2-No3\u0026q=85\u0026s=c774c9340ba4f0a8828b7ad8aa1e4179","href":"https://honeydew.ai"},"favicon":"https://mintcdn.com/honeydew/mXl3IrOWJ_NESw09/favicon.png?fit=max\u0026auto=format\u0026n=mXl3IrOWJ_NESw09\u0026q=85\u0026s=4b76e0217dbafaa5c1b88b130a5e62c4","navbar":{"links":[{"href":"https://app.honeydew.cloud/signup","label":"Sign Up"},{"href":"https://app.honeydew.cloud/","label":"Login"},{"href":"https://honeydew.ai","label":"Website"}],"primary":{"type":"button","label":"Book a Demo","href":"https://honeydew.ai/get-started/"}},"footer":{"socials":{"twitter":"https://twitter.com/honeydewai","linkedin":"https://www.linkedin.com/company/honeydewai","github":"https://github.com/honeydew-ai"}},"integrations":{"ga4":{"measurementId":"G-3FG56HVDQ6"},"gtm":{"tagId":"GTM-MNTHZF6"},"hotjar":{"hjid":"3749326","hjsv":"6"},"segment":{"key":"SPDgvdM9OoZSCirKWUQj58GrrjBEzOoE"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"honeydew","hasAudioNarration":false,"actualSubdomain":"honeydew","customDomains":["honeydew.ai"],"gitSource":{"type":"github","owner":"honeydew-ai","repo":"docs","deployBranch":"main","contentDirectory":"content","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeb09fbe84fb046db8b74d1","collectionId":"bd93d249-2ab8-4a00-9172-b288e5de6540","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeb09fbe84fb046db8b74d1"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6aeb09fbe84fb046db8b74d1","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Integrations","count":48},{"language":"default","tag":"Modeling Reference","count":30},{"language":"default","tag":"BI Tools","count":19},{"language":"default","tag":"Management","count":17},{"language":"default","tag":"Security","count":11},{"language":"default","tag":"Recipes","count":10},{"language":"default","tag":"Advanced Modeling","count":8},{"language":"default","tag":"Authentication","count":7},{"language":"default","tag":"Governance","count":7},{"language":"default","tag":"Context Layer","count":7}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"integration/etl-tools/pipeline-architecture","slug":"/integration/etl-tools/pipeline-architecture","pageMetadata":{"title":"Data Pipeline Architecture","description":null,"href":"/integration/etl-tools/pipeline-architecture"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`honeydew-managed-pipelines`,children:`Honeydew Managed Pipelines`}),`\n`,_jsx(_components.p,{children:`Honeydew is a repository of shared business logic such as standard metrics and entity definitions.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-1.png?fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=6f6be79df7cec68fd4a6c0cfe686e2c4`,alt:`Data Pipeline Architecture`,\"data-og-width\":`5673`,width:`5673`,\"data-og-height\":`614`,height:`614`,\"data-path\":`images/data-pipeline-1.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-1.png?w=280\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=fbff45dd7f1969f0ff9fa328894af12a 280w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-1.png?w=560\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=e34db27f17bda417a2073e4b3e10b1d0 560w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-1.png?w=840\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=575a44969f4c917df7d00654498c939e 840w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-1.png?w=1100\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=54297ae96785c29e4a7536bdf764c1de 1100w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-1.png?w=1650\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=12226bc7621f70d5f44a023737d59a3f 1650w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-1.png?w=2500\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=807e290c179409ced7dea849301794e1 2500w`}),`\n`,_jsxs(_components.p,{children:[`Honeydew integrates with `,_jsx(_components.a,{href:`/integration/etl-tools/dbt`,children:`dbt`}),` to allow an end-to-end analytics pipeline.`]}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:`Honeydew enables any user tool to consume standard metrics and entities. When a tool like Tableau sends a query, Honeydew transforms it on-the-fly to the right set of JOINs and aggregations based on a shared data model definition.`}),_jsx(_components.p,{children:`By integrating Honeydew and dbt, you can create a single source of truth from ingestion to Snowflake tables to BI that is based on the same standard definitions.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`pipeline-stages`,children:`Pipeline Stages`}),`\n`,_jsx(_components.p,{children:`A typical data pipeline of Honeydew with Snowflake and dbt consists of the following stages:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Ingestion:`}),` Bringing raw data into Snowflake. Usually, with a tool such as Fivetran or similar.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Staging`}),`: An incremental periodic process that transforms raw data into analytic-ready granular data. The following transformations are typically performed at this stage:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Data cleanups, normalization, deduplication`}),`\n`,_jsx(_components.li,{children:`Data merging, change data capture deconstruction`}),`\n`,_jsx(_components.li,{children:`Dimensional modeling, incremental updates`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Implemented using dbt or other transformation tools. Executed by an orchestrator (dbt Cloud, Airflow, etc.) based on a period (i.e. hourly) or change triggers.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Entity Layer (Data Mart)`}),`: A periodic process that transforms granular data into a domain data mart with business entities, metrics and aggregated datasets.`]}),`\n`,_jsx(_components.p,{children:`The following transformations are typically performed at this stage:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Business Entities: Extend granular data with logic properties, such as`,`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Calculated columns (build an “Age Group” category out of “date of birth”)`}),`\n`,_jsx(_components.li,{children:`Aggregated properties (first order data, total revenue per customer, etc.)`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`Metric Datasets: Build datasets such as:`,`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Aggregated tables (“Monthly KPIs”)`}),`\n`,_jsx(_components.li,{children:`Denormalized fact tables`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Both are implemented using Honeydew metrics and can be materialized in Snowflake by Honeydew.`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`For materialization, Honeydew can leverage your dbt pipeline by creating Honeydew-managed dbt models, in the same dbt repository as your staging models.`})}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-2.png?fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=ebd46bf60eab6d0eefa2bb9bd84a25ed`,alt:`Data Pipeline Details`,\"data-og-width\":`4625`,width:`4625`,\"data-og-height\":`1814`,height:`1814`,\"data-path\":`images/data-pipeline-2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-2.png?w=280\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=3caa6bd5a95dca789801dc5c64b13079 280w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-2.png?w=560\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=35d66c739e27aca44d58278f393ff6ed 560w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-2.png?w=840\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=e5a4ccdedd8d78bb17659b8e09ff5819 840w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=1e2b5ac089a75a969e9b5a1f9851086a 1100w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=e74049b92370be40558346c19a70702b 1650w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=28611234df63e91986c8102812c2933c 2500w`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Metric Layer:`}),` On-the fly transformation of user queries to JOINs and aggregations over entity tables using standard metrics like “Revenue” or “Active Customer Count”.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`example`,children:`Example`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ingestion`}),`: raw customer tables and raw order events are loaded into Snowflake.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Staging`}),`: dbt models that transform those into two tables:`,`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`dim_customers`}),`: A customer dimension table, with a row per known customer. Dbt preparation includes clean-up and merging from raw data.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`fact_orders`}),`: An incremental model, with a row per unique order event. Dbt preparation includes handling backfilling and time stamp conversion.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Data Mart:`}),` Honeydew-managed models:`,`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Entity models, such as `,_jsx(_components.code,{children:`customers`}),`: A customer entity table. Includes additional properties:`,`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`“Age Group” - a CASE WHEN that maps ages to categories`}),`\n`,_jsx(_components.li,{children:`“First Order Data” - an aggregation of order facts that finds first order`}),`\n`,_jsxs(_components.li,{children:[`“Lifetime Revenue” - the `,_jsx(_components.code,{children:`revenue`}),` standard metric by customer`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`Dataset models, such as `,_jsx(_components.code,{children:`monthly_kpis`}),`: An aggregated table:`,`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`“Order Month” - based on order timestamp`}),`\n`,_jsxs(_components.li,{children:[`“Monthly Revenue” - the `,_jsx(_components.code,{children:`revenue`}),` standard metric by order month`]}),`\n`,_jsx(_components.li,{children:`“Monthly # Customers” - a count of customers active in a month`}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-3.png?fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=63458d815f4218a57341838e308ef729`,alt:`Data Pipeline Example`,\"data-og-width\":`4625`,width:`4625`,\"data-og-height\":`2453`,height:`2453`,\"data-path\":`images/data-pipeline-3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-3.png?w=280\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=16fa1d5d45233be0cb18e869511e6acb 280w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-3.png?w=560\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=724dc0122c779a9b256db20b08ae25d6 560w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-3.png?w=840\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=c10d607b0b224906bafa825646be589e 840w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=e6ff0d9d669058bedb9a8a6cb0ada464 1100w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=a5a61d0cd5ce49c911592d4eed06d0d6 1650w, https://mintcdn.com/honeydew/YIHua7Tb-EdKa7vx/images/data-pipeline-3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=YIHua7Tb-EdKa7vx\u0026q=85\u0026s=d4bda5e1ed250c41b875540d77fe8fee 2500w`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Data Pipeline Architecture","description":null,"href":"/integration/etl-tools/pipeline-architecture"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Honeydew Managed Pipelines","slug":"honeydew-managed-pipelines","depth":2,"children":[]},{"title":"Pipeline Stages","slug":"pipeline-stages","depth":2,"children":[{"title":"Example","slug":"example","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/honeydew/82b3c90683bc6a9d/script.js"],"subdomain":"honeydew","siteName":"Honeydew Documentation","title":"Data Pipeline Architecture - Honeydew Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T12:57:31.452Z","originalFileLocation":"integration/etl-tools/pipeline-architecture.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Honeydew Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Data Pipeline Architecture - Honeydew Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Honeydew Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://honeydew.ai/docs/integration/etl-tools/pipeline-architecture\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://honeydew.mintlify.app/_mintlify/api/og/v2?division=ELT+Tools\u0026amp;title=Data+Pipeline+Architecture\u0026amp;theme=0b845200c1ca80fd78144b6a\u0026amp;signature=780a590d26dcbec1e48e8ed760086b28351071fea7957ae1f7445c307af9fd52\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Data Pipeline Architecture - Honeydew Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://honeydew.mintlify.app/_mintlify/api/og/v2?division=ELT+Tools\u0026amp;title=Data+Pipeline+Architecture\u0026amp;theme=0b845200c1ca80fd78144b6a\u0026amp;signature=780a590d26dcbec1e48e8ed760086b28351071fea7957ae1f7445c307af9fd52\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Honeydew Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#abcb1a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://honeydew.ai/docs/integration/etl-tools/pipeline-architecture\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/integration/etl-tools/pipeline-architecture.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://honeydew.ai/#organization\",\"name\":\"Honeydew Documentation\",\"url\":\"https://honeydew.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/honeydew/FY_ZgBcPUZJ2-No3/logo/logo.svg?fit=max\u0026auto=format\u0026n=FY_ZgBcPUZJ2-No3\u0026q=85\u0026s=10dbf238c7bdb5bb1ee94e85eea8049f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://honeydew.ai/docs#website\",\"name\":\"Honeydew Documentation\",\"url\":\"https://honeydew.ai/docs\",\"publisher\":{\"@id\":\"https://honeydew.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://honeydew.ai/docs/integration/etl-tools/pipeline-architecture#webpage\",\"url\":\"https://honeydew.ai/docs/integration/etl-tools/pipeline-architecture\",\"name\":\"Data Pipeline Architecture\",\"dateModified\":\"2026-10-29T12:57:31.452Z\",\"isPartOf\":{\"@id\":\"https://honeydew.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://honeydew.ai/docs/integration/etl-tools/pipeline-architecture#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://honeydew.ai/docs/integration/etl-tools/pipeline-architecture#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://honeydew.ai/docs/integration/mcp\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Pipeline Architecture\",\"item\":\"https://honeydew.ai/docs/integration/etl-tools/pipeline-architecture\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://honeydew.ai/docs/integration/etl-tools/pipeline-architecture#article\",\"headline\":\"Data Pipeline Architecture\",\"name\":\"Data Pipeline Architecture\",\"url\":\"https://honeydew.ai/docs/integration/etl-tools/pipeline-architecture\",\"mainEntityOfPage\":{\"@id\":\"https://honeydew.ai/docs/integration/etl-tools/pipeline-architecture#webpage\"},\"dateModified\":\"2026-10-29T12:57:31.452Z\",\"publisher\":{\"@id\":\"https://honeydew.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://honeydew.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Honeydew Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Honeydew Documentation","nav":{"global":null,"groups":[{"group":"Quick Start","pages":[{"title":"Introduction","href":"/introduction"},{"title":"TPC-H Walkthrough","href":"/tpch-example"},{"title":"Evaluation Process","href":"/evaluation"},{"title":"Initial Setup","href":"/initial-setup"},{"title":"Support","href":"/support"}]},{"group":"Semantic Ecosystem","pages":[{"title":"Apache Ossie (OSI)","href":"/integration/apache-ossie-osi"},{"title":"From SQL to Honeydew","href":"/migration/sql-guide"},{"title":"From DAX to Honeydew","href":"/migration/dax-guide"},{"title":"From Tableau to Honeydew","href":"/migration/tableau-guide"},{"title":"Import Tools","href":"/migration/import-tools"}]},{"group":"Modeling Reference","pages":[{"title":"Architecture","href":"/architecture"},{"title":"Semantic Compiler","href":"/semantic-compiler"},{"group":"Entity Modeling","pages":[{"title":"Entities","href":"/modeling/entities"},{"title":"Source Data","href":"/modeling/source-data"},{"title":"Relations","href":"/modeling/relations"}]},{"title":"Domains","href":"/domains"},{"group":"Calculations","pages":[{"title":"Attributes","href":"/calculations/attributes"},{"title":"Metrics","href":"/calculations/metrics"},{"title":"Filters","href":"/calculations/filters"}]},{"title":"Datasets","href":"/dynamic-datasets"},{"title":"Parameters","href":"/parameters"},{"group":"Advanced Modeling","pages":[{"title":"Order of Filtering","href":"/advanced-modeling/order-of-computation"},{"title":"Multiple Facts and Shared Dimensions","href":"/advanced-modeling/shared-dimensions"},{"title":"Conditional Filtering","href":"/advanced-modeling/conditional-filtering"},{"title":"Multi-Grain Tables","href":"/advanced-modeling/multi-grain-tables"},{"title":"Slowly Changing Dimensions","href":"/advanced-modeling/slowly-changing-dimensions"},{"title":"Time Aware Metrics","href":"/advanced-modeling/time-metrics"},{"title":"Time Spines","href":"/advanced-modeling/time-spines"},{"title":"Handling Fan-Out and Chasm Joins","href":"/advanced-modeling/mixing-granularities"}]},{"group":"Recipes","pages":[{"title":"Overview","href":"/recipes/overview"},{"title":"How much revenue comes from a specific category?","sidebarTitle":"Metric for a specific category","href":"/recipes/category-revenue"},{"title":"What share of revenue comes from a specific category?","sidebarTitle":"Category share of total","href":"/recipes/category-revenue-share"},{"title":"Are our customers coming back?","sidebarTitle":"Active customers \u0026 stickiness","href":"/recipes/active-customers"},{"title":"Are we growing compared to last year?","sidebarTitle":"Period-over-period growth","href":"/recipes/yoy-revenue-growth"},{"title":"Are customers spending more per visit?","sidebarTitle":"Fixed level of detail metric","href":"/recipes/avg-order-value"},{"title":"What fraction of orders exceed a revenue threshold?","sidebarTitle":"Share above a threshold","href":"/recipes/high-value-order-share"},{"title":"Which truck has the most consistent daily sales?","sidebarTitle":"Average per day","href":"/recipes/avg-daily-revenue"},{"title":"Can one metric show different numbers to different teams?","sidebarTitle":"BI parameters","href":"/recipes/dynamic-bi-parameters"},{"title":"How do I give different teams their own governed view of the data?","sidebarTitle":"Domain hierarchy","href":"/recipes/domain-hierarchy"}]},{"title":"YAML Schema","href":"/yaml-schema"}]},{"group":"Context Layer","pages":[{"title":"Overview","href":"/integration/context-layer/overview"},{"title":"Deep Analysis","href":"/integration/context-layer/deep-analysis"},{"title":"Agents","href":"/integration/context-layer/agents"},{"title":"Context Management","href":"/integration/context-layer/context-management"},{"title":"AI Metadata","href":"/integration/context-layer/ai-metadata"},{"title":"Building with AI","href":"/integration/context-layer/building-with-ai"},{"title":"YAML Schema","href":"/integration/context-layer/yaml-schema"}]},{"group":"Management","pages":[{"group":"Performance","pages":[{"title":"Overview","href":"/performance/overview"},{"title":"Aggregate Aware Caching","href":"/performance/aggregate-awareness"},{"title":"Incremental Aggregate Updates","href":"/performance/aggregate-incremental-updates"},{"title":"Entity Caching","href":"/performance/entity-caching"},{"title":"Filtering and Sampling","href":"/performance/filtering-and-sampling"}]},{"group":"Governance","pages":[{"title":"Metadata","href":"/governance/metadata"},{"title":"Git Version Control","href":"/governance/git-version-control"},{"title":"Change Approval","href":"/governance/change-approval"},{"group":"CI/CD Workflow","pages":[{"title":"Overview","href":"/governance/ci-cd/overview"},{"title":"GitHub Actions","icon":"github","href":"/governance/ci-cd/github-actions"}]},{"title":"Workspaces","href":"/governance/workspaces"},{"title":"Environments","href":"/governance/environments"}]},{"group":"Monitoring","pages":[{"title":"Query history","href":"/monitoring/query-history"},{"title":"Question history","href":"/monitoring/question-history"},{"title":"Chat history","href":"/monitoring/chat-history"}]},{"title":"User Access Control","href":"/access-control/user-access-control"},{"title":"Row-Level Security","href":"/security/row-level-security"}]},{"group":"Integrations","pages":[{"title":"MCP Server","href":"/integration/mcp"},{"group":"Interfaces","pages":[{"title":"SQL Interface","href":"/integration/sql-interface"},{"title":"GraphQL API","href":"/integration/graphql-api"},{"title":"XMLA Interface","href":"/integration/xmla-interface"},{"title":"Snowflake Native App","icon":"snowflake","href":"/integration/snowflake-native-app"}]},{"group":"AI","pages":[{"title":"Slack App","icon":"slack","href":"/integration/context-layer/slack-app"},{"title":"Microsoft Teams App","icon":"microsoft","href":"/integration/context-layer/teams-app"},{"title":"Build an Embedded AI Analyst UI","sidebarTitle":"Embedded UI","href":"/integration/context-layer/embedded-ui"},{"title":"Streamlit","href":"/integration/context-layer/streamlit"},{"title":"LLM Providers","href":"/integration/context-layer/llm-providers"}]},{"group":"BI Tools","pages":[{"title":"Supported Tools","href":"/integration/bi-tools/supported-tools"},{"title":"Power BI","href":"/integration/bi-tools/powerbi"},{"title":"Excel","href":"/integration/bi-tools/excel"},{"title":"Tableau","href":"/integration/bi-tools/tableau"},{"title":"Looker","href":"/integration/bi-tools/looker"},{"title":"ThoughtSpot","href":"/integration/bi-tools/thoughtspot"},{"title":"Databricks","href":"/integration/bi-tools/databricks"},{"title":"Sigma","href":"/integration/bi-tools/sigma"},{"title":"Domo","href":"/integration/bi-tools/domo"},{"title":"Qlik","href":"/integration/bi-tools/qlik"},{"title":"Amazon Quick","href":"/integration/bi-tools/amazon-quick"},{"title":"Hex","href":"/integration/bi-tools/hex"},{"title":"Deepnote","href":"/integration/bi-tools/deepnote"},{"title":"Superset/Preset","href":"/integration/bi-tools/superset-preset"},{"title":"Metabase","href":"/integration/bi-tools/metabase"},{"title":"Mode Analytics","href":"/integration/bi-tools/mode"},{"title":"Lightdash","href":"/integration/bi-tools/lightdash"},{"title":"Holistics","href":"/integration/bi-tools/holistics"},{"title":"Redash","href":"/integration/bi-tools/redash"}]},{"group":"Catalogs","pages":[{"title":"Data Catalogs","href":"/integration/catalogs/supported-tools"},{"title":"Atlan","href":"/integration/catalogs/atlan"},{"title":"Collibra","href":"/integration/catalogs/collibra"},{"title":"DataHub","href":"/integration/catalogs/datahub"}]},{"group":"Observability","pages":[{"title":"OpenTelemetry","href":"/integration/observability/opentelemetry"}]},{"group":"SQL Clients","pages":[{"title":"Retool","href":"/integration/bi-tools/retool"},{"title":"Database Tools \u0026 IDEs","href":"/integration/bi-tools/sql-tools-ides"},{"title":"Jupyter","href":"/integration/bi-tools/jupyter"},{"title":"Python","href":"/integration/bi-tools/python"},{"title":"JavaScript","href":"/integration/bi-tools/javascript"}]},{"group":"Data Sources","pages":[{"title":"Snowflake","icon":"snowflake","href":"/integration/data-sources/snowflake"},{"title":"Databricks","href":"/integration/data-sources/databricks"},{"title":"Google BigQuery","icon":"google","href":"/integration/data-sources/bigquery"}]},{"group":"Git","pages":[{"title":"GitHub","icon":"github","href":"/integration/git/github"},{"title":"GitLab","icon":"gitlab","href":"/integration/git/gitlab"},{"title":"Bitbucket","icon":"bitbucket","href":"/integration/git/bitbucket"},{"title":"Azure DevOps","icon":"microsoft","description":null,"href":"/integration/git/azure-devops"}]},{"group":"ELT Tools","pages":[{"title":"Data Pipeline Architecture","href":"/integration/etl-tools/pipeline-architecture"},{"title":"dbt","description":null,"href":"/integration/etl-tools/dbt"}]}]},{"group":"Security","pages":[{"title":"Security \u0026 Compliance","href":"/security/security"},{"title":"API Keys","href":"/access-control/api-keys"},{"group":"Authentication","pages":[{"title":"Single Sign-On (SSO)","href":"/access-control/sso"},{"title":"Okta SSO Integration (OIDC)","href":"/access-control/okta"},{"title":"Microsoft Entra ID (formerly Azure Active Directory)","href":"/access-control/entra-id"},{"title":"PingIdentity SSO Integration (SAML)","href":"/access-control/ping-identity"},{"title":"OIDC Provider SSO Integration","href":"/access-control/oidc-provider"},{"title":"SAML Provider SSO Integration","href":"/access-control/saml-provider"},{"title":"Windows Authentication (Kerberos)","href":"/access-control/windows-authentication"}]},{"title":"IP Access Control","href":"/access-control/ip-access-control"},{"title":"Vulnerability Disclosure Policy","href":"/security/vulnerability-disclosure-policy"}]},{"group":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes"}]}]},"basePath":"","title":"Data Pipeline Architecture - Honeydew Documentation","buildId":"dpl_9yaRmq8qi7yyMZn9oEWmKEdYMvGZ","deploymentId":"dpl_9yaRmq8qi7yyMZn9oEWmKEdYMvGZ","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-BB8grMv9.js","lightbox-handle-r17bVUz3.js"]}