Palo Doris版五分钟快速入门!

简介: Palo Doris版五分钟快速入门!

在本教程章节中,我将为大家介绍使用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的快捷入口。

640.png

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

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

640.png


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


abb4c92070cf7bdd065c4cd1c00ea71c.png


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


建库建表

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


CREATE DATABASE example_db;


e4094b96f3e5124dfc41a7f3c6862fac.png


我们的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");

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

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 中表的信息:


f2f35d923b7d079c26250fb4e44b5a29.png


导入数据

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

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


64e61aa8bd0e9affc9a0e5d321d74dec.png


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

2c64c3bb27cec93e5b635af3e595695f.png

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

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


117989062740094a46999f507d05aca0.png


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

0abae37bf5bb01170e6e9fdf019514e2.png

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


9c9503563349a9b4d1bf4ebe5778c718.png


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

我们以同样的方式导入表datecustomerpartsupplier对应的数据。

数据查询

简单查询

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

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

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;

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


82416b541bc2e5e889df58f80b484220.png


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

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


相关文章
|
SQL 消息中间件 分布式计算
Apache Doris 系列: 入门篇-数据导入及查询
Apache Doris 系列: 入门篇-数据导入及查询
740 0
|
SQL 关系型数据库 Apache
Apache Doris 系列: 入门篇-创建数据表
Apache Doris 系列: 入门篇-创建数据表
866 0
|
数据采集 消息中间件 存储
3秒学不会Palo Doris的数据导入你打我!(四)
3秒学不会Palo Doris的数据导入你打我!
452 0
|
4月前
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之如何使用UDF来使用Protocol Buffers
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
62 15
|
6月前
|
关系型数据库 MySQL Java
实时计算 Flink版产品使用合集之通过BE的IP进行连接,而不通过FE进行转换,具体的操作步骤是怎样的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之如何配置server-id
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
安全
将云数据仓库ADB的Solr集群的host更改为公网地址
将云数据仓库ADB的Solr集群的host更改为公网地址
81 3
|
Ubuntu 程序员 开发者
实战Elasticsearch6的join类型
elasticsearch6版本新增了join类型,本文通过实战来熟悉和了解该类型
276 0
实战Elasticsearch6的join类型
|
存储 消息中间件 数据挖掘
Palo Doris高级指南来了!
Palo Doris高级指南来了!
191 0
|
SQL 云安全 关系型数据库
Palo Doris不会用?(基础指南)
Palo Doris不会用?(基础指南)
169 0