Doris 建表示例(七)

建表語法

使用 CREATE TABLE 命令建立一個表(Table)。更多詳細參數可以查看:

HELP CREATE TABLE;

建表語法:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [database.]table_name(column_definition1[, column_definition2, ...][, index_definition1[, index_definition12,]])[ENGINE = [olap|mysql|broker|hive]][key_desc][COMMENT "table comment"];[partition_desc][distribution_desc][rollup_index][PROPERTIES ("key"="value", ...)][BROKER PROPERTIES ("key"="value", ...)];

Doris 的建表是一個同步命令,命令返回成功,即表示建表成功。

Doris 支持支持單分區和復合分區兩種建表方式。

1)復合分區:既有分區也有分桶

第一級稱為 Partition,即分區。用戶可以指定某一維度列作為分區列(當前只支持整型和時間類型的列),并指定每個分區的取值范圍。

第二級稱為 Distribution,即分桶。用戶可以指定一個或多個維度列以及桶數對數據進行 HASH 分布。

2)單分區:只做 HASH 分布,即只分桶。

字段類型

注:聚合模型在定義字段類型后,可以指定字段的 agg_type 聚合類型,如果不指定,則該列為 key 列。否則,該列為 value 列, 類型包括:SUM、MAX、MIN、REPLACE。

我們以一個建表操作來說明 Doris 的數據劃分。

Range Partition
CREATE TABLE IF NOT EXISTS example_db.expamle_range_tbl
(`user_id` LARGEINT NOT NULL COMMENT "用戶 id",`date` DATE NOT NULL COMMENT "數據灌入日期時間",`timestamp` DATETIME NOT NULL COMMENT "數據灌入的時間戳",`city` VARCHAR(20) COMMENT "用戶所在城市",`age` SMALLINT COMMENT "用戶年齡",`sex` TINYINT COMMENT "用戶性別",`last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "用戶最后一次訪問時間",`cost` BIGINT SUM DEFAULT "0" COMMENT "用戶總消費",`max_dwell_time` INT MAX DEFAULT "0" COMMENT "用戶最大停留時間",`min_dwell_time` INT MIN DEFAULT "99999" COMMENT "用戶最小停留時間"
)
ENGINE=olap
AGGREGATE KEY(`user_id`, `date`, `timestamp`, `city`, `age`, `sex`)
PARTITION BY RANGE(`date`)
(PARTITION `p201701` VALUES LESS THAN ("2017-02-01"),PARTITION `p201702` VALUES LESS THAN ("2017-03-01"),PARTITION `p201703` VALUES LESS THAN ("2017-04-01")
)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 16
PROPERTIES
("replication_num" = "3","storage_medium" = "SSD","storage_cooldown_time" = "2018-01-01 12:00:00"
);
List Partition
CREATE TABLE IF NOT EXISTS example_db.expamle_list_tbl
(`user_id` LARGEINT NOT NULL COMMENT "用戶 id",`date` DATE NOT NULL COMMENT "數據灌入日期時間",`timestamp` DATETIME NOT NULL COMMENT "數據灌入的時間戳",`city` VARCHAR(20) COMMENT "用戶所在城市",`age` SMALLINT COMMENT "用戶年齡",`sex` TINYINT COMMENT "用戶性別",`last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "用戶最后一次訪問時間",`cost` BIGINT SUM DEFAULT "0" COMMENT "用戶總消費",`max_dwell_time` INT MAX DEFAULT "0" COMMENT "用戶最大停留時間",`min_dwell_time` INT MIN DEFAULT "99999" COMMENT "用戶最小停留時間"
)
ENGINE=olap
AGGREGATE KEY(`user_id`, `date`, `timestamp`, `city`, `age`, `sex`)
PARTITION BY LIST(`city`)
(PARTITION `p_cn` VALUES IN ("Beijing", "Shanghai", "Hong Kong"),PARTITION `p_usa` VALUES IN ("New York", "San Francisco"),PARTITION `p_jp` VALUES IN ("Tokyo")
)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 16
PROPERTIES
("replication_num" = "3","storage_medium" = "SSD","storage_cooldown_time" = "2018-01-01 12:00:00"
);

數據劃分

列定義

以 AGGREGATE KEY 數據模型為例進行說明。更多數據模型參閱 Doris 數據模型。

列的基本類型,可以通過在 mysql-client 中執行 HELP CREATE TABLE; 查看。

AGGREGATE KEY 數據模型中,所有沒有指定聚合方式(SUM、REPLACE、MAX、MIN)的列視為 Key 列。而其余則為 Value 列。

定義列時,可參照如下建議:

  • Key 列必須在所有 Value 列之前。

  • 盡量選擇整型類型。因為整型類型的計算和查找比較效率遠高于字符串。

  • 對于不同長度的整型類型的選擇原則,遵循夠用即可。

  • 對于 VARCHAR 和 STRING 類型的長度,遵循 夠用即可。

  • 所有列的總字節長度(包括 Key 和 Value)不能超過 100KB。

接下篇----------Doris分區與分桶

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161420.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161420.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161420.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云99元服務器ECS經濟型e實例性能如何?測評來了

阿里云服務器優惠99元一年,配置為云服務器ECS經濟型e實例,2核2G配置、3M固定帶寬和40G ESSD Entry系統盤,CPU采用Intel Xeon Platinum架構處理器,2.5 GHz主頻,3M帶寬下載速度384KB/秒,上傳速度1028KB/秒&am…

人工智能對我們的生活影響

目錄 前言 一、人工智能的領域 二、人工智能的應用 三、對人工智能的看法 總結 🌈嗨!我是Filotimo__🌈。很高興與大家相識,希望我的博客能對你有所幫助。 💡本文由Filotimo__??原創,首發于CSDN&#x1f4…

運算與表達式模板(第一節)

目錄 前言 一、表達式模板簡介 為什么引入表達式模板? 緩式求值(Memoization) 關系 好處 前言 一個深度學習框架的初步實現為例,討論如何在一個相對較大的項目中深入應用元編程,為系統優化提供更多的可能。 以…

阿里云服務器ECS經濟型e實例優惠99元性能怎么樣?

阿里云服務器ECS經濟型e實例優惠99元性能怎么樣?阿里云服務器優惠99元一年,配置為云服務器ECS經濟型e實例,2核2G配置、3M固定帶寬和40G ESSD Entry系統盤,CPU采用Intel Xeon Platinum架構處理器,2.5 GHz主頻&#xff0…

使用NPOI處理EXCEL文件:例1-關于優化的一些問題

記得有一次處理Excel文件對比,自己前后使用VBA和NPOI對比了下效率。由于涉及到頁面的渲染和刷新,二者的處理速度差了個數量級(10多秒和幾十分鐘的差別)。當然使用NPOI操作時也做了一定優化。印象這么深刻這次一有需求就想到了NPOI…

千云物流 - 使用k8s負載均衡openelb

openelb的介紹 具體根據官方文檔進行安裝官方文檔,這里作為測試環境的安裝使用. OpenELB 是一個開源的云原生負載均衡器實現,可以在基于裸金屬服務器、邊緣以及虛擬化的 Kubernetes 環境中使用 LoadBalancer 類型的 Service 對外暴露服務。OpenELB 項目最初由 KubeSphere 社區…

redis的性能管理及集群架構(主從復制、哨兵模式)

一、redis的性能管理 1、內存指標info memory 內存指標(重要) used_memory:853736 數據占用的內存 used_memory_rss:10551296 redis向操作系統申請的內存 used_memory_peak:853736 redis使用內存的峰值 注:單位:字節 系…

策略模式應用(內窺鏡項目播放不同種類的視頻)

新舊代碼對比 策略模式 基本概念 策略模式是一種行為設計模式,它定義了一系列算法,將每個算法封裝起來,并且使它們可以互相替換。策略模式允許客戶端選擇算法的具體實現,而不必改變客戶端的代碼。這樣,客戶端代碼就…

中國區域250米歸一化植被指數數據集(2000-2022)

中國區域250米歸一化植被指數數據集(2000-2022)數據集是中國區域2000至2022年月度歸一化植被指數產品,空間分辨率250米,合成方式采用月最大值合成,每年12期,共275期。本產品是基于Aqua/Terra-MODIS衛星傳感器MOD13Q1產品以及土地利…

寄存器、緩存、內存之間的關系和區別

https://blog.csdn.net/m0_46761060/article/details/124689209 目錄 關系1、寄存器2、緩存(Cache) 2.1、寄存器和緩存的區別2.2、一級緩存和二級緩存3、內存 3.1、只讀存儲器 ROM(Read Only Memory)3.2、隨機存儲器 RAM&#xf…

基于LLM+場景識別+詞槽實體抽取實現多輪問答

前言 隨著人工智能技術的不斷進步,大語言模型(LLM)已成為技術前沿的熱點。它們不僅能夠理解和生成文本,還能在多種應用場景中實現復雜的交互。本文將深入探討一段結合了大語言模型能力、意圖識別和詞槽實體抽取的Python代碼&…

鏈表OJ--上

文章目錄 前言一、反轉鏈表二、移除鏈表元素三、鏈表中倒數第K個結點四、相交鏈表五、鏈表的中間結點 前言 一、反轉鏈表 力扣206:反轉鏈表- - -點擊此處傳送 思路圖: 方法一:改變指向 方法二: 代碼: //方法一 /…

十一、h.264編碼

前言 測試環境: ffmpeg的4.3.2自行編譯版本windows環境qt5.12 使用H.264編碼對YUV視頻進行壓縮 ffmpeg -s 640x480 -pix_fmt yuv420p -i in.yuv -c:v libx264 out.h264 -c:v libx264是指定使用libx264作為編碼器完整代碼: H264EncodeThread.h #ifnd…

用HALCON標定助手對相機進行標定

任務要求: 已知相機鏡頭焦距f為8mm,相機單個CCD像素在水平和豎直兩個方向上的尺寸均為3.75微米,相機為普通透光鏡頭和面陣相機,對相機進行標定,測量相機的內外參數。 操作步驟: 1. 在HALCON中運行gen_ca…

C#使用whisper.net實現語音識別(語音轉文本)

目錄 介紹 效果 輸出信息 項目 代碼 下載 介紹 github地址:https://github.com/sandrohanea/whisper.net Whisper.net. Speech to text made simple using Whisper Models 模型下載地址:https://huggingface.co/sandrohanea/whisper.net/tree…

Nginx高級

Nginx高級 第一部分:擴容 通過擴容提升整體吞吐量 1.單機垂直擴容:硬件資源增加 云服務資源增加 整機:IBM、浪潮、DELL、HP等 CPU/主板:更新到主流 網卡:10G/40G網卡 磁盤:SAS(SCSI) HDD(機械…

如何使用ArcGIS Pro進行坐標轉換

不同來源的數據坐標系可能是不同的,為了統一使用這些數據就需要進行坐標轉換,ArcGIS Pro作為專業的GIS軟件,坐標轉換功能肯定也是包含的,這里為大家介紹一下ArcGIS Pro如何進行坐標轉換,希望能對你有所幫助。 數據來源…

【Exception】npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY

Talk is cheap, show me the code. 環境 | Environment kversionOSwindows 11nodev18.14.2npm9.5.0 報錯日志 | Error log >npm create vitelatest Need to install the following packages:create-vite5.0.0 Ok to proceed? (y) y npm ERR! code UNABLE_TO_GET_ISSUER_…

2023亞太杯數學建模B題思路+模型+代碼+論文

2023亞太地區數學建模A題思路:開賽后第一時間更新,獲取見文末 名片 2023亞太地區數學建模B題思路:開賽后第一時間更新,獲取見文末 名片 2023亞太地區數學建模C題思路:開賽后第一時間更新,獲取見文末 名片…

idea修改行號顏色

前言 i當idea用了深色主題后,發現行號根本看不清,或者很模糊 例如下面這樣 修改行號顏色 在IntelliJ IDEA中,你可以根據自己的喜好和需求定制行號的顏色。下面是修改行號顏色的步驟: 打開 IntelliJ IDEA。 轉到 “File”&…