Files
talk-to-data-case-study/architecture_dag.md
@gabriel.pereira 9e9ae249bc docs: add talk-to-data case study
Add anonymized architecture, governance examples, diagrams, and interview materials.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-11 10:36:16 -03:00

2.1 KiB

Quotation Semantic Layer - Data Flow DAG

SAP Source -> Snowflake -> dbt Transforms -> Semantic Views -> Cortex -> Chatbot Output

graph LR SAP["🗄️ SAP ERP System
(Sales & Discount Data)"]

EXT["📥 Snowflake<br/>External Stage"]

RAW["raw.quotations<br/>raw.discount_conditions"]

STG["STAGING Layer<br/>stg_quotes<br/>stg_discount_conditions<br/>stg_product_master"]

TRF["TRANSFORM Layer<br/>trf_quotation<br/>trf_chatbot_quotation"]

DIM["Reference Dimensions<br/>dim_customer_discount_policy<br/>dim_product_portfolio<br/>fct_agreement_discounts"]

SEMA["SEMANTIC LAYER<br/>sv_quotation<br/>sv_chatbot_quotation"]

CORTEX["Cortex Analytics<br/>Guardrails & Information Protection<br/>Access Control<br/>Freshness Contract"]

UI["Snowflake UI<br/>(BI Dashboard)"]
CHAT["🤖 Internal Workspace<br/>(Chatbot)"]

SAP -->|Daily Batch 05:00 UTC| EXT
EXT -->|Load| RAW

RAW -->|Column mapping<br/>Type casting| STG

STG -->|Join dimensions<br/>Calculate discounts<br/>Apply governance flags| TRF
DIM -->|Enrich with policies| TRF

TRF -->|Expose semantic<br/>business logic<br/>Hide implementation| SEMA

SEMA -->|Apply guardrails<br/>Protect sensitive information<br/>Enforce freshness| CORTEX

CORTEX -->|Query & Visualize| UI
CORTEX -->|LLM consumption<br/>Prompt engineering layer| CHAT

CHAT -->|<1 min<br/>Quote Answers| USER["👤 Sales & Ops<br/>Team"]
UI -->|Dashboard<br/>Reporting| OPS["📊 Operations<br/>Team"]

SEMA -.->|Data Contract<br/>Lineage| AUDIT["🔒 Audit & Compliance<br/>- Access logs<br/>- Policy changes<br/>- Exception escalations"]

style SAP fill:#d4a574
style CORTEX fill:#ff9999
style SEMA fill:#99ccff
style CHAT fill:#99ff99
style USER fill:#ffcc99
style AUDIT fill:#cc99ff

classDef layer_raw fill:#e1e4e8 classDef layer_stg fill:#d0d7de classDef layer_trf fill:#adb8c1 classDef layer_sema fill:#6e7681

class RAW layer_raw class STG layer_stg class TRF layer_trf class SEMA layer_sema