в КХ, у неё столбец hash типа FixedString(16) (для MD5)
                  
                  
                  
                  
                  
                  хочу в неё писать через Кафку
                  
                  
                  (CREATE TABLE IF NOT EXISTS table_local_kafka
                  
                  
                      AS table_local
                  
                  
                          ENGINE = Kafka()
                  
                  
                              SETTINGS
                  
                  
                                  kafka_broker_list = ...:9092',
                  
                  
                                  kafka_topic_list = '...',
                  
                  
                                  kafka_group_name = '...',
                  
                  
                                  kafka_format = 'JSONEachRow';
                  
                  
                  )
                  
                  
                  
                  
                  
                  пуляю в кафку в формате JSONEachRow
                  
                  
                  {"hash": "..."}
                  
                  
                  но тут возникает беда )) JSON не оперирует двоичными данными. надо записать в escaped (\uABCD) виде, беру хэш
                  
                  
                  94eca6fcfbb89178dcd8de560e263c46
                  
                  
                  и пишу как  
                  
                  
                  \u94ec\ua6fc\ufbb8\u9178\udcd8\ude56\u0e26\u3c46
                  
                  
                  
                  
                  
                  но драйвер(?) кафки ругается, 
                  
                  
                   DB::Exception: Too large value for FixedString(16): (while reading the value of key hash): (at row 1)
                  
                  
                  
                  
                  
                  при этом, если выбирать из КХ, указывая формат вывод JSONEachRow, то КХ выводит в hash какую-то белиберду (понятное дело)...
                  
                  
                  т.е. выводить выводит, но принимать - чот нет )))
                  
                  
                  
                  
                  
                  кто-то знает, как победить в виде JSONEachRow? (да, можно как TabSeparated, но это неспортивно )))
                  
                  
                
в кафка engine объявляете String. в select в MatView конвертите что хотите и как хотите, я бы в JSON писал нормальные строки и конвертил их функцией hex
логично... спасибо! (правда, схему таблицы придётся описывать новую))
Обсуждают сегодня