Doris3.0.3访问minio中csv报mismatched input 'SEPARATOR' expecting {')', ','}

Viewed 22

今天刚入手doris,部署了单节点 doris3.0.3 , minio 验证:https://doris.apache.org/zh-CN/docs/3.0/lakehouse/file 中的读取minio中的文件时一直失败

minio中数据 :

vi 1.csv
1|2
2|3

/usr/local/bin/mc mv /opt/1.csv myminio/doris

doris查询语句:

SELECT * FROM s3 (
    "URI" = "http://192.168.1.5:9002/doris/1.csv",
    "s3.access_key"= "lj6KrKtSngKhgQ9iFFfR",
    "s3.secret_key" = "elmqZYUrE02sbpAR5Wy86lEgEqSqfDdTd4ucYqez",
    "format" = "csv",
    "column_separator" = "|",
    "csv_schema" = "k1:int;k2:int",
    "use_path_style"="true"
);

doris界面log页签日志如下:

2024-12-08 00:18:23,156 WARN (mysql-nio-pool-26|198) [ConnectProcessor.handleQueryException():468] Process one query failed because.
org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = 
mismatched input 'SEPARATOR' expecting {')', ','}(line 1, pos 225)

	at org.apache.doris.qe.ConnectProcessor.executeQuery(ConnectProcessor.java:299) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:243) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:209) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:237) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:414) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: org.apache.doris.nereids.exceptions.ParseException: 
mismatched input 'SEPARATOR' expecting {')', ','}(line 1, pos 225)

	at org.apache.doris.nereids.parser.ParseErrorListener.syntaxError(ParseErrorListener.java:43) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41) ~[antlr4-runtime-4.13.1.jar:4.13.1]
	at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544) ~[antlr4-runtime-4.13.1.jar:4.13.1]
	at org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327) ~[antlr4-runtime-4.13.1.jar:4.13.1]
	at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139) ~[antlr4-runtime-4.13.1.jar:4.13.1]
	at org.apache.doris.nereids.DorisParser.functionCallExpression(DorisParser.java:46912) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.primaryExpression(DorisParser.java:46025) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.valueExpression(DorisParser.java:44285) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.booleanExpression(DorisParser.java:43220) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.expression(DorisParser.java:42476) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.namedExpression(DorisParser.java:42331) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.namedExpressionSeq(DorisParser.java:42417) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.selectColumnClause(DorisParser.java:36681) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.selectClause(DorisParser.java:36628) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.querySpecification(DorisParser.java:36285) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.queryPrimary(DorisParser.java:36188) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.queryTerm(DorisParser.java:35959) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.query(DorisParser.java:35855) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.relationPrimary(DorisParser.java:39880) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.joinRelation(DorisParser.java:37227) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.relation(DorisParser.java:37148) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.relations(DorisParser.java:37069) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.fromClause(DorisParser.java:36794) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.querySpecification(DorisParser.java:36302) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.queryPrimary(DorisParser.java:36188) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.queryTerm(DorisParser.java:35959) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.query(DorisParser.java:35855) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.statementBase(DorisParser.java:1428) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.statement(DorisParser.java:916) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.DorisParser.multiStatements(DorisParser.java:541) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.parser.NereidsParser.toAst(NereidsParser.java:335) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.parser.NereidsParser.parse(NereidsParser.java:276) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.parser.NereidsParser.parseMultiple(NereidsParser.java:255) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.parser.NereidsParser.parseSQL(NereidsParser.java:101) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.parser.NereidsParser.parseSQL(NereidsParser.java:87) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.parser.NereidsParser.parseSQLWithDialect(NereidsParser.java:226) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.nereids.parser.NereidsParser.parseSQL(NereidsParser.java:94) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.ConnectProcessor.executeQuery(ConnectProcessor.java:289) ~[doris-fe.jar:1.2-SNAPSHOT]
	... 8 more

navicate中报错是另一类信息:

1105 - errCode = 2, detailMessage = Can not build s3(): errCode = 2, detailMessage = parse file failed, err: errCode = 2, detailMessage = S3TvfBroker list path exception. path=s3://doris/1.csv, err: errCode = 2, detailMessage = errors while get file status getFileStatus on s3://doris/1.csv: com.amazonaws.SdkClientException: Unable to execute HTTP request: Unsupported or unrecognized SSL message: Unable to execute HTTP request: Unsupported or unrecognized SSL message
时间: 127.925s

minio中桶设置成public,浏览器可以直接访问亦是此异常。

文件换成parquet,错误类似

1 Answers

vim你的数据文件,执行这个截图看看,是否有特殊符号:
:set list

另外执行这个看看
show variables like "%planner%"