@duckcodeailabs/dql-cli 0.7.1 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/args.js +1 -1
  2. package/dist/args.js.map +1 -1
  3. package/dist/args.test.js +3 -3
  4. package/dist/args.test.js.map +1 -1
  5. package/dist/assets/dql-notebook/assets/index-BZV40eAE.css +1 -0
  6. package/dist/assets/dql-notebook/assets/index-BsWoK_RX.js +532 -0
  7. package/dist/assets/dql-notebook/index.html +2 -1
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +107 -90
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/init.test.js +8 -10
  12. package/dist/commands/init.test.js.map +1 -1
  13. package/dist/commands/new.test.js +8 -8
  14. package/dist/commands/new.test.js.map +1 -1
  15. package/dist/index.js +1 -2
  16. package/dist/index.js.map +1 -1
  17. package/dist/package.json +7 -7
  18. package/package.json +15 -14
  19. package/LICENSE +0 -123
  20. package/dist/assets/dql-notebook/assets/index-BwgX4Mvs.js +0 -510
  21. package/dist/assets/templates/dashboard/README.md +0 -30
  22. package/dist/assets/templates/dashboard/blocks/.gitkeep +0 -1
  23. package/dist/assets/templates/dashboard/dashboards/pipeline_overview.dql +0 -23
  24. package/dist/assets/templates/dashboard/data/pipeline.csv +0 -7
  25. package/dist/assets/templates/dashboard/dql.config.json +0 -18
  26. package/dist/assets/templates/dashboard/semantic-layer/.gitkeep +0 -1
  27. package/dist/assets/templates/dql.config.reference.json +0 -154
  28. package/dist/assets/templates/duckdb-local/README.md +0 -30
  29. package/dist/assets/templates/duckdb-local/blocks/orders_by_region.dql +0 -24
  30. package/dist/assets/templates/duckdb-local/data/orders.csv +0 -7
  31. package/dist/assets/templates/duckdb-local/dql.config.json +0 -18
  32. package/dist/assets/templates/duckdb-local/semantic-layer/.gitkeep +0 -1
  33. package/dist/assets/templates/ecommerce/README.md +0 -33
  34. package/dist/assets/templates/ecommerce/blocks/repeat_rate.dql +0 -26
  35. package/dist/assets/templates/ecommerce/blocks/revenue_by_segment.dql +0 -24
  36. package/dist/assets/templates/ecommerce/dashboards/revenue_command_center.dql +0 -25
  37. package/dist/assets/templates/ecommerce/data/customers.csv +0 -11
  38. package/dist/assets/templates/ecommerce/data/funnel.csv +0 -6
  39. package/dist/assets/templates/ecommerce/data/orders.csv +0 -16
  40. package/dist/assets/templates/ecommerce/dql.config.json +0 -18
  41. package/dist/assets/templates/ecommerce/semantic-layer/cubes/customers_cube.yaml +0 -49
  42. package/dist/assets/templates/ecommerce/semantic-layer/cubes/orders_cube.yaml +0 -70
  43. package/dist/assets/templates/ecommerce/semantic-layer/dimensions/channel.yaml +0 -8
  44. package/dist/assets/templates/ecommerce/semantic-layer/dimensions/order_date.yaml +0 -9
  45. package/dist/assets/templates/ecommerce/semantic-layer/dimensions/region.yaml +0 -9
  46. package/dist/assets/templates/ecommerce/semantic-layer/dimensions/segment.yaml +0 -8
  47. package/dist/assets/templates/ecommerce/semantic-layer/hierarchies/customer_geo.yaml +0 -18
  48. package/dist/assets/templates/ecommerce/semantic-layer/metrics/avg_order_value.yaml +0 -10
  49. package/dist/assets/templates/ecommerce/semantic-layer/metrics/gmv.yaml +0 -10
  50. package/dist/assets/templates/ecommerce/semantic-layer/metrics/gross_margin.yaml +0 -10
  51. package/dist/assets/templates/ecommerce/semantic-layer/metrics/order_count.yaml +0 -10
  52. package/dist/assets/templates/ecommerce/workbooks/.gitkeep +0 -1
  53. package/dist/assets/templates/finance-kpi/README.md +0 -31
  54. package/dist/assets/templates/finance-kpi/blocks/arr_kpi.dql +0 -21
  55. package/dist/assets/templates/finance-kpi/data/revenue.csv +0 -7
  56. package/dist/assets/templates/finance-kpi/dql.config.json +0 -18
  57. package/dist/assets/templates/finance-kpi/semantic-layer/.gitkeep +0 -1
  58. package/dist/assets/templates/saas/README.md +0 -32
  59. package/dist/assets/templates/saas/blocks/churn_pressure.dql +0 -25
  60. package/dist/assets/templates/saas/blocks/revenue_by_segment.dql +0 -25
  61. package/dist/assets/templates/saas/dashboards/growth_scorecard.dql +0 -25
  62. package/dist/assets/templates/saas/data/cohorts.csv +0 -7
  63. package/dist/assets/templates/saas/data/subscriptions.csv +0 -13
  64. package/dist/assets/templates/saas/dql.config.json +0 -18
  65. package/dist/assets/templates/saas/semantic-layer/dimensions/owner_segment.yaml +0 -8
  66. package/dist/assets/templates/saas/semantic-layer/dimensions/plan_tier.yaml +0 -8
  67. package/dist/assets/templates/saas/semantic-layer/dimensions/risk_bucket.yaml +0 -9
  68. package/dist/assets/templates/saas/semantic-layer/dimensions/status.yaml +0 -8
  69. package/dist/assets/templates/saas/semantic-layer/hierarchies/account_segments.yaml +0 -18
  70. package/dist/assets/templates/saas/semantic-layer/metrics/account_count.yaml +0 -10
  71. package/dist/assets/templates/saas/semantic-layer/metrics/expansion_mrr.yaml +0 -11
  72. package/dist/assets/templates/saas/semantic-layer/metrics/mrr.yaml +0 -10
  73. package/dist/assets/templates/saas/workbooks/.gitkeep +0 -1
  74. package/dist/assets/templates/starter/README.md +0 -48
  75. package/dist/assets/templates/starter/blocks/revenue_by_segment.dql +0 -29
  76. package/dist/assets/templates/starter/blocks/revenue_trend_query_only.dql +0 -20
  77. package/dist/assets/templates/starter/dashboards/.gitkeep +0 -1
  78. package/dist/assets/templates/starter/data/revenue.csv +0 -13
  79. package/dist/assets/templates/starter/dql.config.json +0 -18
  80. package/dist/assets/templates/starter/notebooks/semantic_layer_tutorial.dqlnb +0 -60
  81. package/dist/assets/templates/starter/semantic-layer/blocks/revenue_by_segment.yaml +0 -11
  82. package/dist/assets/templates/starter/semantic-layer/cubes/revenue_cube.yaml +0 -77
  83. package/dist/assets/templates/starter/semantic-layer/dimensions/segment_tier.yaml +0 -6
  84. package/dist/assets/templates/starter/semantic-layer/hierarchies/revenue_time.yaml +0 -12
  85. package/dist/assets/templates/starter/semantic-layer/metrics/revenue.yaml +0 -7
  86. package/dist/assets/templates/starter/workbooks/.gitkeep +0 -1
  87. package/dist/assets/templates/taxi/README.md +0 -31
  88. package/dist/assets/templates/taxi/blocks/airport_mix.dql +0 -25
  89. package/dist/assets/templates/taxi/blocks/revenue_by_segment.dql +0 -24
  90. package/dist/assets/templates/taxi/dashboards/city_operations.dql +0 -25
  91. package/dist/assets/templates/taxi/data/trips.csv +0 -13
  92. package/dist/assets/templates/taxi/dql.config.json +0 -18
  93. package/dist/assets/templates/taxi/semantic-layer/.gitkeep +0 -1
  94. package/dist/assets/templates/taxi/semantic-layer/dimensions/airport_flag.yaml +0 -8
  95. package/dist/assets/templates/taxi/semantic-layer/dimensions/dropoff_borough.yaml +0 -9
  96. package/dist/assets/templates/taxi/semantic-layer/dimensions/payment_type.yaml +0 -8
  97. package/dist/assets/templates/taxi/semantic-layer/dimensions/pickup_borough.yaml +0 -9
  98. package/dist/assets/templates/taxi/semantic-layer/dimensions/pickup_date.yaml +0 -9
  99. package/dist/assets/templates/taxi/semantic-layer/hierarchies/trip_route.yaml +0 -14
  100. package/dist/assets/templates/taxi/semantic-layer/metrics/avg_trip_miles.yaml +0 -10
  101. package/dist/assets/templates/taxi/semantic-layer/metrics/total_fare.yaml +0 -10
  102. package/dist/assets/templates/taxi/semantic-layer/metrics/total_tips.yaml +0 -10
  103. package/dist/assets/templates/taxi/semantic-layer/metrics/trip_count.yaml +0 -10
  104. package/dist/assets/templates/taxi/workbooks/.gitkeep +0 -1
  105. package/dist/assets/templates/workbook/README.md +0 -30
  106. package/dist/assets/templates/workbook/blocks/.gitkeep +0 -1
  107. package/dist/assets/templates/workbook/data/finance.csv +0 -7
  108. package/dist/assets/templates/workbook/dql.config.json +0 -18
  109. package/dist/assets/templates/workbook/semantic-layer/.gitkeep +0 -1
  110. package/dist/assets/templates/workbook/workbooks/quarterly_business_review.dql +0 -32
@@ -1,30 +0,0 @@
1
- # Dashboard
2
-
3
- Multi-chart dashboard over local CSV data — KPI, bar, and table charts in one file.
4
-
5
- ## Scaffold
6
-
7
- ```bash
8
- dql init my-project --template dashboard
9
- cd my-project
10
- ```
11
-
12
- ## What it demonstrates
13
-
14
- - Dashboard syntax
15
- - KPI, bar, and table charts in one file
16
- - Local file-based preview without warehouse credentials
17
-
18
- ## Run it
19
-
20
- ```bash
21
- dql doctor
22
- dql preview dashboards/pipeline_overview.dql --open
23
- ```
24
-
25
- ## Build it
26
-
27
- ```bash
28
- dql build dashboards/pipeline_overview.dql
29
- dql serve dist/pipeline_overview --open
30
- ```
@@ -1,23 +0,0 @@
1
- dashboard "Pipeline Overview" {
2
- chart.kpi(
3
- SELECT SUM(amount) AS total_pipeline FROM read_csv_auto('./data/pipeline.csv'),
4
- metrics = ["total_pipeline"],
5
- title = "Open Pipeline"
6
- )
7
-
8
- chart.bar(
9
- SELECT stage, SUM(amount) AS pipeline_amount
10
- FROM read_csv_auto('./data/pipeline.csv')
11
- GROUP BY stage,
12
- x = stage,
13
- y = pipeline_amount,
14
- title = "Pipeline by Stage"
15
- )
16
-
17
- chart.table(
18
- SELECT rep_name, region, stage, amount, close_month
19
- FROM read_csv_auto('./data/pipeline.csv')
20
- ORDER BY amount DESC,
21
- title = "Top Opportunities"
22
- )
23
- }
@@ -1,7 +0,0 @@
1
- rep_name,region,stage,amount,close_month
2
- Ava,North America,Qualified,42000,2026-04
3
- Ava,North America,Proposal,76000,2026-05
4
- Leo,EMEA,Qualified,52000,2026-04
5
- Mina,APAC,Negotiation,68000,2026-05
6
- Omar,EMEA,Proposal,47000,2026-06
7
- Sara,North America,Negotiation,83000,2026-06
@@ -1,18 +0,0 @@
1
- {
2
- "project": "__PROJECT_NAME__",
3
- "defaultConnection": {
4
- "driver": "file",
5
- "filepath": ":memory:"
6
- },
7
- "dataDir": "./data",
8
-
9
- "semanticLayer": {
10
- "provider": "dql"
11
- },
12
-
13
- "preview": {
14
- "port": 3474,
15
- "open": true,
16
- "theme": "dark"
17
- }
18
- }
@@ -1,154 +0,0 @@
1
- {
2
- "_comment": "DQL Config Reference — copy sections you need into your dql.config.json",
3
-
4
- "project": "my-project-name",
5
-
6
- "_comment_connections": "=== CONNECTION OPTIONS ===",
7
-
8
- "_option_1_duckdb_memory": {
9
- "defaultConnection": {
10
- "driver": "file",
11
- "filepath": ":memory:"
12
- }
13
- },
14
-
15
- "_option_2_duckdb_file": {
16
- "defaultConnection": {
17
- "driver": "duckdb",
18
- "filepath": "./data/warehouse.duckdb"
19
- }
20
- },
21
-
22
- "_option_3_snowflake": {
23
- "defaultConnection": {
24
- "driver": "snowflake",
25
- "account": "your-account.snowflakecomputing.com",
26
- "username": "your_user",
27
- "password": "${SNOWFLAKE_PASSWORD}",
28
- "database": "ANALYTICS",
29
- "schema": "PUBLIC",
30
- "warehouse": "COMPUTE_WH",
31
- "role": "ANALYST"
32
- }
33
- },
34
-
35
- "_option_4_bigquery": {
36
- "defaultConnection": {
37
- "driver": "bigquery",
38
- "project": "your-gcp-project-id",
39
- "dataset": "analytics",
40
- "keyFilename": "./service-account.json"
41
- }
42
- },
43
-
44
- "_option_5_postgres": {
45
- "defaultConnection": {
46
- "driver": "postgres",
47
- "host": "localhost",
48
- "port": 5432,
49
- "database": "analytics",
50
- "username": "your_user",
51
- "password": "${POSTGRES_PASSWORD}"
52
- }
53
- },
54
-
55
- "_option_6_sqlite": {
56
- "defaultConnection": {
57
- "driver": "sqlite",
58
- "database": "./data/analytics.sqlite"
59
- }
60
- },
61
-
62
- "_comment_semantic": "=== SEMANTIC LAYER OPTIONS ===",
63
-
64
- "_semantic_option_1_dql_native": {
65
- "semanticLayer": {
66
- "provider": "dql"
67
- },
68
- "_directory_structure": {
69
- "semantic-layer/metrics/": "one YAML file per metric",
70
- "semantic-layer/dimensions/": "one YAML file per dimension",
71
- "semantic-layer/hierarchies/":"one YAML file per hierarchy",
72
- "semantic-layer/cubes/": "one YAML file per cube (groups measures + dimensions + joins)"
73
- }
74
- },
75
-
76
- "_semantic_option_2_dql_custom_path": {
77
- "semanticLayer": {
78
- "provider": "dql",
79
- "path": "./my-definitions"
80
- }
81
- },
82
-
83
- "_semantic_option_3_dbt": {
84
- "semanticLayer": {
85
- "provider": "dbt",
86
- "projectPath": "/absolute/path/to/your/dbt-project"
87
- },
88
- "_notes": {
89
- "how_it_works": "Reads semantic_models and metrics from your dbt models/**/*.yml files",
90
- "requires": "dbt 1.6+ with semantic_models defined in YAML",
91
- "relative_path": "You can also use a relative path: ../my-dbt-repo"
92
- }
93
- },
94
-
95
- "_semantic_option_4_cubejs": {
96
- "semanticLayer": {
97
- "provider": "cubejs",
98
- "projectPath": "/absolute/path/to/your/cube-project"
99
- },
100
- "_notes": {
101
- "how_it_works": "Reads cube definitions from model/ or schema/ directory",
102
- "relative_path": "You can also use a relative path: ../my-cube-project"
103
- }
104
- },
105
-
106
- "_semantic_option_5_dbt_remote_github": {
107
- "semanticLayer": {
108
- "provider": "dbt",
109
- "source": "github",
110
- "repoUrl": "https://github.com/your-org/dbt-metrics.git",
111
- "branch": "main",
112
- "subPath": "models"
113
- },
114
- "_notes": {
115
- "how_it_works": "Clones the remote repo into ~/.dql/cache/repos/ and reads dbt semantic models from it",
116
- "auth": "For private repos, set GITHUB_TOKEN environment variable",
117
- "cache": "Cached for 10 minutes; use 'dql semantic pull' to force refresh"
118
- }
119
- },
120
-
121
- "_semantic_option_6_cubejs_remote_gitlab": {
122
- "semanticLayer": {
123
- "provider": "cubejs",
124
- "source": "gitlab",
125
- "repoUrl": "https://gitlab.com/your-org/cube-schema.git",
126
- "branch": "main",
127
- "subPath": ""
128
- },
129
- "_notes": {
130
- "auth": "For private repos, set GITLAB_TOKEN environment variable"
131
- }
132
- },
133
-
134
- "_semantic_option_7_snowflake": {
135
- "semanticLayer": {
136
- "provider": "snowflake",
137
- "projectPath": "MY_DATABASE"
138
- },
139
- "_notes": {
140
- "how_it_works": "Introspects Snowflake semantic views (SHOW SEMANTIC VIEWS) via the active connection",
141
- "requires": "Snowflake account with semantic views (CREATE SEMANTIC VIEW) and a configured Snowflake connection",
142
- "projectPath_usage": "Optional: filters semantic views to a specific database"
143
- }
144
- },
145
-
146
- "_comment_preview": "=== PREVIEW / NOTEBOOK OPTIONS ===",
147
-
148
- "dataDir": "./data",
149
- "preview": {
150
- "port": 3474,
151
- "open": true,
152
- "theme": "dark"
153
- }
154
- }
@@ -1,30 +0,0 @@
1
- # DuckDB Local
2
-
3
- Local-first analytics using the `duckdb` driver — no warehouse credentials needed.
4
-
5
- ## Scaffold
6
-
7
- ```bash
8
- dql init my-project --template duckdb-local
9
- cd my-project
10
- ```
11
-
12
- ## What it demonstrates
13
-
14
- - DuckDB as the default connection
15
- - Local CSV-backed analytics with DuckDB execution
16
- - Line chart preview and static export
17
-
18
- ## Run it
19
-
20
- ```bash
21
- dql doctor
22
- dql preview blocks/orders_by_region.dql --open
23
- ```
24
-
25
- ## Build it
26
-
27
- ```bash
28
- dql build blocks/orders_by_region.dql
29
- dql serve dist/orders_by_region --open
30
- ```
@@ -1,24 +0,0 @@
1
- block "Orders by Region" {
2
- domain = "sales"
3
- type = "custom"
4
- description = "Local DuckDB-backed revenue trend example"
5
- owner = "dql-example"
6
- tags = ["duckdb", "sales", "local-data"]
7
-
8
- query = """
9
- SELECT order_month, SUM(revenue) AS total_revenue
10
- FROM read_csv_auto('./data/orders.csv')
11
- GROUP BY order_month
12
- ORDER BY order_month
13
- """
14
-
15
- visualization {
16
- chart = "line"
17
- x = order_month
18
- y = total_revenue
19
- }
20
-
21
- tests {
22
- assert row_count > 0
23
- }
24
- }
@@ -1,7 +0,0 @@
1
- order_month,region,revenue,orders
2
- 2026-01,North America,112000,320
3
- 2026-01,EMEA,87000,250
4
- 2026-02,North America,126000,345
5
- 2026-02,EMEA,91000,268
6
- 2026-03,North America,134000,360
7
- 2026-03,EMEA,96000,280
@@ -1,18 +0,0 @@
1
- {
2
- "project": "__PROJECT_NAME__",
3
- "defaultConnection": {
4
- "driver": "duckdb",
5
- "filepath": ":memory:"
6
- },
7
- "dataDir": "./data",
8
-
9
- "semanticLayer": {
10
- "provider": "dql"
11
- },
12
-
13
- "preview": {
14
- "port": 3474,
15
- "open": true,
16
- "theme": "dark"
17
- }
18
- }
@@ -1,33 +0,0 @@
1
- # __PROJECT_NAME__
2
-
3
- This template packages a realistic e-commerce analytics sandbox for DQL. It covers channel revenue analysis, repeat purchase behavior, funnel analysis, and semantic metrics — a complete starting point for commerce analytics.
4
-
5
- ## Included assets
6
-
7
- - `blocks/revenue_by_segment.dql` — channel revenue block
8
- - `blocks/repeat_rate.dql` — repeat purchase mix block
9
- - `dashboards/revenue_command_center.dql` — KPI + bar + table dashboard
10
- - `data/orders.csv` — orders with channel, region, and repeat purchase flags
11
- - `data/funnel.csv` — acquisition and checkout funnel snapshot
12
- - `data/customers.csv` — customer dimension data
13
- - `notebooks/welcome.dqlnb` — browser notebook walkthrough
14
-
15
- ## Quick start
16
-
17
- ```bash
18
- dql doctor
19
- dql notebook
20
- dql preview blocks/revenue_by_segment.dql --open
21
- ```
22
-
23
- ## What to explore
24
-
25
- - Compare performance across paid, partner, organic, and lifecycle channels
26
- - Track repeat order contribution by region and segment
27
- - Use the notebook to iterate on funnel SQL before promoting it into reusable blocks
28
-
29
- ## Next Steps
30
-
31
- - [Authoring Blocks](https://github.com/duckcodeailabs/dql/blob/main/docs/authoring-blocks.md) — promote your notebook queries into certified, reusable `.dql` blocks
32
- - [Semantic Layer Guide](https://github.com/duckcodeailabs/dql/blob/main/docs/semantic-layer-guide.md) — extend the included semantic layer with your own metrics and dimensions
33
- - [Getting Started](https://github.com/duckcodeailabs/dql/blob/main/docs/getting-started.md) — connect to a cloud database or add DQL to an existing repo
@@ -1,26 +0,0 @@
1
- block "Repeat Revenue Mix" {
2
- domain = "commerce"
3
- type = "custom"
4
- description = "Repeat versus first-time order revenue mix"
5
- tags = ["commerce", "retention"]
6
- owner = "template"
7
-
8
- query = """
9
- SELECT
10
- CASE WHEN is_repeat THEN 'Repeat' ELSE 'First Order' END AS order_type,
11
- ROUND(SUM(order_total), 2) AS revenue
12
- FROM read_csv_auto('./data/orders.csv')
13
- GROUP BY order_type
14
- ORDER BY revenue DESC
15
- """
16
-
17
- visualization {
18
- chart = "bar"
19
- x = order_type
20
- y = revenue
21
- }
22
-
23
- tests {
24
- assert row_count > 0
25
- }
26
- }
@@ -1,24 +0,0 @@
1
- block "GMV by Channel" {
2
- domain = "commerce"
3
- type = "custom"
4
- description = "Gross merchandise value by acquisition channel"
5
- tags = ["commerce", "gmv", "channel"]
6
- owner = "template"
7
-
8
- query = """
9
- SELECT channel, ROUND(SUM(order_total), 2) AS revenue
10
- FROM read_csv_auto('./data/orders.csv')
11
- GROUP BY channel
12
- ORDER BY revenue DESC
13
- """
14
-
15
- visualization {
16
- chart = "bar"
17
- x = channel
18
- y = revenue
19
- }
20
-
21
- tests {
22
- assert row_count > 0
23
- }
24
- }
@@ -1,25 +0,0 @@
1
- dashboard "Revenue Command Center" {
2
- chart.kpi(
3
- SELECT ROUND(SUM(order_total), 2) AS gmv
4
- FROM read_csv_auto('./data/orders.csv'),
5
- metrics = ["gmv"],
6
- title = "Gross Merchandise Value"
7
- )
8
-
9
- chart.bar(
10
- SELECT channel, ROUND(SUM(order_total), 2) AS revenue
11
- FROM read_csv_auto('./data/orders.csv')
12
- GROUP BY channel
13
- ORDER BY revenue DESC,
14
- x = channel,
15
- y = revenue,
16
- title = "Revenue by Channel"
17
- )
18
-
19
- chart.table(
20
- SELECT order_date, customer_id, channel, region, order_total, is_repeat
21
- FROM read_csv_auto('./data/orders.csv')
22
- ORDER BY order_total DESC,
23
- title = "Top Orders"
24
- )
25
- }
@@ -1,11 +0,0 @@
1
- customer_id,customer_name,segment,region,acquisition_channel,first_order_date,health_score
2
- C-001,Northstar Health,Enterprise,North America,Paid Search,2025-01-03,92
3
- C-002,Blue Pine Retail,Mid-Market,EMEA,Organic Search,2024-11-19,87
4
- C-003,Maple & Co,SMB,North America,Lifecycle,2024-12-01,79
5
- C-004,Harbor Commerce,Enterprise,APAC,Partner,2025-01-11,90
6
- C-005,Studio Relay,Mid-Market,North America,Paid Social,2025-01-14,74
7
- C-006,Rio Goods,SMB,LATAM,Organic Search,2024-10-08,82
8
- C-007,Vertex Home,Enterprise,North America,Partner,2024-09-22,95
9
- C-008,Atlas Europe,Mid-Market,EMEA,Paid Search,2025-02-02,71
10
- C-009,North Loop,SMB,North America,Organic Search,2025-02-06,77
11
- C-010,Pacific Devices,Enterprise,APAC,Lifecycle,2024-08-12,88
@@ -1,6 +0,0 @@
1
- step,users,conversion_rate,sort_order
2
- Landing Session,18000,1.00,1
3
- Product View,13420,0.75,2
4
- Add to Cart,6280,0.35,3
5
- Checkout Start,3125,0.17,4
6
- Purchase,1543,0.09,5
@@ -1,16 +0,0 @@
1
- order_id,order_date,customer_id,segment,channel,region,order_total,gross_margin,is_repeat,payment_method
2
- 1001,2025-01-03,C-001,Enterprise,Paid Search,North America,12400,0.41,false,Card
3
- 1002,2025-01-05,C-002,Mid-Market,Organic Search,EMEA,8600,0.37,true,Card
4
- 1003,2025-01-08,C-003,SMB,Lifecycle,North America,2400,0.54,true,ACH
5
- 1004,2025-01-11,C-004,Enterprise,Partner,APAC,15200,0.46,false,Wire
6
- 1005,2025-01-14,C-005,Mid-Market,Paid Social,North America,5400,0.35,false,Card
7
- 1006,2025-01-18,C-006,SMB,Organic Search,LATAM,1800,0.51,true,Card
8
- 1007,2025-01-22,C-002,Mid-Market,Lifecycle,EMEA,9200,0.39,true,Card
9
- 1008,2025-01-27,C-007,Enterprise,Partner,North America,17600,0.48,true,Wire
10
- 1009,2025-02-02,C-008,Mid-Market,Paid Search,EMEA,7300,0.36,false,Card
11
- 1010,2025-02-06,C-009,SMB,Organic Search,North America,2100,0.56,false,ACH
12
- 1011,2025-02-10,C-010,Enterprise,Lifecycle,APAC,13800,0.43,true,Card
13
- 1012,2025-02-15,C-011,Mid-Market,Partner,LATAM,6900,0.34,false,Wire
14
- 1013,2025-02-18,C-012,Enterprise,Paid Social,North America,9800,0.38,false,Card
15
- 1014,2025-02-21,C-007,Enterprise,Lifecycle,North America,12100,0.45,true,Wire
16
- 1015,2025-02-25,C-013,SMB,Organic Search,EMEA,1700,0.53,true,Card
@@ -1,18 +0,0 @@
1
- {
2
- "project": "__PROJECT_NAME__",
3
- "defaultConnection": {
4
- "driver": "file",
5
- "filepath": ":memory:"
6
- },
7
- "dataDir": "./data",
8
-
9
- "semanticLayer": {
10
- "provider": "dql"
11
- },
12
-
13
- "preview": {
14
- "port": 3474,
15
- "open": true,
16
- "theme": "dark"
17
- }
18
- }
@@ -1,49 +0,0 @@
1
- # Customers cube — joinable from the orders cube.
2
-
3
- name: customers
4
- label: Customers Cube
5
- description: Customer master data.
6
- table: customers
7
- domain: commerce
8
-
9
- measures:
10
- - name: customer_count
11
- label: Customer Count
12
- sql: COUNT(DISTINCT customer_id)
13
- type: count_distinct
14
- - name: avg_health_score
15
- label: Average Health Score
16
- sql: AVG(health_score)
17
- type: avg
18
-
19
- dimensions:
20
- - name: customer_name
21
- label: Customer Name
22
- sql: customer_name
23
- type: string
24
- - name: segment
25
- label: Segment
26
- sql: segment
27
- type: string
28
- - name: region
29
- label: Region
30
- sql: region
31
- type: string
32
- - name: acquisition_channel
33
- label: Acquisition Channel
34
- sql: acquisition_channel
35
- type: string
36
-
37
- time_dimensions:
38
- - name: first_order_date
39
- label: First Order Date
40
- sql: first_order_date
41
- primary_time: true
42
- granularities:
43
- - month
44
- - quarter
45
- - year
46
-
47
- tags:
48
- - commerce
49
- - customers
@@ -1,70 +0,0 @@
1
- # Multi-table cube with joins — demonstrates cross-table semantic queries.
2
- # This cube joins orders with customers to enable queries like:
3
- # "total GMV by customer health_score and region"
4
-
5
- name: orders
6
- label: Orders Cube
7
- description: E-commerce orders cube with customer join.
8
- table: orders
9
- domain: commerce
10
-
11
- measures:
12
- - name: gmv
13
- label: Gross Merchandise Value
14
- sql: SUM(order_total)
15
- type: sum
16
- - name: order_count
17
- label: Order Count
18
- sql: COUNT(order_id)
19
- type: count
20
- - name: avg_order_value
21
- label: Average Order Value
22
- sql: AVG(order_total)
23
- type: avg
24
- - name: avg_margin
25
- label: Average Margin
26
- sql: AVG(gross_margin)
27
- type: avg
28
-
29
- dimensions:
30
- - name: segment
31
- label: Segment
32
- sql: segment
33
- type: string
34
- - name: channel
35
- label: Channel
36
- sql: channel
37
- type: string
38
- - name: region
39
- label: Region
40
- sql: region
41
- type: string
42
- - name: payment_method
43
- label: Payment Method
44
- sql: payment_method
45
- type: string
46
- - name: is_repeat
47
- label: Repeat Customer
48
- sql: is_repeat
49
- type: boolean
50
-
51
- time_dimensions:
52
- - name: order_date
53
- label: Order Date
54
- sql: order_date
55
- primary_time: true
56
- granularities:
57
- - day
58
- - week
59
- - month
60
- - quarter
61
- - year
62
-
63
- joins:
64
- - name: customers
65
- type: left
66
- sql: "${left}.customer_id = ${right}.customer_id"
67
-
68
- tags:
69
- - commerce
70
- - ecommerce
@@ -1,8 +0,0 @@
1
- name: channel
2
- label: Channel
3
- description: Order acquisition channel.
4
- sql: channel
5
- type: string
6
- table: orders
7
- tags:
8
- - commerce
@@ -1,9 +0,0 @@
1
- name: order_date
2
- label: Order Date
3
- description: Date the order was placed.
4
- sql: order_date
5
- type: date
6
- table: orders
7
- tags:
8
- - commerce
9
- - time
@@ -1,9 +0,0 @@
1
- name: region
2
- label: Region
3
- description: Geographic region of the order.
4
- sql: region
5
- type: string
6
- table: orders
7
- tags:
8
- - commerce
9
- - geo
@@ -1,8 +0,0 @@
1
- name: segment
2
- label: Customer Segment
3
- description: Customer segment (Enterprise, Mid-Market, SMB).
4
- sql: segment
5
- type: string
6
- table: orders
7
- tags:
8
- - commerce
@@ -1,18 +0,0 @@
1
- name: customer_geo
2
- label: Customer Geography
3
- description: Drill from region down to customer segment.
4
- domain: commerce
5
- levels:
6
- - name: region
7
- label: Region
8
- dimension: region
9
- order: 1
10
- - name: segment
11
- label: Segment
12
- dimension: segment
13
- order: 2
14
- - name: channel
15
- label: Channel
16
- dimension: channel
17
- order: 3
18
- defaultRollup: sum