Timescale Cloud:性能、扩展、企业级

自托管产品

MST

TimescaleDB 是一个 PostgreSQL 扩展,适用于时序数据和需要摄取及查询大量数据的严苛工作负载。您可以从预构建的 Docker 容器在任何本地系统上安装 TimescaleDB 实例。

本节介绍如何在 PostgreSQL 上安装和配置 TimescaleDB

开发和生产环境

以下说明适用于开发和测试安装。对于生产环境,我们强烈建议您实施以下措施,其中许多可以通过 PostgreSQL 工具实现。

  • 增量备份和数据库快照,支持高效的时间点恢复。
  • 高可用性复制,最好是节点分布在多个可用区。
  • 自动故障检测与快速重启,适用于非复制和复制部署。
  • 按需用于读取扩展的异步副本。
  • 用于扩展客户端连接的连接池。
  • 零停机时间的次要版本和扩展升级。
  • 用于主要版本升级和其他功能测试的分支工作流。
  • 监控和可观测性。

准备部署到生产环境?使用 Timescale Cloud 服务,我们将为您的数据库调优性能,并处理可扩展性、高可用性、备份和管理,让您高枕无忧。

免费试用

要在 Docker 上运行并连接到 PostgreSQL 安装,您需要安装

本节介绍如何使用 Timescale 提供的容器在支持的平台上安装最新版本的 PostgreSQL 和 TimescaleDB。

在终端中
  1. 运行 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 会添加到您在这些镜像中创建的任何新数据库。

  2. 运行容器

    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

  3. 连接到 PostgreSQL 实例上的数据库

    psql -d "postgres://postgres:password@localhost/postgres"

    默认用户和数据库都是 postgres。您在上一 H 步骤中设置了 POSTGRES_PASSWORD。在此镜像中连接到 PostgreSQL 的默认命令是

  4. 检查 TimescaleDB 是否已安装

    \dx

    您会看到已安装扩展的列表

    List of installed extensions
    Name | Version | Schema | Description
    ---------------------+---------+------------+---------------------------------------------------------------------------------------
    plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
    timescaledb | 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

关键词

此页面有问题?报告问题 或在 GitHub 上编辑此页面