資料分析
bsl-model-builder avatar

bsl-model-builder

用於建立與管理 BSL (Boring Semantic Layer) 模型的專家工具,支援維度、指標、關聯與 YAML 設定,並由 Ibis 強力驅動。

簡介

BSL Model Builder 是一個專業的代理技能,旨在透過 Boring Semantic Layer 將原始資料庫表轉換為具備商業意義的語意模型。此工具建立在 Ibis 框架之上,提供高效且原生的 Python 抽象層,讓開發人員與資料分析師能以程式化或 YAML 設定的方式定義可重複使用的資料模型。它非常適合需要標準化指標、簡化 BI 報表或為大型語言模型 (LLM) 與自動化代理提供結構化資料介面的組織。透過將複雜的 SQL 操作轉換為流暢的物件導向 API,此技能可幫助使用者輕鬆定義類別維度、量化指標與複雜的資料表關聯。

  • 使用 Ibis 驅動的表達式(包含 Lambda 函數與 unbound 語法)定義粒度明確的語意表。

  • 配置基於時間的維度,支援自動化截斷功能,包含年、季、月、週與日等時間區間。

  • 實作進階的聚合邏輯,包括複雜的比率計算、使用 all() 參照的總計百分比分析,以及自訂指標說明。

  • 透過靈活的聯結類型(join_many、join_one 與 cross join)支援複雜的關係模型,並支援基於檢視 (view) 的別名處理。

  • 透過宣告式的 YAML 架構定義,促進生產環境等級的部署,確保版本控制與設定的一致性。

  • 無縫整合 Ibis 支援的多種資料庫後端,例如 DuckDB、Snowflake、BigQuery 與 PostgreSQL。

  • 預期的輸入為原始 Ibis 資料表物件或 YAML 設定檔路徑,輸出則為已實例化的 SemanticTable 物件或可供執行的複雜查詢表達式。

  • 最佳實踐:務必在維度與指標定義中加入人類可讀的說明,以提升模型的可搜尋性與 AI 的理解力。

  • 實際限制:當對同一張表進行多次聯結時,請務必使用 .view() 方法以避免欄位名稱衝突。

  • 若為生產環境負載,建議優先使用 YAML 檔案將模型定義與操作程式碼分離,以利維護與團隊協作。

  • 工具運作需要安裝 boring-semantic-layer 套件的 Python 環境,針對進階 LLM 整合建議安裝 agent 或 mcp 額外依賴套件。

倉庫統計

Star 數
436
Fork 數
39
Open Issue 數
10
主要語言
Python
預設分支
main
同步狀態
閒置
最近同步時間
2026年4月28日 下午12:49
在 GitHub 查看