### 简介
> 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)
```