一.windows环境下安装timescaledb
1.准备工作
a.安装java开发工具包JDK
b.下载安装PostgreSql
安装好后,需配置环境变量
c.下载安装timescaleDB
2.java连接使用timescaleDB
a.导入Postgresql JDBC驱动
手动倒入postgresql jdbc jar 包或者引入其依赖
b.编写数据库连接串
二.linux 环境下安装timescaledb(使用docker在172环境离线安装postgres+timescale)
1.确保172环境存在docker容器,可用命令:docker ps 、docker info、 docker version查看
ps: docker images --查看已有的镜像
2. 将在外网下载的timescale镜像并丢到172服务器上(注意这个目录权限),然后把XX.tar归档文件恢复成镜像
具体步骤:
①找一台能连外网的docker,拉取timescale镜像
命令:docker pull timescale/timescaledb
拉好后最好查看下:docker images
拉取以后最后启动镜像,验证镜像是否有用
②将该镜像归档,并丢到172服务器上
镜像归档命令:docker save image > /root/image.tar
③在172服务器上恢复该镜像,命令如下:docker load -i image.tar(我的是 docker load -i timscale.tar)
ps:
如何将文件上传到172服务器:通过git.bash 使用命令:scp timscale.tar [email protected]:/home/maven/wx 将文件上传到172
④这样内网172上就有了timescale镜像(可用docker images查看),然后运行timescale镜像,命令如下:
docker run -d --name timescaledb -p 54321:5432 -e POSTGRES_PASSWORD=timescale timescale/timescaledb:latest-pg14
或(前提是先建执行命令:mkdir -p /home/data/pgdata/ 和 mkdir -p /var/lib/postgresql/data )
docker run -d --name timescaledb -p 54321:5432 -v /home/data/pgdata/:/var/lib/postgresql/data -e POSTGRES_PASSWORD=timescale timescale/timescaledb:latest-pg14
出现一串数字表示镜像运行成功:
在④中 -v参数已经指定了源数据目录,就不需要在单独指定
可使用docker volume ls 查看已经存在的dockers数据卷
⑥进入容器并连接pg数据库,命令:docker exec -it timescaledb psql -U postgres
可使用命令:\dx查看安装的插件
\l查看数据库
使用:create database demo_wx --创建一个数据库测试下
⑦至此,timescale数据库安装成功且已启动
ps:使用docker ps/docker ps -a 查看启动的镜像
使用docker exec -it "容器id/或者名字" /bin/bash 进入到已经运行的容器
使用ctrl+D 退出容器
如果没有权限操作某个命令就在前面加上 sudo。
补充:
1.杀掉docker 容器里的进程:
①查看容器中的进程:
docker exec timescaledb ps -ef
docker top timescaledb
②进入该容器,停掉该进程
Kill pid
③查看进程是否被关掉
docker ps -a|grep timescaledb
2.删除容器命令:
docker rm -f timescaledb
3.查日志命令:
docker logs timescaledb
遇到的问题:
1.在88台服务器上(生产环境)遇到timescaledb容器能创建,但是无法启动,如下图:
原因是:防火墙是关着的(命令:systemctl status firewalld -- 查看防火墙状态)
解决方案:打开防火墙即可(命令:systemctl start firewalld)
2.容器时间不对
#修改容器的时间域宿主机一致
docker exec -u root -it mariadb /bin/bash
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
三.timescaledb进阶
1.timiescale是时序数据库,一般在物联网环境下使用较多
2.timescaleDB数据结构
3. 数据自动按时间和空间分区(chunk)
4.程序通过超表与数据交互,但是postgresql存储具体的数据
Hypertables and Chunks(超表和块),在一个更高的水平,数据库暴露了一个抽象的连续表格:一个元表格,横跨所有的空间和时间间隔,这样可以通过普通的SQL语句查询数据,一个元表格使用标准的带有列名称和类型的模型。
5.在timescaledb创建Hypertable是两个SQL命令:创建表(使用标准的SQL语法),其次选择create_hypertable()
参考资料:windows安装timescaledb_Loraine丶的博客-CSDN博客_timescaledb windows安装