TimescaleDB 是一个 PostgreSQL 扩展,用于处理时间序列和需要摄取和查询大量数据的苛刻工作负载。您可以从预构建的 Docker 容器在任何本地系统上安装 TimescaleDB 实例。
想要跳过这些步骤吗?
在云端部署 Timescale 服务。我们为您的数据库调整性能并处理可扩展性、高可用性、备份和管理,以便您可以放松身心。
本节向您展示如何在 PostgreSQL 上安装和配置 TimescaleDB。
要运行并连接到 Docker 上的 PostgreSQL 安装,您需要安装
本节向您展示如何使用 Timescale 提供的容器在受支持的平台上安装最新版本的 PostgreSQL 和 TimescaleDB。
运行 TimescaleDB Docker 镜像
docker pull timescale/timescaledb-ha:pg17TimescaleDB HA Docker 镜像提供最完整的 TimescaleDB 体验。它使用 Ubuntu,包含 TimescaleDB Toolkit,并支持 PostGIS 和 Patroni。更轻量级的
timescale/timescaledb:latest-pg17
非 HA 镜像使用 Alpine。在 -ha 和非 HA Docker 镜像中,TimescaleDB 都在默认 PostgreSQL 数据库中预先创建。默认情况下,TimescaleDB 会添加到您在这些镜像中创建的任何新数据库中。
运行容器
docker run -d --name timescaledb -p 5432:5432 -e POSTGRES_PASSWORD=password timescale/timescaledb-ha:pg17如果您正在运行多个容器实例,请记住更改每个 Docker 实例运行的端口。
在基于 UNIX 的系统上,Docker 修改 Linux IP 表以绑定容器。如果您的系统使用 Linux 简易防火墙 (UFW),Docker 可能会覆盖您的 UFW 端口绑定设置。为了防止这种情况,请将
DOCKER_OPTS="--iptables=false"
添加到/etc/default/docker
。连接到 PostgreSQL 实例上的数据库
psql -d "postgres://postgres:password@localhost/postgres"默认用户和数据库均为
postgres
。您在之前的步骤中的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 容器,因此设置 PostgreSQL 密码非常重要,请使用 POSTGRES_PASSWORD
环境变量。如果没有该变量,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 仓库。
如果您已在 Docker 容器中安装 TimescaleDB,则可以使用 Docker 查看日志,而不是在 /var/lib/logs
或 /var/logs
中查找。有关更多信息,请参阅 关于日志的 Docker 文档。
现在您已经运行了 TimescaleDB,请查看
- 教程:通过使用示例数据集,了解各种业务场景。
- 使用 Timescale:浏览 TimescaleDB 提供的功能。
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页。