上云无忧 > 文档中心 > 百度数据仓库 Palo - 五分钟快速上手
百度数据仓库 Palo Doris版
百度数据仓库 Palo - 五分钟快速上手

文档简介:
在本教程文档中,我们将为大家介绍使用Palo UI快速体验和使用Palo查询的操作过程。 公有云用户,请先参阅 创建集群 文档创建一个 Palo 集群。 开源用户,需要在 fe.conf 中配置 enable_http_server_v2=true 后,重启 FE 节点。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

在本教程文档中,我们将为大家介绍使用Palo UI快速体验和使用Palo查询的操作过程。

  • 公有云用户,请先参阅 创建集群 文档创建一个 Palo 集群。
  • 开源用户,需要在 fe.conf 中配置 enable_http_server_v2=true 后,重启 FE 节点。

Palo UI是Palo为大家提供的可以快速执行查询请求和进行一些管理操作的Web UI环境。

本文档中演示使用的demo数据和查询例句均来自于 Star Schema Benchmark,用户可以点击下载获取样例数据和SQL语句。

进入Palo UI

在Palo的集群详情页面中,提供了Palo UI的快捷入口。

点击Palo UI按钮,进入Web UI环境。在登录页面输入用户名和密码,用户名是“admin”,密码是用户创建集群时填写的密码。

开源用户可以在浏览器打开 FE 节点的 http_port 端口(默认8030)。

点击登录之后,就可以进入到Palo UI的主页面,默认页面就是Palo查询页面(Playground)。

Palo快速查询页面主要分成三个区域,左侧为表管理区域,包括系统库表和用户自己创建的表。右上区域是SQL执行区域,右下区域为表预览和数据导入以及执行结果区域。 接下来我们在本页面展示从建库、建表、导入数据、查询等主要步骤,帮助初次使用Palo的用户体验一次完整的使用流程。

建库建表

在编辑器区域,我们输入SQL语句创建一个example_db的库。点击执行之后,在下方可以看到执行结果,执行成功之后,刷新左侧表区域,就可以在表管理区域看到新创建的example_db库了。

CREATE DATABASE example_db;

我们的demo数据一共有5份销售相关的订单、日期、客户信息等数据样例,所以我们需要创建5张对应的表。

首先我们在example_db库中创建一个名为lineorder的表。Palo使用DISTRIBUTED关键字设置分桶列,分桶列用于对数据进行水平划分,一般我们选择一个可以帮助数据能够均匀划分的列作为分桶列。此处我们使用lo_orderkey作为分桶列。此处我们还设置了一个副本数为1,因为Palo默认三副本,如果我们集群只购买了一个 Compute Node,则需要手动设置副本数为1。

这个表主要定义了订单号、订单时间以及利润、税收等一些订单主信息。


CREATE TABLE lineorder ( lo_orderkey BIGINT, lo_linenumber BIGINT, lo_custkey INT, lo_partkey INT, lo_suppkey INT,
 lo_orderdate INT, lo_orderpriotity VARCHAR(16), lo_shippriotity INT, lo_quantity BIGINT, lo_extendedprice BIGINT, 
lo_ordtotalprice BIGINT, lo_discount BIGINT, lo_revenue BIGINT, lo_supplycost BIGINT, lo_tax BIGINT, lo_commitdate
 BIGINT, lo_shipmode VARCHAR(11) ) DISTRIBUTED BY HASH(lo_orderkey) PROPERTIES ("replication_num"="1");


然后我们再创建一个date表。使用d_datekey作为分桶列,并设置副本数为1。这个表定义的是更加详细一些的订单日期信息。


CREATE TABLE date ( d_datekey INT, d_date VARCHAR(20), d_dayofweek VARCHAR(10), d_month VARCHAR(11), d_year INT,
 d_yearmonthnum INT, d_yearmonth VARCHAR(9), d_daynuminweek INT, d_daynuminmonth INT, d_daynuminyear INT, d_monthnuminyear
 INT, d_weeknuminyear INT, d_sellingseason VARCHAR(14), d_lastdayinweekfl INT, d_lastdayinmonthfl INT, d_holidayfl INT, 
d_weekdayfl INT ) DISTRIBUTED BY hash(d_datekey) PROPERTIES ( "storage_type"="column", "replication_num"="1");


接下来我们再分别创建剩下三张表,customer,part,supplier,分别记录了客户、商品和供应商的详细信息。


CREATE TABLE customer ( c_custkey INT, c_name VARCHAR(26), c_address VARCHAR(41), c_city VARCHAR(11), c_nation 
VARCHAR(16), c_region VARCHAR(13), c_phone VARCHAR(16), c_mktsegment VARCHAR(11) ) DISTRIBUTED BY hash(c_custkey) 
PROPERTIES ( "storage_type"="column", "replication_num"="1"); CREATE TABLE part ( p_partkey INT, p_name VARCHAR(23),
 p_mfgr VARCHAR(7), p_category VARCHAR(8), p_brand VARCHAR(10), p_color VARCHAR(12), p_type VARCHAR(26), p_size INT,
 p_container VARCHAR(11) ) DISTRIBUTED BY hash(p_partkey) PROPERTIES ( "storage_type"="column", "replication_num"="1");
 CREATE TABLE supplier ( s_suppkey INT, s_name VARCHAR(26), s_address VARCHAR(26), s_city VARCHAR(11), s_nation 
VARCHAR(16), s_region VARCHAR(13), s_phone VARCHAR(16) ) DISTRIBUTED BY hash(s_suppkey) PROPERTIES 
( "storage_type"="column", "replication_num"="1");


表建完之后,可以查看 example_db 中表的信息:

导入数据

Palo 支持多种数据导入方式。具体可以参阅数据导入文档。这里我们使用Web方式便捷导入数据做示例。

首先点击选中需要导入数据的表

然后点击数据导入,进入数据导入页面

点击“下一步”。之后先选择导入文件的列分割符,这里我们是 \t 分割。接着选择需要导入的数据文件

等待文件上传完成,点击选择下方已上传的文件。这时也会看到该文件按照指定分隔符分割后的预览数据(前10行)。

点击“下一步”进入到数据导入配置页面,我们以“lineorder_data”为label,然后点击“导入”按钮。

等待片刻,可以看到数据导入的结果。其中 Status 的状态为 Success,即表示导入成功。点击OK之后,数据导入完成。

由于Web UI支持导入的数据大小有限,因此我们将完整的lineorder数据切分成了六份,此处我们仅导入一份数据作为演示,我们在demo文件中放置了完整数据样本,用户可以根据测试需求进行追加导入全部数据。

我们以同样的方式导入表date、customer、part、supplier对应的数据。

数据查询

简单查询

数据导入完成之后,我们可以执行一些查询语句来查看数据的状态。

可以预览表的一部分数据。

SELECT * FROM lineorder limit 10

或者统计查询表的记录数量。

SELECT COUNT(*) FROM lineorder

分析查询

然后可以按照我们的分析需求,执行查询操作,获取查询结果。


SELECT SUM(LO_EXTENDEDPRICE*LO_DISCOUNT) AS REVENUE FROM lineorder, date WHERE LO_ORDERDATE = D_DATEKEY 
AND D_YEAR = 1993 AND LO_DISCOUNT BETWEEN 1 AND 3 AND LO_QUANTITY < 25;


通过Web UI,我们在页面执行SQL,并且快速获取查询结果。

也可以执行多表的复杂查询


SELECT C_CITY, S_CITY, D_YEAR, SUM(LO_REVENUE) AS REVENUE FROM customer, lineorder, supplier, date WHERE 
LO_CUSTKEY = C_CUSTKEY AND LO_SUPPKEY = S_SUPPKEY AND LO_ORDERDATE = D_DATEKEY AND C_NATION = 'UNITED STATES' 
AND S_NATION = 'UNITED STATES' AND D_YEAR >= 1992 AND D_YEAR <= 1997 GROUP BY C_CITY, S_CITY, D_YEAR ORDER 
BY D_YEAR ASC, REVENUE DESC;


页面查询的执行时间以及结果:

执行时间为 SQL 在服务器端实际执行耗时。因为 UI 界面经过多层代理,所以用户感知的查询延迟略慢于实际SQL的执行时间。

 至此,我们通过 UI 界面完成了一个完整的建库、建表、导入数据和查询流程。更多操作,请参阅开始使用部分文档。

相似文档
  • 在本教程文档中,我们将为大家介绍使用Palo UI快速体验和使用Palo查询的操作过程。 Palo UI是Palo为大家提供的可以快速执行查询请求和进行一些管理操作的Web UI环境。
  • 连接到 PALO 后,您可以通过执行 SQL 语句,开始创建您的第一个 PALO 数据库。 CREATE DATABASE testDb;
  • 现在我们可以在刚刚创建的 testDb 数据库中创建一张表 testTable。建表语句为: CREATE TABLE testDb.testTable ( k1 bigint, k2 varchar(100), v varchar(100) REPLACE ) DISTRIBUTED BY HASH(k1) BUCKETS 8;
  • 目前 PALO 支持两种数据导入方式:BOS 文件导入 和 本地文件导入。 BOS 文件导入: BOS 是百度对象存储的简称。关于如何开通和使用BOS,可以参考 这里。 PALO 通过名为 broker 的进程读取 BOS 上的数据并导入到 PALO 存储引擎中。 我们假设您在 BOS 上已经存放了一个数据文件: bos://yourt_buckets/path/to/file.txt
  • PALO 支持 Mysql 协议访问。您可以使用任意只用标准的 Mysql 客户端或程序库访问 PALO。 使用 MySQL 查询: 通过 MySQL 客户端连接到 PALO 以后,可以通过 show databases; 查看数据库。使用 use db_name; 选择数据库,使用 show tables; 查看数据库中的表。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部