什么是TimescaleDB?
TimescaleDB是一个开源数据库,旨在使SQL可扩展以处理时间序列数据。更多信息请访问Timescale网站。
如何使用这个镜像
这个镜像基于官方的Postgres docker镜像,因此该镜像的文档也适用于此,包括可以设置的环境变量、可扩展性等。
启动TimescaleDB实例
docker run -d --name some-timescaledb -p 5432:5432 -e POSTGRES_PASSWORD=password timescale/timescaledb:latest-pg16
然后使用应用程序或psql
客户端连接:
docker run -it --net=host -e PGPASSWORD=password --rm timescale/timescaledb:latest-pg16 psql -h localhost -U postgres
您还可以通过主机上的5432端口连接您的应用程序。
如果您是第一次运行docker镜像,您还可以设置环境变量TIMESCALEDB_TELEMETRY
来设置Timescale docker实例中的遥测级别。例如,要关闭遥测,运行:
docker run -d --name some-timescaledb -p 5432:5432 -e TIMESCALEDB_TELEMETRY=off -e POSTGRES_PASSWORD=password timescale/timescaledb:latest-pg16
请注意,如果集群之前已经初始化,您不应使用此环境变量来设置遥测级别。相反,请按照我们文档中的说明在集群运行时禁用遥测。
如果您对timescaledb的最新开发快照感兴趣,还可以使用timescaledev/timescaledb:nightly-pg16(适用于PG 14、15和16)的每日构建版本。
关于timescaledb-tune的说明
我们在容器初始化时自动运行timescaledb-tune
。默认情况下,timescaledb-tune
使用系统调用来获取实例的可用CPU和内存。在docker镜像中,这些系统调用反映的是主机上的可用资源。对于容器分配了主机上所有可用资源的情况,这没问题。但许多用例涉及限制容器(或docker守护进程)在主机上可以使用的资源量。因此,此镜像会查看cgroups元数据以确定docker定义的限制大小,然后将这些值传递给timescaledb-tune
。
要指定自己的限制,请在运行时使用TS_TUNE_MEMORY
和TS_TUNE_NUM_CPUS
环境变量:
docker run -d --name timescaledb -p 5432:5432 -e POSTGRES_PASSWORD=password -e TS_TUNE_MEMORY=4GB -e TS_TUNE_NUM_CPUS=4 timescale/timescaledb:latest-pg16
要指定后台工作进程的最大数量,请使用TS_TUNE_MAX_BG_WORKERS
环境变量:
docker run -d --name timescaledb -p 5432:5432 -e POSTGRES_PASSWORD=password -e TS_TUNE_MAX_BG_WORKERS=16 timescale/timescaledb:latest-pg16
要指定最大连接数,请使用TS_TUNE_MAX_CONNS
环境变量:
docker run -d --name timescaledb -p 5432:5432 -e POSTGRES_PASSWORD=password -e TS_TUNE_MAX_CONNS=200 timescale/timescaledb:latest-pg16
要完全不运行timescaledb-tune
,请使用NO_TS_TUNE
环境变量:
docker run -d --name timescaledb -p 5432:5432 -e POSTGRES_PASSWORD=password -e NO_TS_TUNE=true timescale/timescaledb:latest-pg16