动态

详情 返回 返回

實戰|StarRocks 通過 JDBC Catalog 訪問 MongoDB 的數據 - 动态 详情

方案介紹

本文檔介紹如何通過 StarRocks 的 JDBC Catalog 功能,結合 MongoDB BI Connector,將 MongoDB 數據便捷接入 StarRocks,實現數據打通和 SQL 查詢分析,以下是整體流程圖。

前提條件

  • StarRocks 環境:版本 ≥ 3.0,支持 JDBC Catalog 功能。
  • MongoDB BI Connector:已安裝並運行,版本需與 MongoDB 兼容(參考 MongoDB 官方文檔)。
  • MySQL JDBC 驅動:推薦使用版本 5.1.X
  • MongoDB 權限:MongoDB 用户需具有目標數據庫和集合的讀取權限。
  • 網絡環境:StarRocks 的 FE(前端)和 BE(後端)/CN(計算節點)需能訪問 MongoDB BI Connector 的服務地址(默認端口 3307)。
  • 工具

    MongoDB BI Connector(mongosqld):將 MongoDB 數據轉換為 SQL 兼容的格式,允許使用 MySQL JDBC 驅動進行連接

    MySQL JDBC 驅動(5.1.47)

如需使用認證:安裝 MongoDB JDBC 認證插件(mongosql-auth-1.0.0-rc0.jar)

DEMO案例

本 demo 使用的版本,StarRocks 企業版本3.3.13, MongoDB 版本 MongoDB 7.0.22 Community Edition

準備工作

1 部署 StarRocks 集羣

1.1 參考官網 StarRocks 部署文檔:https://docs.starrocks.io/zh/docs/deployment/deploy_manually/

1.2 將 jdbc 驅動包 mysql-connector-java-5.1.49.jar 放在 StarRocks 的 FE 和 BE 的固定路徑下,注意文件訪問權限

2 部署 MongoDB 單機

2.1 下載 MongoDB 7.0.20 版本

wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/7.0/x86_64/RPMS/mongodb-org-server-7.0.20-1.el7.x86_64.rpm

安裝 Mongosh

wget https://downloads.mongodb.com/compass/mongodb-mongosh-2.5.1.x86_64.rpm

2.2 安裝 MongoDB

rpm -ivh  mongodb-org-server-7.0.20-1.el7.x86_64.rpm

Tips: 如果是非 root 用户安裝,需要提前創建好目錄,MongoDB 默認將數據存儲在 /var/lib/mongo,日誌存儲在 /var/log/mongodb,並確保這些目錄存在且有權限

2.3 檢查 MongoDB 配置文件

RPM 安裝會自動生成默認配置文件 /etc/mongod.conf, 可以根據需要編輯此文件(例如,修改 bindIp 或 dbPath)

2.4 啓動 MongoDB

sudo systemctl start mongod

驗證是否啓動

mongosh
Run in the mongosh shell: db.version()

2.5 創建測試數據庫,插入數據

# 創建數據庫
use student
# 插入數據
db.myCollection.insertOne({
  name: "John Doe",
  age: 30,
  city: "Beijing"
})

# 查詢數據
db.myCollection.find().pretty()

2.6 其他操作

停止:sudo systemctl stop mongod

重啓:sudo systemctl restart mongod

3安裝 MongoDB BI Connector

3.1 下載 MongoDB BI Connector

wget  https://info-mongodb-com.s3.amazonaws.com/mongodb-bi/v2/mongodb-bi-linux-x86_64-rhel70-v2.14.23.tgz

3.2 配置文件

創建配置文件: 創建 /etc/mongosqld.conf

systemLog:
  path: '/logs/mongosqld.log'
mongodb:
  net:
    uri: 'mongodb://127.0.0.1:27017'
net:
  bindIp: '127.0.0.1'
  port: 3307

注意避開服務器上已被佔用的端口

3.3 啓動 BI Connector

啓動方式有三種,推薦作為服務啓動,參考官網:https://www.mongodb.com/zh-cn/docs/bi-connector/current/launch/

BI Connector 作為系統服務運行時,需要指定 mongosqld.systemLog.path 設置的配置文件。使用首選文本編輯器,創建 mongosqld.conf 文件。要查看配置文件選項,請參閲配置文件。例如:

systemLog:
  path: '/logs/mongosqld.log'
net:
  bindIp: '172.26.95.165'
  port: 3307

啓動服務

sudo mongosqld install --config mongosqld.conf
sudo systemctl start mongosql.service

# 要啓用該服務以使其在啓動時自動啓動,請運行以下命令
systemctl enable mongosql.service

3.4 檢驗狀態

sudo systemctl status mongosqld

3.5 測試 JDBC 連接

mysql -h 172.26.95.165 -P 3307 -uadmin

4 在 StarRocks 中創建 MongoDB 的 JDBC Catalog

CREATE EXTERNAL CATALOG mongodb_bi_catalog
PROPERTIES (
    "type" = "jdbc",
    "user" = "admin",
    "password" = "123456",
    "jdbc_uri" = "jdbc:mysql://172.26.95.165:3307/student",
    "driver_url" = "file:///home/disk1/sr/mysql-connector-java-5.1.49.jar",
    "driver_class" = "com.mysql.cj.jdbc.Driver"
);

方案優勢

用户可以利用 StarRocks 湖倉的特性很方便的訪問 MongoDB 的數據,並且兼容 MySQL 語法,使用門檻低,對用户友好

user avatar u_17558081 头像 hashdata 头像 apacheiotdb 头像 tangpanqing 头像 cqu_jiangzhou 头像 kk_64ec9e6b37cb5 头像 wuliaodechaye 头像 zoulu1 头像 tugraph 头像 smartbidashuju 头像
点赞 10 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.