建表
- doris的varchar计数方式和mysql有区别,mysql算字符,doris算字节。utf8中一个中文字符占3字节。建议mysql表转移到doris时varchar长度*4 。否则有可能插入报错。
- 语法糖
1
2
3
4
|
CREATE TABLE tmp.mid_result
COMMENT "中间结果暂存表"
AS
SELECT
|
数据导入
- 容易出现脏数据导致不符合schema定义,建议导入数据前清洗制表符、换行符;导入时设置容错率。
Reason: actual column number is less than schema column number.actual number: 22, column separator: [ ], line delimiter: [ ], schema number: 31
- 对于一些需要保留源数据中制表符、换行符的场景,可以在flink connector 中添加以下参数,使用特殊字符作为导入数据的列分隔符和行分隔符。
1
2
3
|
, 'sink.properties.column_separator' = '\x01'
, 'sink.properties.line_delimiter' = '\x02'
, 'sink.properties.escape_delimiters' = 'true'
|
SQL语法特性
- GROUP BY 支持 ROLLUP、CUBE 以及 GROUPING SETS
1
2
3
|
SELECT 部门,员工,SUM(工资)AS TOTAL
FROM DEPART
GROUP BY ROLLUP(部门,员工)
|
- 支持CTE(不包括RECURSIVE语法)。当需要使用
CTE(Common Table Expressions)
作为 insert 操作中的查询部分时,必须指定 WITH LABEL
和 column list 部分或者对CTE
进行包装
1
2
3
4
|
INSERT INTO tbl1 (k1)
select * from (
WITH cte1 AS (SELECT * FROM tbl1), cte2 AS (SELECT * FROM tbl2)
SELECT k1 FROM cte1 JOIN cte2 WHERE cte1.k1 = 1) as ret
|
Bitmap
推荐阅读
浅谈从Google Mesa到百度PALO