zoukankan      html  css  js  c++  java
  • jdbc访问pipelinedb

    建立Stream及视图

    pipeline.execute("create stream caesar(name text,info json);") 
    #创建stream,字段name和info,info为json类型
    pipeline.execute("create continuous view caesar_view as select name,info from caesar;")
    # 创建源于caesar流的caesar_view视图,包括字段name和info

    数据插入

    模板:

    import psycopg2
    from psycopg2.extras import Json
    conn = psycopg2.connect("dbname='pipeline' user='caesar' password='123' host='localhost' port=5432")
    pipeline = conn.cursor()
    caesar = {"name":"ciro","info":{"age":19,"id":2}}
    caesar = {key:Json(value) if isinstance(value,dict) else value for key,value in caesar.items()}
    sql = """insert into caesar (name,info) values ('%(name)s',%(info)s) ;""" %(caesar)
    pipeline.execute(sql)
    conn.commit()

    1.使用psycopg2建立数据库连接

    2.from psycopg2.extras import Json用以转化字典为json存入数据库

    3. {key:Json(value) if isinstance(value,dict) else value for key,value in caesar.items()} 将字典数据转为json

    批量插入

    #数据list
    caesar = [{"name":"ri","info":{"age":20,"id":3}}]
    #将list中字典中value为字典的转为json
    caesar_list=[]
    for ca in caesar:
        caesar_list.append({key:Json(value) if isinstance(value,dict) else value for key,value in ca.items()})
    sql = """insert into caesar (name, info) values (%(name)s,%(info)s);"""
    #批量存入数据库
    pipeline.executemany(sql,caesar_list)

    数据查询

     执行查询语句 select * from caesar_view where name='river';

    rows = pipeline.fetchall() 返回数据元组列表,查询插入的json,返回后为字典

    pipelinedb不支持连续视图的修改和更新

  • 相关阅读:
    CodeForces 1294B Collecting Packages(排序+贪心)
    计算系数(组合数)
    垒骰子(矩阵快速幂)
    蒜头君倒水(矩阵快速幂)
    Buy Tickets POJ
    Billboard HDU
    树状数组求逆序对 附HDU1394
    codeforces 1304D Shortest and Longest LIS
    codeforces 1301C Ayoub's function
    Codeforces 1301B Motarack's Birthday(二分)
  • 原文地址:https://www.cnblogs.com/CaesarLinsa/p/10124555.html
Copyright © 2011-2022 走看看