табличной функции file. Мне нужно прочитать данные из файлов в формате CustomSeparated. Непонятно как задать кастомный разделитель столбцов. Делаю запрос в дбивере вот так:
select
count() as i_count
FROM file('*.gz', 'CustomSeparated', 'line String')
SETTINGS
format_custom_field_delimiter='|'
выдается сообщение об ошибке:
SQL Error [27]: ClickHouse exception, code: 27, host: clickhouse-client.server.com, port: 8123; Code: 27, e.displayText() = DB::Exception: Cannot parse input: expected \n before: \tdatetime\tvalue\t\n2021-10-25 16:00:00\t1731387716631151098: (at row 1)
По умолчанию разделитель format_custom_field_delimiter='\t', как я понял, но через секцию SETTINGS новая настройка не применяется. Как у казать, что в файле разделитель столбцов не таб?
Никто не сталкивался с такой проблемой? Я посмотрел исходники. В исходниках есть такой комментарий для табличной функции file: // Use format settings from global server context + settings from // the SETTINGS clause of the create query. Settings from current // session and user are ignored. Т.е.используются глобальные настройки. Попробовал задавать настройку в самом clickhouse-client: set format_custom_field_delimiter='|' и потом уже запрос select count() as i_count FROM file('*.gz', 'CustomSeparated', 'line String') в system.settings видно что она поменялась, но при выполнении запроса та же ошибка парсинга. Как будто ожидается по прежнему таб в качестве разделителя столбцов. Т.е. настройка не применяется. Не пойму, не реализован что ли такой функционал? Как тогда проселектить из файла с произвольным разделителем? Версия клика - 20.1.
так вы из clickhouse-client это делаете?
Я сначала в дбивере пробовал, потом в clickhouse-client. Одна и та же ошибка. Хотел поселектить из файла через функцию file. Если в файле табы, то все норм. Если нужен другой разделитель, то ошибка выдаётся. И не понятно как этот разделитель задать :(
Обсуждают сегодня