Presto开发指南

Presto介绍

Presto是一个开源的分布式SQL查询引擎,适用于GB到PB级别数据量的交互式分析查询。

它支持 Hive, Cassandra, 关系数据库等多种源数据的在线查询和数据整合,是大规模商业数据仓库进行快速交互式分析的利器。

hive-cli中进行表操作

这里选择在master1节点进行测试

1.打开hive-cli

[root@uhadoop-xxxxxxxx-master1 hadoop]# hive

2.查看hive中数据库列表

hive> show databases;

3.创建新的test数据库

hive> create schema test;

4.向test库中加入新表table_one

hive> create table test.table_one(name string);

5.查看test库中的全部表

hive> show tables from test;

6.向test库的table_one表中插入数据

hive> insert into test.table_one values ('name1'),('name2'),('name3');

7.hive-cli中查询table_one表数据。

hive> select * from test.table_one;
OK
name1
name2
name3

8.退出hive-cli

hive> quit;

presto-cli中进行表操作

1.打开presto-cli

[root@uhadoop-xxxxxxxx-core1 hadoop]# presto-cli --server uhadoop-xxxxxx-master1:28080 --catalog hive --schema test
presto:test>

2.presto-cli 查看hive下全部库信息

presto:test> show schemas from hive;

3.presto-cli 查看hive下test库的表清单

presto:test> show tables from test;

4.presto-cli下进行hive表中数据查询。

presto:test> select * from test.table_one;
 name
-------
 name1
 name2
 name3
(3 rows)

5.直接在presto-cli中进行hive catalog建表操作。

presto:test> create table test.presto_table2(name varchar);

6.直接在presto-cli中进行 insert 操作

presto:test> insert into test.presto_table2 values('myname1'),('myname2');
  • 查询上一步的插入结果:
presto:test> select * from test.presto_table2;
  name
---------
 myname1
 myname2
(2 rows)
  • presto-cli 退出
presto:test> exit;

调用rest-api查看presto集群状态

curl http://uhadoop-xxxxxxxx-master1:28080/v1/cluster

返回:

{
    "runningQueries":0,
    "blockedQueries":0,
    "queuedQueries":0,
    "activeWorkers":3,
    "runningDrivers":0,
    "reservedMemory":0.0,
    "totalInputRows":88,
    "totalInputBytes":2061,
    "totalCpuTimeSecs":1
}