‧
4 分鐘閱讀
我們將問題融入您的問題中

Sameer Al-Sakran
‧ 4 分鐘閱讀
分享這篇文章
Metabase 查詢產生器可讓您對資料庫中的單一表格執行簡單的查詢。在這個基本慣用語中,我們新增了從外鍵連結的表格中提取資訊、修改欄位,以及根據數學運算式建立新欄位的功能。然而,這一直是我們堅持的核心模式,並且在可用性方面獲得了一些回報。
我們發現,雖然它沒有像其他一些工具那樣提供那麼多的功能,但它的確讓 80% 的非技術使用者能夠提出 20% 的問題,而其他所有工具都專注於讓公司中 5% 的菁英提出 80% 的問題。
在此基礎上,透過我們的新版本,您現在可以在我們的查詢產生器中使用已儲存的問答作為「表格」。
這有什麼用處?
顯而易見的用例是彙總或切分另一個問答的結果,例如「每日收入的平均值」。更有趣的是,您可以使用已儲存的問答(GUI 或 SQL 問答)作為新問答的起點。
這可讓您使用 SQL 產生複雜的中間結果(又稱子查詢),然後在查詢產生器中使用它。
其他工具會強迫您製作非常可怕的 SQL 範本,或使用奇怪的 YAML 專有語言來產生您的非技術使用者可以使用的「繁重」成品。但是透過巢狀問答,您可以使用標準 SQL 建立這些子查詢,然後使用查詢產生器。如果事先有遠見,這表示您可以使用輕量級的 Vanilla SQL 和查詢產生器來公開介面,否則這些介面將需要大量的奇怪 SQL 或 YAML。
那聯結呢?
現在,如果您想要提出一個涉及兩個或多個表格的問題,請在巢狀子問答中使用聯結。您可以直接使用標準 SQL,而無需建立複雜的介面來促進聯結。雖然內部聯結、外部聯結、左聯結、右聯結、向上聯結、向下聯結和所有周圍聯結的複雜性確實很微妙且可能很複雜,但實際的 SQL 語法相當簡單。我們認為,任何知道左內部聯結和右外部聯結之間差異的人也知道一些 SQL,而不是重新發明圖形化的輪子。
這是否表示您不會在查詢產生器中新增更強大的功能?
完全不是。我們為查詢產生器儲備了很多功能!在即將發布的版本中,我們將大力推動為非技術使用者和技術使用者公開更多功能。它們將專注於 SQL 不擅長的事情,而不是 SQL 真正擅長的事情。我們也將重新設計介面,使其對非技術使用者更易於存取,讓他們更容易找到問答的常見起點。
這樣不會變慢嗎?
這取決於情況。您有可能產生一個慢速查詢,但如果您也使用了明確的子查詢,它也會很慢,而且我們發現使用者往往相當頻繁地使用這些查詢。
如果我的使用者執行太多複合查詢並使速度變慢怎麼辦?
這表示您的使用者在執行這些查詢時找到了價值,您應該對其進行最佳化。最佳化的途徑是將子查詢轉換為具體化檢視,如果這樣做速度很慢(例如,在插入時),則將其拆分為產生類似表格的批次或串流轉換程序。我們建議保留相同的表格名稱,因為這樣可以讓您有可能就地取代查詢。
下一步是什麼?
我們建議您試用巢狀查詢,並向我們提供一些意見反應。我們有許多未解決的問題,我們正在討論後續步驟和改進
如果其中一項或多項功能可以大幅簡化您的生活,請在問題中提出。我們根據有多少使用者也認為這些功能是不錯的想法來優先處理功能增強。