关于 MatrixOne Load Data 支持的说明
MySQL 8.0 的完整语法如下所示:
LOAD DATA
[LOW_PRIORITY | CONCURRENT] [LOCAL]
INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[PARTITION (partition_name [, partition_name] ...)]
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(col_name_or_user_var
[, col_name_or_user_var] ...)]
[SET col_name={expr | DEFAULT}
[, col_name={expr | DEFAULT}] ...]
MatrixOne 暂不支持的字段
上述完整的语法结构中,MatrixOne 暂还不支持以下字段:
- REPLACE
- PARTITION
- CHARACTER SET:目前仅支持 UTF8
- FIELDS TERMINATED BY 'string':simdcsv 不接受 \r,\n,Unicode replacement character (0xFFFD).
- FIELDS [OPTIONALLY] ENCLOSED BY 'char':simdCSV 固定是
"。 - FIELDS ESCAPED BY 'char': simdcsv 暂不支持。
- LINES STARTING BY 'string': simdcsv 不支持。'#' 是第一个字符的行都会被过滤掉。
- LINES TERMINATED BY 'string': simdcsv 不支持修改。固定 '\n',
\r\n. - user_var:不支持。变量对应的数据列,被过滤掉。
- SET col_name={expr | DEFAULT}: 不支持。
- LOW_PRIORITY: 不支持
- CONCURRENT:不支持
- LOCAL:不支持。local 需要从 client 端将数据传输到 server 端。
MatrixOne 支持的语法及格式
语法
| 语法 | 描述 |
|---|---|
| use T; | |
| load data | |
| infile 'pathto/file' | |
| ignore | 可选。 加 ignore, 表示字段转到表中列出错时,不会终止整个 load,会记录 warnings 个数,但不记录 warings 内容;不加 ignore, 字段转到表中列出错时,会终止整个 load |
| INTO TABLE tableA | |
| FIELDS TERMINATED BY ',' | 必须,表示字段分割符。通常是','。而 ssb 的是' |
| IGNORE number LINES | 可选,表示忽略掉文件开头的 number 行 |
| (col0,col1,...,coln); | 可选,表示 表中的列名列表。例如,coli 对应表中第 i 个列。例如,数据行 field0 field1 field2 ... fieldN,对应插入到表列 (col0, col1, col2 ,...,colN)如果列 coli 以'@'开头,那么 fieldi 被丢弃; (col0,col1,...,coln) 可以不与表中的列名顺序相同。fieldi 绑定到对应的列名。 如果数据行的字段多于 (col0,col1,...,coln) 或表中的列数,多余的字段被丢弃。 如果数据行的字段少于 (col0,col1,...,coln) 或表中的列数,少的列补 NULL。 如果 load data 语法中没有 (col0,col1,...,coln),相当于 加载到表中的全部列。 |
csv 的格式要求
| 字符 | 描述 |
|---|---|
| 字段分割符 | 通常是',',也可以是其它字符(不是",'\r','\n')。例如:SSB 数据集就是' |
| 字段包含符 | " |
| 行结束符 | \r\n或'\n' |
| 字段 NULL 值 | 对于值 \N , 表示该字段为 NULL,其他任何情况均视为字符串输入 |
| 注释符号 | '#' 作为第一个字符的行都会被过滤掉 |