Palo Doris不会用?(基础指南)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: Palo Doris不会用?(基础指南)

基础使用指南

在快速入门教程中,我们通过 Doris 的 UI 界面完成了 Doris 的一些基本操作。而在实际生产环境中,用户通常需要使用程序连接到 Doris 并进行各种操作。

Doris 采用 MySQL 协议进行通信,因此用户可以标准的 MySQL 客户端,或者使用各种语言的 MySQL 库、JDBC、ODBC 等连接Doris。本文以 MySQL client 为例,通过一个完整的流程向用户展示 Doris 的基本使用方法。

选择 MySQL client 版本时建议采用5.1 之后的版本,因为 5.1 之前不能支持长度超过 16 个字符的用户名。

您可以从这里下载 Linux 版本的 MySQL 客户端:mysql-5.7.22-linux-glibc2.12-x86_64。(解压后,在 bin/ 目录下有 mysql 二进制程序。)

创建用户和数据库

用户在创建 Doris 集群时设置的密码即为 Doris 的 admin 用户的密码。Doris 集群初始默认包含一个 admin 用户,用户可以通过 admin 用户和 Doris 进行初次连接。

mysql -hDORIS_HOST -PDORIS_PORT -uadmin -pyour_password

如果使用的是 8.0 以上版本的 MySQL 客户端,请添加参数:

mysql --default-auth=mysql_native_password -hDORIS_HOST -PDORIS_PORT -uadmin -pyour_password

这里的 host 和 port 为在 Doris 控制台页面给出的MySQL协议连接目标。如果用户绑定了 EIP,则替换为 EIP 即可。

admin 用户拥有集群的全部操作权限。建议仅管理员使用。管理员可以使用 admin 用户创建普通用户并授予相应的权限。

通过下面的命令创建一个普通用户。

CREATE USER 'jack' IDENTIFIED BY 'jack_passwd';

新创建的普通用户默认没有任何权限。我们接下来可以创建一个数据库并授权给用户 jack。

CREATE DATABASE example_db;
GRANT ALL ON example_db to "jack";


之后,我们可以使用 jack 用户进行登录并查看数据库。

mysql -hDORIS_HOST -PDORIS_PORT -ujack -pjack_passwordMySQL>SHOWDATABASES;
+--------------------+
| Database           |
+--------------------+
| example_db         |
| information_schema |
+--------------------+
2 rows in set (0.00 sec)


创建表

首先切换数据库:

USE example_db;

接下来创建一张表:

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");

这里我们创建一个 Star Schema Benchmark 中的 lineorder 表。使用 lo_orderkey 作为分桶列,并设置副本数为1。

默认建表的副本数为3,而当集群的 BE 节点数小于3时,副本数不得大于 BE 节点数。

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


MySQL> SHOW TABLES;
+----------------------+
| Tables_in_example_db |
+----------------------+
| lineorder            |
+----------------------+
2 rows in set (0.01 sec)
mysql> DESC lineorder;
+------------------+-------------+------+-------+---------+-------+
| Field            | Type        | Null | Key   | Default | Extra |
+------------------+-------------+------+-------+---------+-------+
| lo_orderkey      | BIGINT      | Yes  | true  | NULL    |       |
| lo_linenumber    | BIGINT      | Yes  | true  | NULL    |       |
| lo_custkey       | INT         | Yes  | true  | NULL    |       |
| lo_partkey       | INT         | Yes  | false | NULL    | NONE  |
| lo_suppkey       | INT         | Yes  | false | NULL    | NONE  |
| lo_orderdate     | INT         | Yes  | false | NULL    | NONE  |
| lo_orderpriotity | VARCHAR(16) | Yes  | false | NULL    | NONE  |
| lo_shippriotity  | INT         | Yes  | false | NULL    | NONE  |
| lo_quantity      | BIGINT      | Yes  | false | NULL    | NONE  |
| lo_extendedprice | BIGINT      | Yes  | false | NULL    | NONE  |
| lo_ordtotalprice | BIGINT      | Yes  | false | NULL    | NONE  |
| lo_discount      | BIGINT      | Yes  | false | NULL    | NONE  |
| lo_revenue       | BIGINT      | Yes  | false | NULL    | NONE  |
| lo_supplycost    | BIGINT      | Yes  | false | NULL    | NONE  |
| lo_tax           | BIGINT      | Yes  | false | NULL    | NONE  |
| lo_commitdate    | BIGINT      | Yes  | false | NULL    | NONE  |
| lo_shipmode      | VARCHAR(11) | Yes  | false | NULL    | NONE  |
+------------------+-------------+------+-------+---------+-------+
17 rows in set (0.02 sec)


导入数据

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

Broker 导入通过集群内置的 Broker 进程,读取外部存储上的数据进行导入。更多帮助请参阅操作手册中关于 Broker 的介绍。

使用 Broker 导入需要预先将导入数据文件存放到百度对象存储 BOS 上。我们在这里准备了一份 lineorder 表的数据(约 100MB)。用户可以下载后上传到自己的 BOS 中。并开始导入。

lineorder数据示例

如何上传至 BOS 以及从 BOS 导入数据的详细文档可参阅 导入BOS中的数据。

假设用户存放导入文件的 BOS 路径为:bos://example_bucket/lineorder_1.tbl


则我们可以通过以下命令导入数据:

LOAD LABEL example_db.my_first_load
(
    DATA INFILE("bos://example_bucket/lineorder_1.tbl")
    INTO TABLE lineorder
)
WITH BROKER 'bos'
(
    "bos_endpoint" = "http://bj.bcebos.com",
    "bos_accesskey" = "xxxxxxxxxxxxxxxxxxxxxxxxxx",
    "bos_secret_accesskey"="yyyyyyyyyyyyyyyyyyyy"
);
  1. 公有云 Doris 集群的 Broker 名称为 bos。可以通过 SHOW BROKER; 查看。
  2. 本示例中 bos_endpointhttp://bj.bcebos.com。用户需根据不同的地域指定不同的 endpoint。
  3. accesskey 和 secret_accesskey 可以在公有云安全认证中心查看。

Broker 导入是异步命令。以上命令执行成功只表示提交任务成功。

导入是否成功需要根据导入 label,通过 SHOW LOAD 命令查看。本示例的 label 为

my_first_load:
SHOW LOAD WHERE LABLE = "my_first_load";

返回结果中,State 字段为 FINISHED 则表示导入成功。之后我们就可以查询数据了。

数据的查询

Doris 支持绝大部分 SQL 92 和 99 标准中的 SQL 语法,以及部分 SQL 2003 标准中的语法。基本可以涵盖绝大部分 SQL 使用场景。以下通过一些简单的示例进行展示。

简单查询

示例:

MySQL> SELECT * FROM table1 LIMIT 3;
+--------+----------+----------+------+
| siteid | citycode | username | pv   |
+--------+----------+----------+------+
|      2 |        1 | 'grace'  |    2 |
|      5 |        3 | 'helen'  |    3 |
|      3 |        2 | 'tom'    |    2 |
+--------+----------+----------+------+
5 rows in set (0.01 sec)
MySQL> SELECT * FROM table1 ORDER BY citycode;
+--------+----------+----------+------+
| siteid | citycode | username | pv   |
+--------+----------+----------+------+
|      2 |        1 | 'grace'  |    2 |
|      1 |        1 | 'jim'    |    2 |
|      3 |        2 | 'tom'    |    2 |
|      4 |        3 | 'bush'   |    3 |
|      5 |        3 | 'helen'  |    3 |
+--------+----------+----------+------+
5 rows in set (0.01 sec)


Join 查询

示例:

MySQL> SELECT SUM(table1.pv) FROM table1 JOIN table2 WHERE table1.siteid = table2.siteid;
+--------------------+
| sum(`table1`.`pv`) |
+--------------------+
|                 12 |
+--------------------+
1 row in set (0.20 sec)

子查询

示例:

MySQL> SELECT SUM(pv) FROM table2 WHERE siteid IN (SELECT siteid FROM table1 WHERE siteid > 2);
+-----------+
| sum(`pv`) |
+-----------+
|         8 |
+-----------+
1 row in set (0.13 sec)
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
SQL 消息中间件 分布式计算
Apache Doris 系列: 入门篇-数据导入及查询
Apache Doris 系列: 入门篇-数据导入及查询
1980 0
|
4月前
|
存储 BI Shell
Doris基础-架构、数据模型、数据划分
Apache Doris 是一款高性能、实时分析型数据库,基于MPP架构,支持高并发查询与复杂分析。其前身是百度的Palo项目,现为Apache顶级项目。Doris适用于报表分析、数据仓库构建、日志检索等场景,具备存算一体与存算分离两种架构,灵活适应不同业务需求。它提供主键、明细和聚合三种数据模型,便于高效处理更新、存储与统计汇总操作,广泛应用于大数据分析领域。
531 2
|
9月前
|
UED
产品经理-用户体验五要素 - AxureMost
《用户体验五要素》介绍了构建成功用户体验设计的五个层面:战略层、范围层、结构层、框架层和表现层。战略层明确产品目标与用户需求;范围层定义功能和内容需求;结构层规划交互与信息架构;框架层设计界面、导航和信息布局;表现层则通过视觉设计创造感知体验。每一层都依赖于其下一层,形成自下而上的连锁效应,确保各要素相互作用,共同实现用户体验目标。
|
10月前
|
传感器
基于PID控制器的天线方位角位置控制系统simulink建模与仿真
本课题基于MATLAB2022a的Simulink平台,构建并仿真了天线方位角位置控制系统。通过零极点配置法整定PID控制器参数,实现对天线方位角的精确控制。系统由天线驱动装置、角度传感器、PID控制器和电机驱动电路组成,确保天线快速准确地跟踪设定方位角。PID控制器综合比例、积分、微分三个环节,优化响应速度、稳定性和准确性,适用于无线通信、雷达跟踪等领域。
|
9月前
|
人工智能 运维 Cloud Native
【技术产品】DS三剑客:DeepSeek、DataSophon、DolphineSchduler浅析
在大数据与云原生技术快速发展的时代,开源技术成为推动行业进步的重要力量。本文深入探讨了三个备受瞩目的开源产品组件:DeepSeek、DataSophon 和 DolphinScheduler。DeepSeek 是专注于自然语言处理的大语言模型,具备多模态交互和高效推理功能;DataSophon 是大数据云原生平台的智能管家,提供快速部署和智能化运维;DolphinScheduler 则是分布式任务调度系统,支持复杂工作流的编排与执行。三者分别在大语言模型、大数据管理和任务调度领域展现了强大的技术实力,并通过技术互补共同推动AI与大数据技术的深度融合。
1222 2
【技术产品】DS三剑客:DeepSeek、DataSophon、DolphineSchduler浅析
|
关系型数据库 MySQL Linux
在CentOs7虚拟机Linux离线安装mysql5.6(亲测可用)
该博客文章详细记录了在CentOS 7虚拟机上离线安装MySQL 5.6版本的完整过程,包括下载安装包、导入虚拟机、卸载MariaDB、配置文件设置、服务启动和权限配置等步骤。
在CentOs7虚拟机Linux离线安装mysql5.6(亲测可用)
|
JSON 数据挖掘 编译器
Anconda环境下Vscode安装Python(1)
Anconda环境下Vscode安装Python(1)
Anconda环境下Vscode安装Python(1)
|
SQL 分布式计算 关系型数据库
彻底理解Hive中的锁
前面遇到过一次因为Hive中表被锁住了,导致定时任务一直失败。这两天又出现了表被锁,原因是连接hiveserver2过于频繁,mysql连接被打满,引发的连锁反应,导致我们的小时任务一直失败,下午重点注意到这个问题,才解决好。
1810 0
彻底理解Hive中的锁
|
开发框架 缓存 运维
阿里云轻量应用服务器与经济型e和通用算力型u1实例区别及选择参考
在目前阿里云的活动中,价格比较优惠的云服务器有轻量应用服务器与经济型e和通用算力型u1实例的云服务器,尤其是轻量应用服务器2核2G3M带宽61元1年,经济型e实例2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年,是用户关注度最高的几款云服务器。有的新手用户由于是初次使用阿里云服务器,对于轻量应用服务器与经济型e和通用算力型u1实例的相关性能并不是很清楚,本文为大家做个简单的介绍,以供参考。
阿里云轻量应用服务器与经济型e和通用算力型u1实例区别及选择参考
|
存储 分布式计算 Hadoop
HDFS基本原理及操作
通过实验了解HDFS的基本原理,掌握HDFS Shell常用命令。
下一篇
oss云网关配置