数据库驱动程序基础知识

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 的文档。

这有帮助吗?

感谢您的反馈!
想要改进这些文档?提出更改建议。
© . This site is unofficial and not affiliated with Metabase, Inc.