184 похожих чатов

Добрый день. Подскажите, пожалуйста, как указать настройки кастомного формата для

табличной функции 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 новая настройка не применяется. Как у казать, что в файле разделитель столбцов не таб?

5 ответов

9 просмотров
Алексей-Лизунов Автор вопроса

Никто не сталкивался с такой проблемой? Я посмотрел исходники. В исходниках есть такой комментарий для табличной функции 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.

Алексей-Лизунов Автор вопроса
Denny [Altinity]
так вы из clickhouse-client это делаете?

Я сначала в дбивере пробовал, потом в clickhouse-client. Одна и та же ошибка. Хотел поселектить из файла через функцию file. Если в файле табы, то все норм. Если нужен другой разделитель, то ошибка выдаётся. И не понятно как этот разделитель задать :(

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта