pipelinedb continuous view 操作
continuous view 是 pipelinedb的核心,类似一个view,但是数据是合并了stream以及table的数据输入数据,并且是
实时根据输入数据进行更新的
语法
CREATE CONTINUOUS VIEW name AS query
query是一个pg 的select 格式的语法,格式如下:
SELECT [ DISTINCT [ ON ( expression [, ...] ) ] ]
expression [ [ AS ] output_name ] [, ...]
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
[ WINDOW window_name AS ( window_definition ) [, ...] ]
where from_item can be one of:
stream_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
table_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
from_item [ NATURAL ] join_type from_item [ ON join_condition ]
环境准备
项目使用docker运行同时结合hasura graphql 引擎
- docker-compose
version: '3.6'
services:
postgres:
image: pipelinedb/pipelinedb
ports:
- "5432:5432"
graphql-engine:
image: hasura/graphql-engine:v1.0.0-alpha06
ports:
- "8080:8080"
depends_on:
- "postgres"
command: >
/bin/sh -c "
graphql-engine --database-url postgres://pipeline:pipeline@postgres:5432/pipeline serve --enable-console;
"
数据源从基本数据tabley以及stream 获取(比较综合的例子)
- 创建基本表
CREATE TABLE userlogin (
id SERIAL PRIMARY KEY,
username text NOT NULL,
userid integer NOT NULL,
usertype text NOT NULL,
logintype text NOT NULL
);
```
* 创建stream:
```code
CREATE STREAM loginlogs (logintype text, userid integer);
- 创建continuous view
CREATE CONTINUOUS VIEW userloginview AS
select a.logintype,b.username,b.userid, b.logintype as logintype_ from loginlogs a join userlogin b
on a.userid=b.userid
- 插入数据&&查询

insert into loginlogs(logintype,userid) values ('mobile',333),('pc',333),('web',333)
select * from userloginview

- graphql 集成

- graphql 查询

- 说明
实际使用中我们的view一般都是一个聚合函数的操作,比如统计状态,异常信息排查,同时view 支持ttl 可以支持有效期控制
官方提供的一个比较有意思的demo
- 延迟百分比 90 95 99 延迟占比
CREATE CONTINUOUS VIEW latency AS
SELECT percentile_cont(array[90, 95, 99]) WITHIN GROUP (ORDER BY latency)
FROM latency_stream;
- 最新5分钟广告的曝光
CREATE CONTINUOUS VIEW imps AS
SELECT COUNT(*) FROM imps_stream
WHERE (arrival_timestamp > clock_timestamp() - interval '5 minutes');
参考资料
http://docs.pipelinedb.com/continuous-views.html
pipelinedb continuous view 操作的更多相关文章
- pipelinedb Continuous transforms 操作
Continuous transforms 可以进行数据的转换,数据是不进行存储,主要是可以加入到其他的stream pipeline 中,或者写到其他外部 存储中,和存储过程结合使用,当前默认内置一 ...
- spring data jpa 操作pipelinedb 的continuous view 与stream
一. 由于pipelinedb是postgreSQL的扩展,因此相关依赖于配置都合集成postgreSQL是一样的. springboot + spring data jpa + postgreSQL ...
- 浅谈PipelineDB系列一: Stream数据是如何写到Continuous View中的
PipelineDB Version:0.9.7 PostgreSQL Version:9.5.3 PipelineDB的数据处理组件: 从上图来看主要就是pipeline_streams,strea ...
- View操作 swift
//创建View let view1 =UIView() let view2 =UIView(frame: CGRectMake(,, ,)) let view3 =UIView(frame: CGR ...
- MVC view操作(Razor语法)
Razor,很有意思的剃刀.相较与之前开发WEB的方式,Razor真是轻松惬意. 下面说一下我使用Razor的一些心得. 页面中归根结底是一个输出字符串(HTML CSS JS等混合的字符串)的过程. ...
- pipelinedb学习笔记 - 1. Continuous Views (连续视图)
Continuous Views 一.Continuous Views 英文直译过来叫连续视图, 在pipelindb中是被定义为专门用来展示 Stream中数据用的.例如:Stream中有一些用户信 ...
- hasura graphql 集成pipelinedb测试
实际上因为pipelinedb 是原生支持pg的,所以应该不存在太大的问题,以下为测试 使用doker-compose 运行 配置 docker-compose 文件 version: '3.6' s ...
- 如何简单愉快的上手PipelineDB
pipelineDB source:https://github.com/pipelinedb/pipelinedb 安装PipelineDB ./configure CFLAGS="-g ...
- nanomsg 如何写数据到PipelineDB
nanomsg:https://github.com/nanomsg/nanomsg PipelineDB:https://github.com/pipelinedb/pipelinedb nanom ...
随机推荐
- LeetCode--121--卖卖股票的最佳时机
问题描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出 ...
- Perfect Groups CodeForces - 980D
链接 题目大意: 定义一个问题: 求集合$S$的最小划分数,使得每个划分内任意两个元素积均为完全平方数. 给定$n$元素序列$a$, 对$a$的所有子区间, 求出上述问题的结果, 最后要求输出所有结果 ...
- python-day54--前端之js-DOM对象
一.DOM对象 1.什么是HTML DOM HTML Document Object Model(文档对象模型---标签) 2.功能:定义了访问(查找)和操作HTML文档的标准方法 3.HTML ...
- python-day33--互斥锁
锁的意思就是:一个一个的执行 from multiprocessing import Process,Lock import os import time def work(mutex): mutex ...
- h5 plus/h5+规范使用,模块索引,教你如何去看h5+的手册
最近看了下h5+规范的官网,开始觉得晦涩难懂,确实很乱,不过这也是基于我不理解的情况,终于艰难读完了,现在来分享下心得吧,基本看完文章,按我的方法,应该可以直接上手项目. 我准备的工具 hbuilde ...
- iOS UI-标签控制器(UITabBarController)
#import "AppDelegate.h" #import "FirstViewController.h" #import "SecondView ...
- Dos命令下目录操作
Dos命令下目录操作 1.cd 操作 显示当前目录名或改变当前目录 cd [盘符][路径] 进入指定盘符下的目录 cd [..] ...
- 根据id来实现小程序tab切换,
本例根据绑定id来实现tab切换,但本例仍有缺陷,用for循环数据,无法实现切换.如有大神能够有更好方法,欢迎留言更正 WXML: <view class="tab"> ...
- kettle使用命令行来运行ktr和kjb
1:cmd方式运行 1.ktr的运行:运行transformation文件是通过Pan.bat来运行的. 打开cmd命令行窗口,转到Pan.bat所在的目录,如d:\data-integration, ...
- sublime text3的快捷键
Ctrl + Shift + P 调出命令板(Command Palette) Ctrl + ` 调出控制台 Ctrl + D 选择当前光标所在的词并高亮该词所有出现的位置,再次 C ...