資料庫驅動程式基礎知識

Metabase 驅動程式

  • 向 Metabase 提供資料庫的基本資訊,例如資料庫的功能、連線屬性等等。
  • 向 Metabase 提供關於資料庫結構描述的資訊 – 表格(或等效項目)、這些表格中的欄位、外鍵關係(適用於支援外鍵的資料庫)。
    • 此功能由 Metabase 同步處理 使用,並儲存在應用程式資料庫中。
    • 儲存的資訊用於視覺化查詢產生器和其他位置,以向使用者顯示可用的表格/欄/等等。
  • 將我們內部的查詢語言 MBQL 編譯為原生查詢。
    • MBQL 查詢由視覺化查詢產生器產生。
    • Metabase 查詢處理器* 將 MBQL 查詢轉換為原生查詢
  • 執行原生查詢並傳回結果.

將您的驅動程式寫成模組,並將其封裝為外掛程式

Metabase 驅動程式組織成模組並封裝為外掛程式。模組是原始碼;外掛程式是從該原始碼建置的 JAR。

Metabase 外掛程式是一個 JAR 檔案,其中包含已編譯的類別檔案和 Metabase 外掛程式資訊清單,其中列出關於驅動程式的詳細資訊。在大多數情況下,外掛程式是延遲載入的,這表示 Metabase 在連線到將使用驅動程式的資料庫之前,不會初始化驅動程式。

若要讓 Metabase 使用您的驅動程式,您只需要將您建置的驅動程式 JAR 放入 /plugin 目錄即可,您會在執行 metabase.jar 的相同目錄中找到該目錄。如下所示

/Users/cam/metabase/metabase.jar
/Users/cam/metabase/plugins/my-plugin.jar

您可以透過設定環境變數 MB_PLUGINS_DIR 來變更外掛程式目錄。

模組目錄範例

讓我們大致了解 SQLite 驅動程式

|-- deps.edn
|-- resources
|   `-- metabase-plugin.yaml
|-- src
|   `-- metabase
|       `-- driver
|           `-- sqlite.clj
`-- test
    `-- metabase
        |-- driver
        |   `-- sqlite_test.clj
        `-- test
            `-- data
                `-- sqlite.clj

這裡有三個檔案要說明

deps.edn

deps.edn 檔案指定驅動程式的依賴性。

resources/metabase-plugin.yaml

您的驅動程式的資訊清單包含關於您的驅動程式的詳細資訊。

src/metabase/driver/sqlite.clj

這是您的驅動程式的核心檔案。我們將在實作多重方法中更詳細地討論它。

下一步

我們將進一步了解外掛程式資訊清單

閱讀其他Metabase 版本的文件。