因为postgresql是源码安装的,所以timescaledb也得源码安装。
timescaledb 0.12.1版本,解压后如下
[root@server4 timescaledb-0.12.1]# ls
bootstrap build CMakeLists.txt docs NOTICE scripts src timescaledb.control.in
bootstrap.bat CHANGELOG.md CONTRIBUTING.md LICENSE README.md sql test version.config
[root@server4 timescaledb-0.12.1]# pwd
/root/timescaledb-0.12.1
首先安装cmake(如果已有不需要安装), 然后执行./bootstrap.
[root@server4 timescaledb-0.12.1]# ./bootstrap
Build system already initialized in ./build
Do you want to remove it (this is IMMEDIATE and PERMANENT), y/n? y
-- The C compiler identification is GNU 4.8.3
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- TimescaleDB version 0.12.1. Can be updated from version 0.12.0
-- Build type is Release
-- Install method is 'source'
-- Performing Test CC_SUPPORTS_VISIBILITY_HIDDEN
-- Performing Test CC_SUPPORTS_VISIBILITY_HIDDEN - Success
-- Using compiler GNU
CMake Error at CMakeLists.txt:141 (message):
Unable to find 'pg_config'
提示找不到pg_config.
这个pg_config为postgresql安装好后的一个可执行文件,执行它可以得到postgresql的相关配置和路径
[root@server4 timescaledb-0.12.1]# cd /appdev/pgsql/bin/
[root@server4 bin]# ./pg_config
BINDIR = /appdev/pgsql/bin
DOCDIR = /appdev/pgsql/share/doc
HTMLDIR = /appdev/pgsql/share/doc
INCLUDEDIR = /appdev/pgsql/include
PKGINCLUDEDIR = /appdev/pgsql/include
INCLUDEDIR-SERVER = /appdev/pgsql/include/server
LIBDIR = /appdev/pgsql/lib
PKGLIBDIR = /appdev/pgsql/lib
LOCALEDIR = /appdev/pgsql/share/locale
MANDIR = /appdev/pgsql/share/man
SHAREDIR = /appdev/pgsql/share
SYSCONFDIR = /appdev/pgsql/etc
PGXS = /appdev/pgsql/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--prefix=/appdev/pgsql' '--without-readline'
CC = gcc
CPPFLAGS = -D_GNU_SOURCE
CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2
CFLAGS_SL = -fPIC
LDFLAGS = -Wl,--as-needed -Wl,-rpath,'/appdev/pgsql/lib',--enable-new-dtags
LDFLAGS_EX =
LDFLAGS_SL =
LIBS = -lpgcommon -lpgport -lpthread -lz -lrt -lcrypt -ldl -lm
VERSION = PostgreSQL 10.5
将pg_config路径添加进~/.bash_profile
[root@server4 bin]# cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/appdev/pgsql/bin
再次执行./bootstrap
[root@server4 bin]# source ~/.bash_profile
[root@server4 bin]# cd ~/timescaledb-0.12.1/
[root@server4 timescaledb-0.12.1]# ./
bootstrap build/ docs/ scripts/ sql/ src/ test/
[root@server4 timescaledb-0.12.1]# ./bootstrap
Build system already initialized in ./build
Do you want to remove it (this is IMMEDIATE and PERMANENT), y/n? y
-- The C compiler identification is GNU 4.8.3
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- TimescaleDB version 0.12.1. Can be updated from version 0.12.0
-- Build type is Release
-- Install method is 'source'
-- Performing Test CC_SUPPORTS_VISIBILITY_HIDDEN
-- Performing Test CC_SUPPORTS_VISIBILITY_HIDDEN - Success
-- Using compiler GNU
-- Found Git: /usr/bin/git (found version "1.8.3.1")
-- Using pg_config /appdev/pgsql/bin/pg_config
-- Compiling against PostgreSQL version 10.5
-- Install pgindent to be able to format C code: https://github.com/postgres/postgres/tree/master/src/tools/pgindent
CMake Error at CMakeLists.txt:274 (message):
PostgreSQL was built without OpenSSL support, which TimescaleDB needs for
full compatibility. Please rebuild PostgreSQL using `--with-openssl` or if
you want to continue without OpenSSL, re-run bootstrap with
`-DUSE_OPENSSL=0`
-- Configuring incomplete, errors occurred!
See also "/root/timescaledb-0.12.1/build/CMakeFiles/CMakeOutput.log".
[root@server4 timescaledb-0.12.1]#
提示postgresql没有带Openssl安装,那就索性,timescale也不带openssl安装。
[root@server4 timescaledb-0.12.1]# ./bootstrap -DUSE_OPENSSL=0
Build system already initialized in ./build
Do you want to remove it (this is IMMEDIATE and PERMANENT), y/n? y
-- The C compiler identification is GNU 4.8.3
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- TimescaleDB version 0.12.1. Can be updated from version 0.12.0
-- Build type is Release
-- Install method is 'source'
-- Performing Test CC_SUPPORTS_VISIBILITY_HIDDEN
-- Performing Test CC_SUPPORTS_VISIBILITY_HIDDEN - Success
-- Using compiler GNU
-- Found Git: /usr/bin/git (found version "1.8.3.1")
-- Using pg_config /appdev/pgsql/bin/pg_config
-- Compiling against PostgreSQL version 10.5
-- Install pgindent to be able to format C code: https://github.com/postgres/postgres/tree/master/src/tools/pgindent
-- Using pg_regress /appdev/pgsql/lib/pgxs/src/test/regress/pg_regress
-- Using objdump /usr/bin/objdump
-- Configuring done
-- Generating done
-- Build files have been written to: /root/timescaledb-0.12.1/build
TimescaleDB build system initialized in ./build. To compile, do:
cd ./build && make
[root@server4 timescaledb-0.12.1]#
cd ./build && make && make install
[root@server4 timescaledb-0.12.1]# cd ./build/
[root@server4 build]# ls
CMakeCache.txt cmake_install.cmake scripts src timescaledb.control
CMakeFiles Makefile sql test version.config
[root@server4 build]# make
Scanning dependencies of target sqlupdatescripts
[ 1%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.12.0--0.12.1.sql
[ 2%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.11.0--0.12.1.sql
[ 3%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.10.1--0.12.1.sql
[ 4%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.10.0--0.12.1.sql
[ 5%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.9.2--0.12.1.sql
[ 7%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.9.1--0.12.1.sql
[ 8%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.9.0--0.12.1.sql
[ 9%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.8.0--0.12.1.sql
[ 10%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.7.1--0.12.1.sql
[ 11%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.7.0--0.12.1.sql
[ 12%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.6.1--0.12.1.sql
[ 14%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.6.0--0.12.1.sql
[ 15%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.5.0--0.12.1.sql
[ 16%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.4.2--0.12.1.sql
[ 17%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.4.1--0.12.1.sql
[ 18%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.4.0--0.12.1.sql
[ 20%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.3.0--0.12.1.sql
[ 21%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.2.0--0.12.1.sql
[ 22%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.1.0--0.12.1.sql
[ 22%] Built target sqlupdatescripts
Scanning dependencies of target sqlfile
[ 23%] Generating /root/timescaledb-0.12.1/build/sql/timescaledb--0.12.1.sql
[ 23%] Built target sqlfile
[ 24%] Generating gitcommit.h
Scanning dependencies of target timescaledb
[ 25%] Building C object src/CMakeFiles/timescaledb.dir/agg_bookend.c.o
[ 27%] Building C object src/CMakeFiles/timescaledb.dir/cache.c.o
[ 28%] Building C object src/CMakeFiles/timescaledb.dir/cache_invalidate.c.o
[ 29%] Building C object src/CMakeFiles/timescaledb.dir/catalog.c.o
[ 30%] Building C object src/CMakeFiles/timescaledb.dir/chunk.c.o
[ 31%] Building C object src/CMakeFiles/timescaledb.dir/chunk_adaptive.c.o
[ 32%] Building C object src/CMakeFiles/timescaledb.dir/chunk_constraint.c.o
[ 34%] Building C object src/CMakeFiles/timescaledb.dir/chunk_dispatch.c.o
[ 35%] Building C object src/CMakeFiles/timescaledb.dir/chunk_dispatch_info.c.o
[ 36%] Building C object src/CMakeFiles/timescaledb.dir/chunk_dispatch_plan.c.o
[ 37%] Building C object src/CMakeFiles/timescaledb.dir/chunk_dispatch_state.c.o
[ 38%] Building C object src/CMakeFiles/timescaledb.dir/chunk_index.c.o
[ 40%] Building C object src/CMakeFiles/timescaledb.dir/chunk_insert_state.c.o
[ 41%] Building C object src/CMakeFiles/timescaledb.dir/constraint_aware_append.c.o
[ 42%] Building C object src/CMakeFiles/timescaledb.dir/copy.c.o
[ 43%] Building C object src/CMakeFiles/timescaledb.dir/dimension.c.o
[ 44%] Building C object src/CMakeFiles/timescaledb.dir/dimension_slice.c.o
[ 45%] Building C object src/CMakeFiles/timescaledb.dir/dimension_vector.c.o
[ 47%] Building C object src/CMakeFiles/timescaledb.dir/event_trigger.c.o
[ 48%] Building C object src/CMakeFiles/timescaledb.dir/extension.c.o
[ 49%] Building C object src/CMakeFiles/timescaledb.dir/guc.c.o
[ 50%] Building C object src/CMakeFiles/timescaledb.dir/histogram.c.o
[ 51%] Building C object src/CMakeFiles/timescaledb.dir/hypercube.c.o
[ 52%] Building C object src/CMakeFiles/timescaledb.dir/hypertable.c.o
[ 54%] Building C object src/CMakeFiles/timescaledb.dir/hypertable_cache.c.o
[ 55%] Building C object src/CMakeFiles/timescaledb.dir/hypertable_insert.c.o
[ 56%] Building C object src/CMakeFiles/timescaledb.dir/hypertable_restrict_info.c.o
[ 57%] Building C object src/CMakeFiles/timescaledb.dir/indexing.c.o
[ 58%] Building C object src/CMakeFiles/timescaledb.dir/init.c.o
[ 60%] Building C object src/CMakeFiles/timescaledb.dir/installation_metadata.c.o
[ 61%] Building C object src/CMakeFiles/timescaledb.dir/partitioning.c.o
[ 62%] Building C object src/CMakeFiles/timescaledb.dir/planner.c.o
[ 63%] Building C object src/CMakeFiles/timescaledb.dir/plan_expand_hypertable.c.o
[ 64%] Building C object src/CMakeFiles/timescaledb.dir/plan_add_hashagg.c.o
[ 65%] Building C object src/CMakeFiles/timescaledb.dir/planner_import.c.o
[ 67%] Building C object src/CMakeFiles/timescaledb.dir/planner_utils.c.o
[ 68%] Building C object src/CMakeFiles/timescaledb.dir/process_utility.c.o
[ 69%] Building C object src/CMakeFiles/timescaledb.dir/scanner.c.o
[ 70%] Building C object src/CMakeFiles/timescaledb.dir/sort_transform.c.o
[ 71%] Building C object src/CMakeFiles/timescaledb.dir/subspace_store.c.o
[ 72%] Building C object src/CMakeFiles/timescaledb.dir/tablespace.c.o
[ 74%] Building C object src/CMakeFiles/timescaledb.dir/trigger.c.o
[ 75%] Building C object src/CMakeFiles/timescaledb.dir/utils.c.o
[ 76%] Building C object src/CMakeFiles/timescaledb.dir/version.c.o
[ 77%] Building C object src/CMakeFiles/timescaledb.dir/bgw/job.c.o
[ 78%] Building C object src/CMakeFiles/timescaledb.dir/bgw/job_stat.c.o
[ 80%] Building C object src/CMakeFiles/timescaledb.dir/bgw/launcher_interface.c.o
[ 81%] Building C object src/CMakeFiles/timescaledb.dir/bgw/scheduler.c.o
[ 82%] Building C object src/CMakeFiles/timescaledb.dir/bgw/timer.c.o
[ 83%] Building C object src/CMakeFiles/timescaledb.dir/net/conn.c.o
[ 84%] Building C object src/CMakeFiles/timescaledb.dir/net/conn_plain.c.o
[ 85%] Building C object src/CMakeFiles/timescaledb.dir/net/http.c.o
[ 87%] Building C object src/CMakeFiles/timescaledb.dir/net/http_response.c.o
[ 88%] Building C object src/CMakeFiles/timescaledb.dir/net/http_request.c.o
[ 89%] Building C object src/CMakeFiles/timescaledb.dir/telemetry/uuid.c.o
[ 90%] Building C object src/CMakeFiles/timescaledb.dir/telemetry/metadata.c.o
[ 91%] Building C object src/CMakeFiles/timescaledb.dir/telemetry/telemetry.c.o
[ 92%] Linking C shared module timescaledb-0.12.1.so
[ 92%] Built target timescaledb
Scanning dependencies of target timescaledb-loader
[ 94%] Building C object src/loader/CMakeFiles/timescaledb-loader.dir/loader.c.o
[ 95%] Building C object src/loader/CMakeFiles/timescaledb-loader.dir/bgw_message_queue.c.o
[ 96%] Building C object src/loader/CMakeFiles/timescaledb-loader.dir/bgw_counter.c.o
[ 97%] Building C object src/loader/CMakeFiles/timescaledb-loader.dir/bgw_launcher.c.o
[ 98%] Building C object src/loader/CMakeFiles/timescaledb-loader.dir/bgw_interface.c.o
[100%] Linking C shared module timescaledb.so
[100%] Built target timescaledb-loader
[root@server4 build]#
[root@server4 build]# make install
[ 22%] Built target sqlupdatescripts
[ 23%] Built target sqlfile
[ 92%] Built target timescaledb
[100%] Built target timescaledb-loader
Install the project...
-- Install configuration: "Release"
-- Installing: /appdev/pgsql/share/extension/timescaledb.control
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.12.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.11.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.10.1--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.10.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.9.2--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.9.1--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.9.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.8.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.7.1--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.7.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.6.1--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.6.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.5.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.4.2--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.4.1--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.4.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.3.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.2.0--0.12.1.sql
-- Installing: /appdev/pgsql/share/extension/timescaledb--0.1.0--0.12.1.sql
-- Installing: /appdev/pgsql/lib/timescaledb-0.12.1.so
-- Installing: /appdev/pgsql/lib/timescaledb.so
[root@server4 build]#
postgresql.conf添加共享库
# - Kernel Resource Usage -
shared_preload_libraries = 'timescaledb' # (change requires restart)
# - Cost-Based Vacuum Delay -
重启postgresql, psql连入
建立数据库
testdb=# create database ts1;
CREATE DATABASE
testdb=# \c ts1
You are now connected to database "ts1" as user "postgres".
创建timescaledb extension
ts1=# create extension if not exists timescaledb CASCADE;
WARNING:
WELCOME TO
_____ _ _ ____________
|_ _(_) | | | _ \ ___ \
| | _ _ __ ___ ___ ___ ___ __ _| | ___| | | | |_/ /
| | | | _ ` _ \ / _ \/ __|/ __/ _` | |/ _ \ | | | ___ \
| | | | | | | | | __/\__ \ (_| (_| | | __/ |/ /| |_/ /
|_| |_|_| |_| |_|\___||___/\___\__,_|_|\___|___/ \____/
Running version 0.12.1
For more information on TimescaleDB, please visit the following links:
1. Getting started: https://docs.timescale.com/getting-started
2. API reference documentation: https://docs.timescale.com/api
3. How TimescaleDB is designed: https://docs.timescale.com/introduction/architecture
Note: TimescaleDB collects anonymous reports to better understand and assist our users.
For more information and how to disable, please see our docs https://docs.timescaledb.com/using-timescaledb/telemetry.
CREATE EXTENSION
ts1=#
timescaledb已安装成功
编译debug版本
./bootstrap -DCMAKE_BUILD_TYPE="Debug"
create table "ckts2"(
time TIMESTAMPTZ NOT NULL,
"id" int,
"col2" int
);
SELECT create_hypertable('ckts2', 'time');
建表和超表
tsdb=# \d
List of relations
Schema | Name | Type | Owner
--------+-------+-------+----------
public | ckts2 | table | postgres
(1 row)
tsdb=# SELECT create_hypertable('ckts2', 'time');
create_hypertable
-------------------
(1 row)
tsdb=# \d+ ckts2
Table "public.ckts2"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
--------+--------------------------+-----------+----------+---------+---------+--------------+-------------
time | timestamp with time zone | | not null | | plain | |
id | integer | | | | plain | |
col2 | integer | | | | plain | |
Indexes:
"ckts2_time_idx" btree ("time" DESC)
Triggers:
ts_insert_blocker BEFORE INSERT ON ckts2 FOR EACH ROW EXECUTE PROCEDURE _timescaledb_internal.insert_blocker()
tsdb=#