bsl-model-builder
使用 Boring Semantic Layer (BSL) 構建、管理與查詢 Ibis 語義數據模型。定義維度、度量、關聯及 YAML 配置,以進行結構化數據分析。
簡介
BSL Model Builder 是一個專業的軟體代理技能,旨在協助數據工程師與分析師使用 Boring Semantic Layer (BSL) 在原始數據上建構語義模型。它利用 Ibis 框架提供與數據庫無關的接口,支援包括 DuckDB、Snowflake、BigQuery 和 PostgreSQL 等多種引擎。透過將原始 SQL 邏輯抽象化為可重用的語義組件,該建構器實現了一致的指標報告、結構化的關聯邏輯以及適用於生產環境的模組化數據定義。
-
定義複雜的語義表,將 Ibis 表達式映射為具名的維度與度量。
-
透過時間截斷(如年、季、月、週、日)實現分層分組,以進行時間序列分析。
-
使用 t.all() 建構複雜的聚合邏輯,包括簡單的總和、平均值以及市場份額等比例度量。
-
透過一對多、一對一與交叉關聯處理關聯數據,支援自定義連接鍵與標準 SQL 連接類型(左、內、外連接)。
-
支援透過 Python 進行程序化定義與透過 YAML 文件進行聲明式配置,有助於版本控制與可重現的工作流。
-
利用內建的 AI 友善文檔功能,為維度和度量添加描述屬性,提升下游基於 LLM 的數據代理對模型的理解與發現能力。
-
輸入形式為原始 Ibis 關係或已建立的數據庫連接配置,輸出結構化的 SemanticTable 對象或合法的模型配置 YAML 文件。
-
使用 fluent API 鏈式調用 .with_dimensions()、.with_measures() 和 .join_many(),以保持代碼簡潔易讀。
-
確保所有定義遵循 BSL 的核心原則:盡量避免使用原始 SQL,優先使用 Ibis 原生抽象以維持跨後端的移植性。
-
為了性能考量,建議將大型項目組織成獨立的 YAML 文件,以改善團隊環境中的維護性與協作效率。
-
注意限制:必須保持與底層 Ibis 表達式的兼容性,確保所有 lambda 函數或延遲表達式(使用 _. 語法)在目標 Ibis 表的範圍內是有效的。
倉庫統計
- Star 數
- 436
- Fork 數
- 39
- Open Issue 數
- 10
- 主要語言
- Python
- 預設分支
- main
- 同步狀態
- 閒置
- 最近同步時間
- 2026年4月29日 上午07:11