前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pipelinedb 初探

pipelinedb 初探

作者头像
保持热爱奔赴山海
发布2019-09-17 14:26:27
7970
发布2019-09-17 14:26:27
举报
文章被收录于专栏:数据库相关

pipelinedb的安装:

ref:

http://docs.pipelinedb.com/installation.html#installation

http://docs.pipelinedb.com/quickstart.html#quickstart

说明: pipelinedb 现在已经是pg的一个插件 ,【Since PipelineDB runs as an extension to PostreSQL, begin by installing PostgreSQL】。 我们需要先安装pg,然后安装pipeline的扩展即可

需要先安装postgresql-server11版本

postgresql11-server-11.2-1PGDG.rhel7.x86_64

postgresql11-11.2-1PGDG.rhel7.x86_64

然后,安装对应版本的pipelinedb

rpm -ivh pipelinedb-postgresql-11-1.0.0-13.centos7.x86_64.rpm

# 初始化pg

su - postgres

/usr/pgsql-11/bin/pg_ctl initdb -D /var/lib/pgsql/11/data

修改pg的配置文件

listen_addresses = '*'

max_worker_processes = 128

shared_preload_libraries = 'pipelinedb'

# 启动pg

/usr/pgsql-11/bin/pg_ctl start -D /var/lib/pgsql/11/data

# 登录pg

/usr/pgsql-11/bin/psql

create database pipeline ;

\c pipeline;

create extension pipelinedb;

# 这里还可以有些创建账号、添加pg_hba地址授权等操作,不在本文讨论的范畴内。

/usr/pgsql-11/bin/psql pipeline  # 登录后,执行如下的2个SQL:

代码语言:javascript
复制
-- 创建一个外部表,实际数据来自pipelinedb
CREATE FOREIGN TABLE wiki_stream (
hour timestamp,
project text,
title text,
view_count bigint,
size bigint)
SERVER pipelinedb;
代码语言:javascript
复制
-- 创建CV视图
CREATE VIEW wiki_stats WITH (action=materialize) AS
SELECT hour, project,
count(*) AS total_pages,
sum(view_count) AS total_views,
min(view_count) AS min_views,
max(view_count) AS max_views,
avg(view_count) AS avg_views,
percentile_cont(0.99) WITHIN GROUP (ORDER BY view_count) AS p99_views,
sum(size) AS total_bytes_served
FROM wiki_stream
GROUP BY hour, project;

# 查看数据表:

代码语言:javascript
复制
pipeline=# \d
List of relations
Schema |       Name       |     Type      |  Owner
--------+------------------+---------------+----------
public | wiki_stats       | view          | postgres
public | wiki_stats_def   | view          | postgres
public | wiki_stats_mrel  | table         | postgres
public | wiki_stats_osrel | foreign table | postgres
public | wiki_stats_seq   | sequence      | postgres
public | wiki_stream      | foreign table | postgres
(6 rows)

# 现在我们将数据集解压缩为流并将其写入stdin,它可以用作COPY的输入

curl -sL http://pipelinedb.com/data/wiki-pagecounts | gunzip | /usr/pgsql-11/bin/psql pipeline -c "COPY wiki_stream (hour, project, title, view_count, size) FROM STDIN"

# 查看测试的数据集:

/usr/pgsql-11/bin/psql pipeline  -c "SELECT * FROM wiki_stats ORDER BY total_views DESC";

# 要查看系统中当前的连续视图及其定义,可以运行以下查询:

代码语言:javascript
复制
pipeline=# SELECT * FROM pipelinedb.views;
id | schema |    name    | active |                                                              query
----+--------+------------+--------+----------------------------------------------------------------------------------------------------------------------------------
3 | public | wiki_stats | t      |  SELECT wiki_stream.hour,                                                                                                       +
|        |            |        |     wiki_stream.project,                                                                                                        +
|        |            |        |     count(*) AS total_pages,                                                                                                    +
|        |            |        |     sum(wiki_stream.view_count) AS total_views,                                                                                 +
|        |            |        |     min(wiki_stream.view_count) AS min_views,                                                                                   +
|        |            |        |     max(wiki_stream.view_count) AS max_views,                                                                                   +
|        |            |        |     avg(wiki_stream.view_count) AS avg_views,                                                                                   +
|        |            |        |     percentile_cont((0.99)::double precision) WITHIN GROUP (ORDER BY ((wiki_stream.view_count)::double precision)) AS p99_views,+
|        |            |        |     sum(wiki_stream.size) AS total_bytes_served                                                                                 +
|        |            |        |    FROM wiki_stream                                                                                                             +
|        |            |        |   GROUP BY wiki_stream.hour, wiki_stream.project
(1 row)

pipelinedb 在实时流式计算方面,有很多用法。具体可以参照德哥的github。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 PostgreSQL
腾讯云数据库 PostgreSQL(TencentDB for PostgreSQL,云 API 使用 postgres 作为简称)能够让您在云端轻松设置、操作和扩展目前功能最强大的开源数据库 PostgreSQL。腾讯云将负责绝大部分处理复杂而耗时的管理工作,如 PostgreSQL 软件安装、存储管理、高可用复制、以及为灾难恢复而进行的数据备份,让您更专注于业务程序开发。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档