Timescale Cloud:性能、扩展、企业级
自托管产品
MST
TimescaleDB 是一个 PostgreSQL 扩展,适用于时序数据和需要摄取及查询大量数据的严苛工作负载。您可以从预构建的 Docker 容器在任何本地系统上安装 TimescaleDB 实例。
本节介绍如何在 PostgreSQL 上安装和配置 TimescaleDB。
开发和生产环境
以下说明适用于开发和测试安装。对于生产环境,我们强烈建议您实施以下措施,其中许多可以通过 PostgreSQL 工具实现。
- 增量备份和数据库快照,支持高效的时间点恢复。
- 高可用性复制,最好是节点分布在多个可用区。
- 自动故障检测与快速重启,适用于非复制和复制部署。
- 按需用于读取扩展的异步副本。
- 用于扩展客户端连接的连接池。
- 零停机时间的次要版本和扩展升级。
- 用于主要版本升级和其他功能测试的分支工作流。
- 监控和可观测性。
准备部署到生产环境?使用 Timescale Cloud 服务,我们将为您的数据库调优性能,并处理可扩展性、高可用性、备份和管理,让您高枕无忧。
要在 Docker 上运行并连接到 PostgreSQL 安装,您需要安装
本节介绍如何使用 Timescale 提供的容器在支持的平台上安装最新版本的 PostgreSQL 和 TimescaleDB。
运行 TimescaleDB Docker 镜像
The TimescaleDB HA
Docker 镜像提供了最完整的 TimescaleDB 体验。它使用 Ubuntu
,包括 TimescaleDB Toolkit
,并支持 PostGIS 和 Patroni。基于 PostgreSQL 17 的最新版本是
timescale/timescaledb-ha:pg17
docker pull timescale/timescaledb-ha:pg17轻量级的 TimescaleDB
非 HA Docker 镜像使用 Alpine
。基于 PostgreSQL 17 的最新版本是
timescale/timescaledb:latest-pg17
。TimescaleDB 在 -ha 和非 ha Docker 镜像中的默认 PostgreSQL 数据库中均已预先创建。默认情况下,TimescaleDB 会添加到您在这些镜像中创建的任何新数据库。
运行容器
docker run -d --name timescaledb -p 5432:5432 -e POSTGRES_PASSWORD=password timescale/timescaledb-ha:pg17如果您运行多个容器实例,请记住更改每个 Docker 实例运行的端口。
在基于 UNIX 的系统上,Docker 会修改 Linux IP 表来绑定容器。如果您的系统使用 Linux Uncomplicated Firewall (UFW),Docker 可能会覆盖您的 UFW 端口绑定设置
。为了防止这种情况,请将
DOCKER_OPTS="--iptables=false"
添加到/etc/default/docker
。连接到 PostgreSQL 实例上的数据库
psql -d "postgres://postgres:password@localhost/postgres"默认用户和数据库都是
postgres
。您在上一 H 步骤中设置了POSTGRES_PASSWORD
。在此镜像中连接到 PostgreSQL 的默认命令是检查 TimescaleDB 是否已安装
\dx您会看到已安装扩展的列表
List of installed extensionsName | Version | Schema | Description---------------------+---------+------------+---------------------------------------------------------------------------------------plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural languagetimescaledb | 2.17.2 | public | Enables scalable inserts and complex queries for time-series data (Community Edition)timescaledb_toolkit | 1.19.0 | public | Library of analytical hyperfunctions, time-series pipelining, and other SQL utilities(3 rows)按 q 退出扩展列表。
就这样!您已在自托管的 PostgreSQL 实例上的数据库中运行 TimescaleDB。
如果您想直接从容器运行镜像,可以使用此命令
docker run -d --name timescaledb -p 5432:5432 -e POSTGRES_PASSWORD=password timescale/timescaledb-ha:pg17
-p
标志将容器端口绑定到主机端口。这意味着任何可以访问主机端口的程序也可以访问您的 TimescaleDB 容器,因此使用 POSTGRES_PASSWORD
环境变量设置 PostgreSQL 密码非常重要。如果没有该变量,Docker 容器将禁用所有数据库用户的密码检查。
如果您想从主机访问容器但避免将其暴露给外部世界,可以使用此命令绑定到 127.0.0.1
而不是公共接口
docker run -d --name timescaledb -p 127.0.0.1:5432:5432 \-e POSTGRES_PASSWORD=password timescale/timescaledb-ha:pg17
如果您不想在本地安装 psql
和其他 PostgreSQL 客户端工具,或者您正在使用 Microsoft Windows 主机系统,您可以使用容器内捆绑的 psql
版本通过此命令连接
docker exec -it timescaledb psql -U postgres
现有容器可以使用 docker stop
停止,然后使用 docker start
再次启动,同时保留其卷和数据。当您使用 docker run
命令创建新容器时,默认情况下也会创建一个新的数据卷。当您使用 docker rm
删除 Docker 容器时,数据卷会保留在磁盘上,直到您明确删除它。您可以使用 docker volume ls
命令列出现有 Docker 卷。如果您想将 Docker 容器中的数据存储在主机目录中,或者想在现有数据目录之上运行 Docker 镜像,可以使用 -v
标志指定要挂载数据卷的目录。
警告
两种容器类型将 PostgreSQL 数据目录存储在不同的位置,请确保选择正确的挂载点
容器 | PGDATA 位置 |
---|---|
timescaledb-ha | /home/postgres/pgdata/data |
timescaledb | /var/lib/postgresql/data |
docker run -d --name timescaledb -p 5432:5432 \-v /your/data/dir:/home/postgres/pgdata/data \-e POSTGRES_PASSWORD=password timescale/timescaledb-ha:pg17
当您使用 Docker 容器安装 TimescaleDB 时,PostgreSQL 设置会从容器继承。在大多数情况下,您无需调整它们。但是,如果您需要更改某个设置,可以将 -c setting=value
添加到 Docker run
命令中。有关更多信息,请参阅 Docker 文档。
这些说明中提供的链接适用于 PostgreSQL 16 上最新版本的 TimescaleDB。要查找您可以使用的其他 Docker 标签,请参阅 Dockerhub 仓库。
如果 TimescaleDB 安装在 Docker 容器中,您可以使用 Docker 查看日志,而不是在 /var/lib/logs
或 /var/logs
中查找。有关更多信息,请参阅Docker 日志文档。
接下来做什么?试用 Timescale 提供的主要功能,查看用例教程,使用您喜欢的编程语言与 Timescale Cloud 服务中的数据交互,将您的 Timescale Cloud 服务与各种第三方工具集成,使用普通的Timescale,或者深入了解API。
关键词