Apache Flink: Flink Table API & SQL

[unable to retrieve full-text content]

Как пришли к Table API

Дело в том, что я работаю на проекте Radcom, в котором мы получаем данные о детализации звонков. Имеется источник потоковых данных, которые мы получаем с Kafka, потоков у нас внутри Radcom одиннадцать. Со всех потоков данные идут в формате csv. Этот формат не самый удобный для обработки, потому что он не имеет в себе схему, то есть нам присылают просто голые строки csv, мы имеем какую-то схему, и нам нужно парсить эти строки относительно ее. В одном потоке может находиться сто миллиардов записей в сутки, а это со всех потоков почти семь терабайт в сутки. У нас в Билайне это считается одним из самых больших потоков, которому требуется очень много ресурсов, в год с учетом репликации мы занимаем почти семь петабайт данных. 

Мы принимаем данные в csv и должны их сохранять в Hive в колоночных форматах, чтобы впоследствии аналитики и Data Scientists могли пользоваться этими данными. У нас используются либо ORC, либо Parquet. Попробовали оба формата, пришли к Parquet. Ко всему прочему, поток растет, его необходимо обогащать, потому что некоторые данные к нам еще не приходят, нам нужно их обогащать со своих таблиц. Также наши схемы разрастаются — в поток может приходить еще больше полей. Сейчас, например, в одной таблице 42 поля, а могут сказать, что добавляется еще четыре поля. Такие изменения происходят не раз в полгода-год, а могут произойти раз в месяц. То есть поток все время растет не только в понятии количества записей, но и в самих полях. Имеется у нас такой поток, нам нужно как-то позволять людям с ним взаимодействовать.

Читать далее

© Habrahabr.ru