timescaledb源码安装

因为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=# 

猜你喜欢

转载自blog.csdn.net/jacicson1987/article/details/82970721
今日推荐