Lineage-graph-accelerator / samples /complex_lineage_demo.json
aamanlamba's picture
Phase 2: Enhanced lineage extraction with export to data catalogs
0510038
{
"title": "E-Commerce Analytics Platform - Complete Data Lineage",
"description": "A comprehensive demonstration of data lineage tracking across an entire e-commerce analytics platform, showcasing multi-source ingestion, transformation layers, and cross-system dependencies.",
"version": "1.0",
"generated_at": "2025-11-20T15:00:00Z",
"lineage_graph": {
"nodes": [
{
"id": "shopify_orders",
"name": "Shopify Orders API",
"type": "source",
"category": "external_api",
"description": "Order data from Shopify e-commerce platform",
"metadata": {
"platform": "Shopify",
"refresh_frequency": "real-time webhook",
"data_volume": "~50K orders/day"
}
},
{
"id": "shopify_products",
"name": "Shopify Products API",
"type": "source",
"category": "external_api"
},
{
"id": "shopify_customers",
"name": "Shopify Customers API",
"type": "source",
"category": "external_api"
},
{
"id": "stripe_payments",
"name": "Stripe Payments",
"type": "source",
"category": "external_api",
"description": "Payment transaction data from Stripe"
},
{
"id": "stripe_subscriptions",
"name": "Stripe Subscriptions",
"type": "source",
"category": "external_api"
},
{
"id": "ga4_events",
"name": "Google Analytics 4",
"type": "source",
"category": "analytics",
"description": "Website behavior and conversion events"
},
{
"id": "fb_ads",
"name": "Facebook Ads",
"type": "source",
"category": "marketing"
},
{
"id": "google_ads",
"name": "Google Ads",
"type": "source",
"category": "marketing"
},
{
"id": "zendesk_tickets",
"name": "Zendesk Support",
"type": "source",
"category": "support",
"description": "Customer support ticket data"
},
{
"id": "raw_orders",
"name": "raw.orders",
"type": "table",
"category": "raw_layer",
"schema": "raw",
"database": "analytics_dw"
},
{
"id": "raw_products",
"name": "raw.products",
"type": "table",
"category": "raw_layer"
},
{
"id": "raw_customers",
"name": "raw.customers",
"type": "table",
"category": "raw_layer"
},
{
"id": "raw_payments",
"name": "raw.payments",
"type": "table",
"category": "raw_layer"
},
{
"id": "raw_subscriptions",
"name": "raw.subscriptions",
"type": "table",
"category": "raw_layer"
},
{
"id": "raw_web_events",
"name": "raw.web_events",
"type": "table",
"category": "raw_layer"
},
{
"id": "raw_ad_spend",
"name": "raw.ad_spend",
"type": "table",
"category": "raw_layer"
},
{
"id": "raw_support_tickets",
"name": "raw.support_tickets",
"type": "table",
"category": "raw_layer"
},
{
"id": "stg_orders",
"name": "staging.stg_orders",
"type": "model",
"category": "staging_layer",
"transformation": "Clean, dedupe, add calculated fields"
},
{
"id": "stg_order_items",
"name": "staging.stg_order_items",
"type": "model",
"category": "staging_layer"
},
{
"id": "stg_products",
"name": "staging.stg_products",
"type": "model",
"category": "staging_layer"
},
{
"id": "stg_customers",
"name": "staging.stg_customers",
"type": "model",
"category": "staging_layer"
},
{
"id": "stg_payments",
"name": "staging.stg_payments",
"type": "model",
"category": "staging_layer"
},
{
"id": "stg_subscriptions",
"name": "staging.stg_subscriptions",
"type": "model",
"category": "staging_layer"
},
{
"id": "stg_web_sessions",
"name": "staging.stg_web_sessions",
"type": "model",
"category": "staging_layer",
"transformation": "Sessionize events, calculate engagement"
},
{
"id": "stg_ad_campaigns",
"name": "staging.stg_ad_campaigns",
"type": "model",
"category": "staging_layer"
},
{
"id": "stg_support_cases",
"name": "staging.stg_support_cases",
"type": "model",
"category": "staging_layer"
},
{
"id": "int_customer_orders",
"name": "intermediate.int_customer_orders",
"type": "model",
"category": "intermediate_layer",
"transformation": "Join customers with order history"
},
{
"id": "int_order_payments",
"name": "intermediate.int_order_payments",
"type": "model",
"category": "intermediate_layer",
"transformation": "Match orders with payments"
},
{
"id": "int_customer_attribution",
"name": "intermediate.int_customer_attribution",
"type": "model",
"category": "intermediate_layer",
"transformation": "Multi-touch attribution model"
},
{
"id": "int_product_performance",
"name": "intermediate.int_product_performance",
"type": "model",
"category": "intermediate_layer"
},
{
"id": "int_customer_support_history",
"name": "intermediate.int_customer_support_history",
"type": "model",
"category": "intermediate_layer"
},
{
"id": "dim_customers",
"name": "marts.dim_customers",
"type": "dimension",
"category": "marts_layer",
"description": "Customer dimension with lifetime metrics",
"grain": "customer"
},
{
"id": "dim_products",
"name": "marts.dim_products",
"type": "dimension",
"category": "marts_layer",
"grain": "product"
},
{
"id": "dim_date",
"name": "marts.dim_date",
"type": "dimension",
"category": "marts_layer",
"grain": "day"
},
{
"id": "fct_orders",
"name": "marts.fct_orders",
"type": "fact",
"category": "marts_layer",
"grain": "order"
},
{
"id": "fct_order_items",
"name": "marts.fct_order_items",
"type": "fact",
"category": "marts_layer",
"grain": "order_item"
},
{
"id": "fct_web_sessions",
"name": "marts.fct_web_sessions",
"type": "fact",
"category": "marts_layer"
},
{
"id": "fct_marketing_spend",
"name": "marts.fct_marketing_spend",
"type": "fact",
"category": "marts_layer"
},
{
"id": "fct_support_tickets",
"name": "marts.fct_support_tickets",
"type": "fact",
"category": "marts_layer"
},
{
"id": "rpt_daily_sales",
"name": "reporting.rpt_daily_sales",
"type": "report",
"category": "reporting_layer",
"description": "Daily sales summary by channel and category"
},
{
"id": "rpt_customer_ltv",
"name": "reporting.rpt_customer_ltv",
"type": "report",
"category": "reporting_layer",
"description": "Customer lifetime value analysis"
},
{
"id": "rpt_marketing_roi",
"name": "reporting.rpt_marketing_roi",
"type": "report",
"category": "reporting_layer",
"description": "Marketing ROI by channel and campaign"
},
{
"id": "rpt_product_analytics",
"name": "reporting.rpt_product_analytics",
"type": "report",
"category": "reporting_layer"
},
{
"id": "rpt_customer_health",
"name": "reporting.rpt_customer_health",
"type": "report",
"category": "reporting_layer",
"description": "Customer health score combining all signals"
},
{
"id": "ml_churn_features",
"name": "features.churn_prediction",
"type": "feature_set",
"category": "ml_features",
"description": "Features for churn prediction model"
},
{
"id": "ml_ltv_features",
"name": "features.ltv_prediction",
"type": "feature_set",
"category": "ml_features"
},
{
"id": "looker_model",
"name": "Looker Semantic Layer",
"type": "semantic_model",
"category": "bi_layer"
},
{
"id": "tableau_extract",
"name": "Tableau Extract",
"type": "extract",
"category": "bi_layer"
},
{
"id": "salesforce_sync",
"name": "Salesforce Account Sync",
"type": "destination",
"category": "reverse_etl"
},
{
"id": "hubspot_sync",
"name": "HubSpot Contact Sync",
"type": "destination",
"category": "reverse_etl"
}
],
"edges": [
{"from": "shopify_orders", "to": "raw_orders", "type": "ingest"},
{"from": "shopify_products", "to": "raw_products", "type": "ingest"},
{"from": "shopify_customers", "to": "raw_customers", "type": "ingest"},
{"from": "stripe_payments", "to": "raw_payments", "type": "ingest"},
{"from": "stripe_subscriptions", "to": "raw_subscriptions", "type": "ingest"},
{"from": "ga4_events", "to": "raw_web_events", "type": "ingest"},
{"from": "fb_ads", "to": "raw_ad_spend", "type": "ingest"},
{"from": "google_ads", "to": "raw_ad_spend", "type": "ingest"},
{"from": "zendesk_tickets", "to": "raw_support_tickets", "type": "ingest"},
{"from": "raw_orders", "to": "stg_orders", "type": "transform"},
{"from": "raw_orders", "to": "stg_order_items", "type": "transform"},
{"from": "raw_products", "to": "stg_products", "type": "transform"},
{"from": "raw_customers", "to": "stg_customers", "type": "transform"},
{"from": "raw_payments", "to": "stg_payments", "type": "transform"},
{"from": "raw_subscriptions", "to": "stg_subscriptions", "type": "transform"},
{"from": "raw_web_events", "to": "stg_web_sessions", "type": "transform"},
{"from": "raw_ad_spend", "to": "stg_ad_campaigns", "type": "transform"},
{"from": "raw_support_tickets", "to": "stg_support_cases", "type": "transform"},
{"from": "stg_customers", "to": "int_customer_orders", "type": "join"},
{"from": "stg_orders", "to": "int_customer_orders", "type": "join"},
{"from": "stg_orders", "to": "int_order_payments", "type": "join"},
{"from": "stg_payments", "to": "int_order_payments", "type": "join"},
{"from": "stg_customers", "to": "int_customer_attribution", "type": "join"},
{"from": "stg_web_sessions", "to": "int_customer_attribution", "type": "join"},
{"from": "stg_ad_campaigns", "to": "int_customer_attribution", "type": "join"},
{"from": "stg_products", "to": "int_product_performance", "type": "join"},
{"from": "stg_order_items", "to": "int_product_performance", "type": "join"},
{"from": "stg_customers", "to": "int_customer_support_history", "type": "join"},
{"from": "stg_support_cases", "to": "int_customer_support_history", "type": "join"},
{"from": "int_customer_orders", "to": "dim_customers", "type": "model"},
{"from": "int_customer_attribution", "to": "dim_customers", "type": "model"},
{"from": "int_customer_support_history", "to": "dim_customers", "type": "model"},
{"from": "stg_products", "to": "dim_products", "type": "model"},
{"from": "int_product_performance", "to": "dim_products", "type": "model"},
{"from": "int_order_payments", "to": "fct_orders", "type": "model"},
{"from": "dim_customers", "to": "fct_orders", "type": "reference"},
{"from": "stg_order_items", "to": "fct_order_items", "type": "model"},
{"from": "dim_products", "to": "fct_order_items", "type": "reference"},
{"from": "fct_orders", "to": "fct_order_items", "type": "reference"},
{"from": "stg_web_sessions", "to": "fct_web_sessions", "type": "model"},
{"from": "dim_customers", "to": "fct_web_sessions", "type": "reference"},
{"from": "stg_ad_campaigns", "to": "fct_marketing_spend", "type": "model"},
{"from": "int_customer_attribution", "to": "fct_marketing_spend", "type": "reference"},
{"from": "stg_support_cases", "to": "fct_support_tickets", "type": "model"},
{"from": "dim_customers", "to": "fct_support_tickets", "type": "reference"},
{"from": "fct_orders", "to": "rpt_daily_sales", "type": "aggregate"},
{"from": "fct_order_items", "to": "rpt_daily_sales", "type": "aggregate"},
{"from": "dim_products", "to": "rpt_daily_sales", "type": "reference"},
{"from": "dim_customers", "to": "rpt_customer_ltv", "type": "aggregate"},
{"from": "fct_orders", "to": "rpt_customer_ltv", "type": "aggregate"},
{"from": "fct_marketing_spend", "to": "rpt_marketing_roi", "type": "aggregate"},
{"from": "fct_orders", "to": "rpt_marketing_roi", "type": "aggregate"},
{"from": "int_customer_attribution", "to": "rpt_marketing_roi", "type": "reference"},
{"from": "dim_products", "to": "rpt_product_analytics", "type": "aggregate"},
{"from": "fct_order_items", "to": "rpt_product_analytics", "type": "aggregate"},
{"from": "dim_customers", "to": "rpt_customer_health", "type": "aggregate"},
{"from": "fct_orders", "to": "rpt_customer_health", "type": "aggregate"},
{"from": "fct_web_sessions", "to": "rpt_customer_health", "type": "aggregate"},
{"from": "fct_support_tickets", "to": "rpt_customer_health", "type": "aggregate"},
{"from": "dim_customers", "to": "ml_churn_features", "type": "export"},
{"from": "fct_orders", "to": "ml_churn_features", "type": "export"},
{"from": "fct_web_sessions", "to": "ml_churn_features", "type": "export"},
{"from": "fct_support_tickets", "to": "ml_churn_features", "type": "export"},
{"from": "dim_customers", "to": "ml_ltv_features", "type": "export"},
{"from": "fct_orders", "to": "ml_ltv_features", "type": "export"},
{"from": "rpt_daily_sales", "to": "looker_model", "type": "publish"},
{"from": "rpt_customer_ltv", "to": "looker_model", "type": "publish"},
{"from": "rpt_marketing_roi", "to": "looker_model", "type": "publish"},
{"from": "rpt_product_analytics", "to": "looker_model", "type": "publish"},
{"from": "rpt_customer_health", "to": "looker_model", "type": "publish"},
{"from": "rpt_daily_sales", "to": "tableau_extract", "type": "export"},
{"from": "rpt_customer_ltv", "to": "salesforce_sync", "type": "reverse_etl"},
{"from": "rpt_customer_health", "to": "salesforce_sync", "type": "reverse_etl"},
{"from": "rpt_customer_ltv", "to": "hubspot_sync", "type": "reverse_etl"}
]
},
"expected_visualization": {
"mermaid": "graph LR\n subgraph Sources\n shopify_orders[Shopify Orders]\n shopify_products[Shopify Products]\n shopify_customers[Shopify Customers]\n stripe_payments[Stripe Payments]\n ga4_events[GA4 Events]\n fb_ads[Facebook Ads]\n zendesk_tickets[Zendesk]\n end\n \n subgraph Raw\n raw_orders[raw.orders]\n raw_products[raw.products]\n raw_customers[raw.customers]\n raw_payments[raw.payments]\n raw_web_events[raw.web_events]\n end\n \n subgraph Staging\n stg_orders[staging.stg_orders]\n stg_customers[staging.stg_customers]\n stg_products[staging.stg_products]\n end\n \n subgraph Marts\n dim_customers[marts.dim_customers]\n dim_products[marts.dim_products]\n fct_orders[marts.fct_orders]\n end\n \n subgraph Reporting\n rpt_daily_sales[reporting.rpt_daily_sales]\n rpt_customer_ltv[reporting.rpt_customer_ltv]\n end\n \n shopify_orders --> raw_orders\n raw_orders --> stg_orders\n stg_orders --> fct_orders\n fct_orders --> rpt_daily_sales"
},
"notes": "This comprehensive demo showcases a real-world e-commerce analytics platform with 50+ nodes and 80+ edges across multiple data layers, from source systems through to BI tools and reverse ETL destinations."
}