🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 简介 > Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。Presto是一个OLAP的工具,擅长对海量数据进行复杂的分析;但是对于OLTP场景,并不是Presto所擅长,所以不要把Presto当做数据库来使用。 > 和大家熟悉的Mysql相比:首先Mysql是一个数据库,具有存储和计算分析能力,而Presto只有计算分析能力;其次数据量方面,Mysql作为传统单点关系型数据库不能满足当前大数据量的需求,于是有各种大数据的存储和分析工具产生,Presto就是这样一个可以满足大数据量分析计算需求的一个工具。 ### 结合`SQLAlchemy` ```python # encoding:utf-8 ''' @author: mill @project: demos @file: presto.py @time: 2019/6/5 14:07 @desc: ''' import operator from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String,Date,TIMESTAMP from sqlalchemy.engine import create_engine # Presto engine = create_engine('presto://ip:port/hive/schema') Base = declarative_base() # df = pd.read_sql("select * from voice limit 10000",engine) # print(df) class Voice(Base): __tablename__ = 'voice' type = Column(String) bphonenum = Column(String,primary_key=True) dphonenum = Column(String) starttime = Column(TIMESTAMP) call_time = Column(String) # yiwang=Column(String) # shijian=Column(Date) Session = sessionmaker(bind=engine) session = Session() # print(session.query(Voice).count()) # print(session.query(Voice).filter(Voice.type =='主叫').count()) result = session.query(Voice).slice(0,100).all() for item in result: print(item.type) ```