【MaxCompute】学习笔记基础说明
MaxCompute說明
MaxCompute 適用于數據量大(TB級別),實時性要求不高的場合,它的每個作業的準備,提交等階段要花費數秒時間,因此要求每秒處理幾千至數萬筆事務的業務是不能用 MaxCompute 完成的,這種情況請用 Tablestore。
MaxCompute 采用的是類似于 SQL 的語法,可以看作是標準 SQL 的一個子集,但不能因此簡單的把 MaxCompute 等價成一個數據庫,它在很多方面并不具備數據庫的特征,如事務、主鍵約束。
數據存儲單元
在 MaxCompute 中,所有的數據都被存儲在表中,表是由行和列組成的二維數據結構,每行代表一條記錄,不同的列由列名和列數據類型標識,如下表所示:
| SHOP1 | 1000 |
| SHOP1 | 1500 |
為了提高處理效率,可以對表進行分區(partition),這時數據可以看成由邏輯上獨立的許多塊組成,在使用數據時如果指定了需要訪問的分區名稱,則只會讀取相應的分區,避免全表掃描,在數據量大的時候這個特性非常有用。大部分的數據可以采用日期,地區等屬性進行分區,如下表所示:
| SHOP1 | 1000 | HZ |
| SHOP1 | 1500 | HZ |
| SHOP1 | 1000 | SH |
| SHOP1 | 1500 | SH |
數據類型
| BIGINT | 8 字節有符號整型 |
| BOOLEAN | 布爾型,包括 TRUE/FALSE |
| DOUBLE | 8 字節雙精度浮點數 |
| STRING | 字符串 |
| DATETIME | 日期類型 |
備注:
保留字
以下關鍵字是 MaxCompute 的保留字,在對表、列或是分區命名時請不要使用,否則會報錯。保留字不區分大小寫。
- % & && ( ) * . / ; ? | || + < <= <> => >= ALL AND AS BETWEEN BY CASE CLUSTERED CREATE DESC DISTINCT DROP ELSE END EXISTS EXPORT FALSE FROM FULL GROUP IF IN INTO IS JOIN LEFT LIKE LIMIT LOAD NOT NULL ON OR ORDER OUTER OVER PARTITION PARTITIONED RANGE READ RENAME RESOURCE RIGHT RLIKE SELECT STRING TABLE THEN TO TRUE UNION VIEW WHEN WHERE運算符
關系操作符
| A=B | 如果 A 或 B 為 NULL,返回 NULL;如果 A 等于 B,返回 TRUE,否則返回 FALSE |
| A<>B | 如果 A 或 B 為 NULL,返回 NULL;如果 A 不等于 B,返回 TRUE,否則返回 FALSE |
| A<B | 如果 A 或 B 為 NULL,返回 NULL;如果 A 小于 B,返回 TRUE,否則返回 FALSE |
| A<=B | 如果 A 或 B 為 NULL,返回 NULL;如果 A 小于等于 B,返回 TRUE,否則返回 FALSE |
| A>B | 如果 A 或 B 為 NULL,返回 NULL;如果 A 大于 B,返回 TRUE,否則返回 FALSE |
| A>=B | 如果 A 或 B 為 NULL,返回 NULL;如果 A 大于等于 B,返回 TRUE,否則返回 FALSE |
| A IS NULL | 如果 A 為 NULL,返回 TRUE,否則返回 FALSE |
| A IS NOT NULL | 如果 A 不為 NULL,返回 TRUE,否則返回 FALSE |
| A LIKE B | 如果 A 或 B 為 NULL,返回 NULL,A 為字符串,B 為要匹配的模式,如果匹配,返回 TRUE,否則返回 FALSE?!?‘匹配任意多個字符,’_‘匹配單個字符。要匹配%或_需要用轉義符表示\\%, \\_ ‘aaa’ LIKE ‘a__’ ->TRUE ’aaa’ LIKE ‘a%’ ->TRUE ’aaa’ LIKE ‘aab’ ->FALSE ’a%b’ LIKE ‘a\\%b’ ->TRUE ’axb’ LIKE ‘a\\%b’ ->FALSE |
| A RLIKE B | 如果 A 或 B 為 NULL,返回 NULL,A 是字符串,B 是字符串常量正則表達式,如果 B 為空串會報錯退出。如果匹配成功,返回 TRUE,否則返回 FALSE |
| A IN B | B 是一個集合,如果 A 為 NULL,返回 NULL,如 A 在 B 中則返回 TRUE,否則返回 FALSE |
備注:
算術操作符
| A + B | 如果 A 或 B 為 NULL,返回 NULL;否則返回 A + B 的結果,A 和 B 為數字類型。如果 A 和 B 的類型不同,則自動轉為高一級的類型。 |
| A – B | 如果 A 或 B 為 NULL,返回 NULL;否則返回 A – B 的結果。A 和 B 為數字類型。如果 A 和 B 的類型不同,則自動轉為高一級的類型。 |
| A * B | 如果 A 或 B 為 NULL,返回 NULL;否則返回 A * B 的結果。A 和 B 為數字類型。如果 A 和 B 類型不同,則自動轉為高一級的類型。 |
| A / B | 如果 A 或 B 為 NULL,返回 NULL;否則返回 A / B 的結果。A 和 B 為數字類型,結果為 DOUBLE 類型。 |
| A % B | 如果 A 或 B 為 NULL,返回 NULL;否則返回 A 模 B 的結果。 |
| +A | 仍然返回 A |
| -A | 如果 A 為 NULL,返回 NULL,否則返回-A |
備注:
算術運算符(+, -, *, /, %)會做隱式類型轉換,當 double、bigint 或 string 做運算時,會轉換成 double 類型。
位運算操作符
| A & B | 返回 A 與 B 進行按位與的結果。例如: 1&2 返回 0,1&3 返回 1,NULL 與任何值按位與都為 NULL。A 和 B 必須為 bigint 類型。 |
| A | B |
備注:
位運算符不支持隱式轉換,只允許 bigint 類型。
邏輯操作符
| A AND B | TRUE AND TRUE=TRUE TRUE AND FALSE=FALSE FALSE AND TRUE=FALSE FALSE AND NULL=FALSE NULL AND FALSE=FALSE TRUE AND NULL=NULL NULL AND TRUE=NULL NULL AND NULL=NULL |
| A OR B | TRUE OR TRUE=TRUE TRUE OR FALSE=TRUE FALSE OR TRUE=TRUE FALSE OR NULL=NULL NULL OR FALSE=NULL TRUE OR NULL=TRUE NULL OR TRUE=TRUE NULL OR NULL=NULL |
| NOT A | 如果 A 是 NULL,返回 NULL;如果 A 是 TRUE,返回 FALSE;如果 A 是 FALSE,返回 TRUE |
備注:
邏輯操作符只允許 boolean 類型參與運算,不支持隱式類型轉換。
總結
以上是生活随笔為你收集整理的【MaxCompute】学习笔记基础说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【MYSQL】分组之后获取每组最新的数据
- 下一篇: 【MaxCompute】学习笔记操作表s