Resources

Presto客户端和界面

Shib

项目
GitHub
维护
Tagomori Satoshi
描述
Shib是用由Node.js编写的web客户端,用于Presto和Hive查询。 使用Shib需要安装Node.js,修改你的config.js配置,然后按照Shib项目页面的说明文档进行安装。 Shib也可以作为查询引擎的代理服务器。

Presto ODBC

Prestogres

项目
GitHub
维护
Furuhashi Sadayuki
描述
Prestogres是一个网关服务器,允许客户端使用PostgreSQL协议,通过PostgreSQL ODBC驱动在Presto上执行查询。

Presto类库

以下客户端类库用于从几种程序语言执行查询: C, Java, Node.js, PHP, Python, R, Ruby.

C语言:

PrestoClient C

项目
GitHub
维护
Ivo Herweijer
描述
Presto的C语言客户端。
示例
C Prestoclient Example at GitHub

Java语言:

Presto JDBC Driver

项目
Presto
维护
Presto Team
描述
Presto的JDBC驱动。
示例
String sql = "SELECT * FROM sys.node";
String url = "jdbc:presto://localhost:8080/catalog/schema";
try (Connection connection =
        DriverManager.getConnection(url, "test", null)) {
    try (Statement statement = connection.createStatement()) {
        try (ResultSet rs = statement.executeQuery(sql)) {
            while (rs.next()) {
                System.out.println(rs.getString("node_id"));
            }
        }
    }
}

Node.js语言:

presto-client-node

项目
GitHub
维护
Satoshi Tagomori
描述
Presto的Node.js客户端。
示例
var presto = require('presto-client');

var client = new presto.Client({
    user: 'myname',
    catalog: 'hive',
    schema: 'default',
});

client.execute('show schemas', function(error, data, columns) {
    console.log({databases: data});
});

PHP语言:

PhpPrestoClient

项目
GitHub
维护
Xtendsys-labs
描述
Presto的PHP客户端。
示例
require_once('PhpPrestoClient.php');

// Create a new connection object
// Provide URL and catalog as parameters
$presto = new PhpPrestoClient(
    'http://localhost:8080/v1/statement', 'hive');

// Prepare your SQL request
$presto->PrestoQuery('select * from hive.default.mytable');

// Execute the request and build the result
$presto->WaitQueryExec();

// Get the result
$answer = $presto->GetData();

Language: Python

PyHive

项目
GitHub
维护
Dropbox
描述
PyHive是用于Presto和Hive的Python DB-API和SQLAlchemy接口集。
示例
from sqlalchemy import *
from sqlalchemy.engine import create_engine
from sqlalchemy.schema import *

engine = create_engine('presto://localhost:8080/hive/default')
logs = Table('my_awesome_data',
    MetaData(bind=engine), autoload=True)
print select([func.count('*')], from_obj=logs).scalar()

PrestoClient Python

项目
GitHub
维护
Ivo Herweijer
描述
Presto的Python客户端。
示例
import prestoclient

sql = 'SHOW TABLES'

presto = prestoclient.PrestoClient('localhost')

if not presto.runquery(sql):
    print 'Error: ', presto.getlasterrormessage()
else:
    # We're done now, so let's show the results
    print 'Columns: ', presto.getcolumns()
    if presto.getdata():
        print 'Rows: ', presto.getnumberofdatarows()
        print 'Data: ', presto.getdata()

R语言:

PrestoClient RPresto

项目
GitHub
维护
Ivo Herweijer
描述
Presto的R客户端。
示例
sql <- "SHOW TABLES"

pc <- PrestoClient("localhost")

if (!pc$startquery(sql) ) {
  print(pc$getlasterrormessage() )
} else {
  # Remove TRUE parameter to skip printing status messages
  pc$waituntilfinished(TRUE)
  if (pc$getstatus() == "FAILED") {
    print(pc$getlasterrormessage() )
  }

  # We're done now, so let's show the results
  pc$getdata()
}

Ruby语言:

presto-client-ruby

项目
GitHub
维护
Furuhashi Sadayuki
描述
的Ruby客户端。
示例
require 'presto-client'

# create a client object
client = Presto::Client.new(
  server: 'localhost:8080',
  catalog: 'native',
  schema: 'default',
  user: 'frsyuki',
  http_debug: true,
)

# run a query and get results
columns, rows = client.run('select * from sys.node')
rows.each {|row| p row }

Presto托管

Qubole

产品
Presto as a Service
描述
Presto可以结合到Qubole数据服务平台(QDS)。 QDS是一个网络接口,用于在Amazon的EC2上运行Presto集群,以及执行跨Presto集群的查询。

Presto连接器/插件

MySQL-Teradata

项目
MySQL-Teradata Plugin for Presto
维护
HackShare
描述
此项目不是内置插件,MySQL-Teradata是Presto整体项目的一个分支,它包括一个可用的MySQL-Teradata插件。 此集成已经由维护者Dheeban Govindarajan发布到Google Group。

Presto资源