prisma 集成 pipelinedb测试

pipelinedb 是一个基于pg数据库开发的stream sql 数据库,和prisma 集成起来可以开发很
方便的stream 应用

使用docker 安装

项目初始化

  • prisma init

    注意选择数据库类型为pg

prisma init 
  • 修改模板配置
version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.13
    restart: always
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        # uncomment the next line and provide the env var PRISMA_MANAGEMENT_API_SECRET=my-secret to activate cluster security
        # managementApiSecret: my-secret
        databases:
          default:
            connector: postgres
            host: pipelinedb
            port: 5432
            user: pipeline
            password: pipeline
            migrations: true
  pipelinedb:
    image: tkanos/pipelinedb_kafka
    ports:
      - "5432:5432"
  • 初始化数据库
需要添加prisma 数据库,可以通过pg 客户端进行创建,用户密码 pipeline   pipeline
  • 启动
docker-compose up -d
  • deploy service
prisma deploy

效果

schema
prisma 集成 pipelinedb测试_分享
query
prisma 集成 pipelinedb测试_分享_02

mutation
prisma 集成 pipelinedb测试_分享_03
数据库
prisma 集成 pipelinedb测试_分享_04

pipeliendb 简单使用

  • 创建stream
CREATE STREAM stream_test1 (x integer, y integer,z text);
  • 创建 CONTINUOUS
CREATE CONTINUOUS VIEW v_sum as select sum( x + y ) FROM stream_test1;
CREATE CONTINUOUS VIEW V_GROUP AS SELECT count(*) as coun,x,y,z FROM stream_test1 GROUP BY x,y,z;
  • 插入数据
INSERT INTO stream_test1(x,y,z) VALUES(1,2,'A'),(3,4,'B'),(5,6,'C'),(7,8,'D'),(1,2,'A');
  • 查询
select * from v_sum;
select * from v_group;
  • 效果
    prisma 集成 pipelinedb测试_分享_05
    prisma 集成 pipelinedb测试_分享_06

说明

pipelinedb 的stream 特性是一个很不错的功能,实际上集成hasura 的graphql 引擎可能会更方便,后边会有相关的测试集成

参考资料

https://www.pipelinedb.com/
https://github.com/rongfengliang/prisma-pipelinedb-demo