ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

psotgres、timescaledb

2019-09-27 18:05:22  阅读:370  来源: 互联网

标签:postgresql postgres sudo TimescaleDB apt timescaledb 数据 psotgres


postgres介绍

PostgreSQL (简称Postgres )是一个开源,强大,先进,高性能和稳定的关系文档数据库系统。 它使用并增强了SQL语言,并具有大量功能,可实现安全的数据存储和管理。

它高效,可靠,可扩展,可处理大量复杂的数据量并设置企业级和容错环境,同时确保高数据完整性。 Postgres还具有高度可扩展性,索引附带API等功能,因此您可以开发自己的解决方案来解决数据存储挑战。

postgres的安装和配置

首先,创建一个存储存储库配置的文件/etc/apt/sources.list.d/pgdg.list ,然后将存储库密钥导入系统,更新系统软件包列表并使用以下命令安装Postgres软件包

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
$ sudo apt install wget ca-certificates
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt update
$ sudo apt install postgresql-10 pgadmin4

安装postgres后 ,数据库服务会自动启动,通过键入以下命令进行确认。  

$ sudo systemctl status postgresql.service

打开psql客户端

sudo -u postgres psql 进入,提示符变成: postgres=#

修改数据库用户密码

ALTER USER postgres WITH PASSWORD '123456';

修改ubuntu操作系统的postgres用户的密码(密码要与数据库用户postgres的密码相同)
切换到root用户

sudo su

删除PostgreSQL用户密码

sudo passwd -d postgres //passwd -d 是清空指定用户密码的意思

设置PostgreSQL系统用户的密码

sudo -u postgres passwd

修改PostgresSQL数据库配置实现远程访问

sudo vim /etc/postgresql/10/main/postgresql.conf

1.监听任何地址访问,修改连接权限

#listen_addresses = 'localhost' 改为 listen_addresses = '*'

2.启用密码验证

#password_encryption = xxx 改为 password_encryption = xxx

sudo vim /etc/postgresql/10/main/pg_hba.conf
在文档末尾加上以下内容
host all all 0.0.0.0 0.0.0.0 md5  

#重启服务

/etc/init.d/postgresql restart
或者
service postgresql restart  

#登录postgre SQL数据库

psql -U postgres -h 127.0.0.1

#完整卸载postgres

sudo apt-get remove postgresql\* -y 
sudo rm -r /etc/postgresql/
sudo rm -r /etc/postgresql-common/
sudo rm -r /var/lib/postgresql/
sudo userdel -r postgres
sudo groupdel postgres

创建postgres用户:

CREATE USER dbuser WITH PASSWORD '*****';
CREATE DATABASE exampledb OWNER dbuser;
GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbuser;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO bms;

TimescaleDB概述

1、TimescaleDB是开放源代码的时间序列数据库,针对快速提取和复杂查询进行了优化。,并且像传统的关系数据库一样易于使用,但可以按以前为NoSQL数据库保留的方式进行扩展。

与这两种选择(关系型与NoSQL)所需要的权衡相比,TimescaleDB更完美的提供了时间序列数据

随着物联网的发展,时序数据库的需求越来越多,比如水文监控、工厂的设备监控、国家安全相关的数据监控、通讯监控、金融行业指标数据、传感器数据等。

在互联网行业中,也有着非常多的时序数据,例如用户访问网站的行为轨迹,应用程序产生的日志数据等等。

2、TimescaleDB被实现为PostgreSQL上的扩展,这意味着它在整个PostgreSQL实例中运行。扩展模型使数据库可以利用PostgreSQL的许多属性,例如可靠性,安全性以及与各种第三方工具的连接性。同时,TimescaleDB通过在PostgreSQL的查询计划程序,数据模型和执行引擎中添加钩子,从而充分利用了扩展可利用的高度定制。

从用户的角度来看,TimescaleDB公开了看起来像单表的表,称为超表,实际上是包含数据的许多单个表(称为)的抽象或虚拟视图。

是通过将超表的数据划分为一个或多个维度来创建的:所有超表均按一个时间间隔进行分区,并且可以另外通过键(例如设备ID,位置,用户ID等)进行分区。我们有时将其称为分区跨越“时空”。

特点:  

1. 基本上都是插入,没有更新的需求。

2. 数据基本上都有时间属性,随着时间的推移不断产生新的数据,旧的数据不需要保存太久。

业务方对时序数据通常有几个查询需求

1. 获取最新状态,查询最近的数据(例如传感器最新的状态)

2. 展示区间统计,指定时间范围,查询统计信息,例如平均值,最大值,最小值,计数等。。。

3. 获取异常数据,根据指定条件,筛选异常数据

特征

如果仔细观察它的产生和摄取方式,那么诸如TimescaleDB之类的时序数据库通常具有以下重要特征:

  • 以时间为中心:数据记录始终带有时间戳。
  • 仅追加-:数据是几乎完全追加(只插入)。
  • 最近的:新数据通常与最近的时间间隔有关,而我们很少更新或回填有关旧时间间隔的缺失数据。

数据的频率或规律性不太重要;可以每毫秒或每小时收集一次。也可以定期或不定期地收集它(例如,在某些事件发生时,而不是在预定时间)。

但是数据库是否早就没有时间字段?与其他数据(例如标准关系“业务”数据)相比,时间序列数据(以及支持它们的数据库)之间的主要区别在于,对数据的更改是插入而不是覆盖

Hypertables

与数据交互的主要点是一个超表,它是跨所有空间和时间间隔的单个连续表的抽象,因此可以通过标准SQL查询该表。

几乎所有与TimescaleDB的用户交互都与超表有关。创建表和索引,更改表,插入数据,选择数据等可以(也应该)在超表上执行。[ 跳转至基本SQL操作 ]

超表由具有列名称和类型的标准架构定义,其中至少一列指定时间值,一列(可选)列指定其他分区键。

一个TimescaleDB部署可以存储多个超表,每个超表具有不同的架构。

在TimescaleDB中创建一个超表需要两个简单的SQL命令:(CREATE TABLE使用标准SQL语法),后跟SELECT create_hypertable()

时间索引和分区键是在超级表上自动创建的,尽管也可以创建其他索引(并且TimescaleDB支持所有PostgreSQL索引类型)

TimescaleDB的安装和配置

需要先安装postgres

添加TimescaleDB的第三方存储库并安装TimescaleDB,它将从PostgreSQL存储库下载所需的任何依赖项:

# Add our PPA
sudo add-apt-repository ppa:timescale/timescaledb-ppa
sudo apt-get update

# To install for PG 10.2+
sudo apt install timescaledb-postgresql-10
# To install for PG 9.6.3+
sudo apt install timescaledb-postgresql-9.6

更新 postgresql.conf

sudo vim /etc/postgresql/11/main/postgresql.conf

修改postgresql.conf
#shared_preload_libraries = '' 改为 shared_preload_libraries = 'timescaledb'

重启postgresql
sudo service postgresql restart

可能出现问题

add-apt-repository: command not found:
sudo apt-get install software-properties-common python-software-properties # 18.04好像只需要sudo apt-get install software-properties-common即可。

 psql下执行:

sudo su - postgres
psql
\d 进入数据库
create extension timescaledb ;          CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

 

激活服务

systemctl status postgresql
sudo systemctl enable postgresql

创建用户和数据库

create user bms with password 'bms@2018';
create database bms owner bms;

 配置pg的远程访问

sudo vim /etc/postgresql/11/main/postgresql.conf
# 添加 一行:
listen_addresses = '*'

sudo vi /etc/postgresql/10/main/pg_hba.conf
# 添加一行:
host all all 0.0.0.0/0 md5

sudo systemctl restart postgresql 

  

参考:https://www.howtoing.com/install-postgresql-on-ubuntu

参考:https://www.postgresql.org/download/linux/ubuntu/

参考:https://docs.timescale.com/v1.0/getting-started/installation/linux/installation-apt-ubuntu

postgres命令使用参考:https://mozillazg.com/2014/06/hello-postgresql.html

  

标签:postgresql,postgres,sudo,TimescaleDB,apt,timescaledb,数据,psotgres
来源: https://www.cnblogs.com/weidaijie/p/11599496.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有