mongodb bi-connector 是一个方便的mongodb 2 sql 工具,我们可以使用sql 的强大查询能力,分析mongo的数据,以下是一些
简单操作,以及一些部署上的细节说明,后边会介绍spring boot 集成的说明
为了方便测试使用本地docker 运行mongo+ 使用本地mongodb bi-connector
参考以下地址安装 https://www.mongodb.com/download-center/bi-connector
添加了一个pgspider:mongo pg 的fdw
version: "3"
services:
pg-mysql:
image: dalongrong/pgspider:mongo
ports:
- "5432:5432"
environment:
- "POSTGRES_PASSWORD=dalong"
volumes:
- "./certs:/opt/certs"
mongo:
image: mongo
ports:
- "27017:27017"
docker-compose up -d
创建数据库以及用户
use appdemos
db.createCollection("appdemos")
db.createUser(
{
user: "dalong",
pwd: "dalong",
roles: [{role: "dbAdmin", db: "appdemos"}],
mechanisms : ["SCRAM-SHA-1"]
}
)
导入部分这个,这个可以根据实际数据导入,可以使用命令
下载好的软件包里边有三个文件(可能是两个)一个生成schema 的一个是sql 运行服务,一个是sql 到mongo
聚合查询生成的,我们使用静态配置方式,同时因为添加了用户密码,所以需要tls 证书(使用了宽松模式)
实际最好调整下信息
openssl req -nodes -newkey rsa:2048 -keyout test.key -out test.crt -x509 -days 365 -subj "/C=US/ST=test/L=test/O=test Security/OU=IT Department/CN=test.com"
cat test.crt test.key > test.pem
net:
bindIp: "0.0.0.0"
port: 3307
# 宽松模式的ssl
ssl:
mode: allowSSL
PEMKeyFile: ‘./certs/test.pem‘
allowInvalidCertificates: true
minimumTLSVersion: TLS1_0
mongodb:
net:
uri: "mongodb://127.0.0.1:27017"
ssl:
enabled: false
auth:
username: dalong
password: dalong
source: appdemos
mechanism: SCRAM-SHA-1
security:
enabled: true
defaultMechanism: "SCRAM-SHA-1"
defaultSource: "appdemos"
systemLog:
path: ./mongosqld.log
verbosity: 2
logAppend: true
schema:
path: ./schemas
maxVarcharLength: 65535
processManagement:
service:
name: "mongosql"
displayName: "MongoSQL Service"
description: "MongoSQL accesses MongoDB data with SQL"
bin/mongodrdl --host 127.0.0.1:27017 --username dalong --password dalong --db appdemos --authenticationDatabase appdemos --out schemas/schemas.drdl
bin/mongosqld --config mongosqld-config.yml
注意部分工具可能使用了mysql jdbc 8 以及一些高版本的连接会有问题
对于连接因为使用了ssl,需要使用工具需要勾选ssl,同时对于mysql cli 需要添加--enable-cleartext-plugin
,同时需要注意如果代码连接也需要配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3307/appdemos?useSSL=true
spring.datasource.username=dalong
spring.datasource.password=dalong
这个我们可以通过mongotranslate 工具,以及sql 的查询计划任务看出来,以下是sql 查询分析的
[Unit]
Description=MongoSQL accesses MongoDB data with SQL
ConditionFileIsExecutable=/usr/bin/mongosqld
[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/bin/mongosqld "--config=/root/mong/mongosqld-config.yml"
Restart=always
RestartSec=120
EnvironmentFile=-/etc/sysconfig/mongosql
[Install]
WantedBy=multi-user.target
https://docs.mongodb.com/bi-connector/master/reference/mongosqld/#bin.mongosqld
https://www.mongodb.com/download-center/bi-connector
https://docs.mongodb.com/bi-connector/master/release-notes/
原文:https://www.cnblogs.com/rongfengliang/p/12313132.html