Palo Doris不会用?(基础指南)
本文來源于百度開發者中心https://developer.baidu.com/article/detail.html?id=294240
基礎使用指南
在快速入門教程中,我們通過 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;
接下來創建一張表:
這里我們創建一個 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" );Broker 導入是異步命令。以上命令執行成功只表示提交任務成功。
導入是否成功需要根據導入 label,通過 SHOW LOAD 命令查看。本示例的 label 為 my_first_load:
SHOW LOAD WHERE LABLE = “my_first_load”;
返回結果中,State 字段為 FINISHED 則表示導入成功。之后我們就可以查詢數據了。
數據的查詢
Doris 支持絕大部分 SQL 92 和 99 標準中的 SQL 語法,以及部分 SQL 2003 標準中的語法?;究梢院w絕大部分 SQL 使用場景。以下通過一些簡單的示例進行展示。
簡單查詢
示例:
Join 查詢
示例:
子查詢
示例:
點擊進入獲得更多技術信息~~
總結
以上是生活随笔為你收集整理的Palo Doris不会用?(基础指南)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代码检查规则:Python语言案例详解
- 下一篇: 盘点 Serverless 架构的六个特