словари по ODBC, только ошибка немного другая.
в версии 18.6.0:
2018.11.16 13:32:18.577680 [ 2 ] <Error> ExternalDictionaries: Cannot create external dictionary 'dict_campaign' from config path /etc/clickhouse-server/udb_dictionary.xml: Code: 404, e.displayText() = DB::Exception: ODBC connection string parameter value is unescaped and contains illegal character, e.what() = DB::Exception, Stack trace:
0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x56d1436]
1. clickhouse-server(DB::validateODBCConnectionString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x1d72) [0x5240c72]
в версии 18.14.12:
2018.11.16 13:44:17.861278 [ 19 ] {} <Trace> ReadWriteBufferFromHTTP: Sending request to http://localhost:9018/identifier_quote?connection_string=DSN%3DMSSQL%3BUID%3Dclickhouseuser%3BPWD%3DQmZ5EG%402izTy
2018.11.16 13:44:17.922372 [ 19 ] {} <Error> ExternalDictionaries: Cannot create external dictionary 'dict_campaign' from config path /etc/clickhouse-server/udb_dictionary.xml: Code: 86, e.displayText() = DB::Exception: Received error from remote server /identifier_quote?connection_string=DSN%3DMSSQL%3BUID%3Dclickhouseuser%3BPWD%3DQmZ5EG%402izTy. HTTP status code: 500 Internal Server Error, body: Error getting identifier quote style from ODBC 'Code: 404, e.displayText() = DB::Exception: ODBC connection string parameter value is unescaped and contains illegal character, e.what() = DB::Exception'
, e.what() = DB::Exception, Stack trace:
0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x99e9cd6]
1. clickhouse-server(DB::receiveResponse(Poco::Net::HTTPClientSession&, Poco::Net::HTTPRequest const&, Poco::Net::HTTPResponse&)+0x191) [0x9a022b1]
2. clickhouse-server(DB::ReadWriteBufferFromHTTP::ReadWriteBufferFromHTTP(Poco::URI, std::cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void (std::ostream&)>, DB::ConnectionTimeouts const&, Poco::Net::HTTPBasicCredentials const&, unsigned long)+0x2df) [0x9a19f6f]
проверил несколько версий:
18.1.0 - OK
18.5.1 - OK
18.6.0 - FAIL
18.10.3 - FAIL
18.14.12 - FAIL
проблема была решена путём изменения пароля пользователя, под которым clickhouse ходит к mssql - "QmZ5EG@2izTy". Удалили собаку, и заработало.
Просто оставлю это здесь, вдруг кому поможет сэкономить время.
attached logs, error: ODBC connection string parameter value is unescaped and contains illegal character.
Спасибо за наводку. В моём случае виной был дефис\тире в имени DSN. Очень неочевидно и видимо проблемы с экранированием никуда не исчезли.
Обсуждают сегодня