database - 将我的自定义数据库连接到多个 BI 工具的最佳方法?
问题描述
我正在开发一个只读 SQL 引擎,其 API 可以执行SELECT
查询(但没有其他 SQL 查询)。
我的问题是如何使其可用于尽可能多的商业智能/仪表板工具。
我看到了 2 种可能的方法(也许我错过了其他方法):
- 开发一个 JDBC 驱动程序,并将其发送给我的用户,以便他们可以安装它并连接到我的服务。这相当简单,但仅适用于接受安装 JDBC 驱动程序的 BI 工具
- 尝试实现一个众所周知的 SQL 协议,例如 postgresql 协议,以便用户可以在他们的 BI 工具中使用他们的常规 psql 连接器。我很想试试这个,但我还没有在其他产品中看到它,看起来有点老套。
你怎么看?选项 2 对我来说看起来最通用,但有风险。这是一种明智的做法吗?
我可以做点别的吗?或者在服务器端实现另一个普遍接受的协议?
谢谢
解决方案
从长远来看,变体 2 似乎更有希望。BI 工具会为您的专有 API/协议添加连接器几乎是不现实的,因为您的产品很可能是一个利基解决方案。
例如,QuestDB 最终添加了与 Postgre 兼容的端点,使用 MySql 驱动程序访问 SingleStore,ClickHouse 计划在现有的自己的 HTTP/二进制协议之外添加 Postgre-endpoint。
您提到了 JDBC,因此拥有与 Presto/Trino REST API 兼容的端点可能会更容易(许多 BI 工具已经有 PrestoDB 的驱动程序)。
推荐阅读
- java - 报告 Maven 下载的依赖版本,给定版本范围
- java - Gradle 工件过于频繁地产生
- regex - Logstash 变异过滤器 gsub 嵌套字段
- amazon-dynamodb - 使用 appsync 或数据存储更改 aws amplify 中的条目所有者
- reactjs - 使用样式组件检查的单选按钮
- android - 如何将参数转换为 Rubymotion Android 中的类?
- scala - Apache Spark - 如何查看作业运行期间使用了多少个节点?
- python - 我需要保存我的回报来获得情节,occuDF 是一个 DataFrame 和 occuList 是一个列表
- python - 如何在 tensorflow 中实现这个自定义损失函数?
- oracle - oracle函数:从逗号分隔的字符串中选择不同的值计数