📜  Apache Presto-基本SQL操作(1)

📅  最后修改于: 2023-12-03 14:39:17.131000             🧑  作者: Mango

Apache Presto - 基本 SQL 操作

什么是 Apache Presto?

Apache Presto 是一个分布式 SQL 查询引擎,可在各种数据源上运行 SQL 查询。它快速、高效,可以在数秒钟内分析 Petabyte 数据,而不需要任何预处理或汇总。它适用于批处理、交互式查询和即席查询等多种用途。

安装

Presto 可以在 Linux 和 Windows 上运行。下面是在 Linux 上安装 Presto 的简单说明。

首先,您需要在本地计算机上安装 Java 8。然后访问官方网站 https://prestosql.io/ 下载最新版本的 Presto。

解压缩 Presto 找到 $PRESTO_HOME/etc 路径下的配置文件,编辑其中的配置,比如节点配置、jdbc 驱动等等,这些设置可能和您连接到的数据源的要求有关。

运行 Presto:

$ $PRESTO_HOME/bin/launcher start
连接到数据源

接下来,您需要连接到要查询的数据源,例如 Hadoop、Cassandra 或 MySQL 数据库。您可以在 Presto 中运行命令,连接到这些数据源。

首先,需要在节点配置中加入对应的数据源 Connector,例如 MySQL Connector。

connector.name=mysql
connection-url=jdbc:mysql://localhost:3306/mydb
connection-user=root
connection-password=secret

在 Pesto 查询界面输入以下命令,以连接到 MySQL 数据库并查询其中的数据。

$ ./presto --server <server>:<port> --catalog mysql --schema mydb
SELECT COUNT(*) FROM orders;
基本查询

查询的基本语法是

SELECT column_name(s) FROM table_name

例如,下面的 SQL 语句将从表格中查询所有的记录。

SELECT * FROM orders

查询特定列:

SELECT column1, column2, ...FROM table_name

查询特定条件的记录:

SELECT * FROM orders WHERE order_date BETWEEN '07-01-2019' AND '07-31-2019'

查询需要从多个表中获取数据的记录:

SELECT orders.order_id, customers.customer_name, orders.order_date FROM orders
JOIN customers ON orders.customer_id = customers.customer_id;
聚合函数

Presto 支持各种聚合函数,例如 COUNT、AVG、SUM、MIN 和 MAX。聚合函数执行关键字实际上是在要查询的列上执行某些计算,例如平均数、计数等等。

下面是通过统计订单的数量来演示如何使用 COUNT 函数。

SELECT COUNT(order_id) as order_count FROM orders

下面是使用 GROUP BY 计算每个月的订单总数。

SELECT MONTH(order_date), COUNT(order_id) 
FROM orders 
GROUP BY MONTH(order_date)
完成查询和退出 Presto

完成查询:

$ exit

停止 Presto:

$ $PRESTO_HOME/bin/launcher stop
结论

在本文中,我们介绍了如何安装 Presto 并连接各种数据源,包括 Hadoop、Cassandra 和 MySQL 数据库。 我们还学习了 Presto 的基本查询语法和聚合函数。 如果您正在考虑使用 Presto 来查询您的数据,那么本文应该是一个很好的起点。