Настраиваемое именование s3 Confluent Kafka-to-S3 для упрощения разбиения на разделы

Я копирую свои темы kafka в s3 с помощью confluent kafka-connect-s3 https://www.confluent.io/hub/confluentinc/kafka-connect-s3. Я хочу иметь возможность легко запрашивать эти данные с помощью Athena и правильно разбивать их для дешевого / быстрого чтения.

Я хочу разделить по кортежу (год / месяц / день / тема). У меня уже есть часть года / месяца / дня, решенная с помощью Daily partitioner https://docs.confluent.io/kafka-connect-s3-sink/current/index.html#partitioning-records-into-s3-objects. Теперь год = ГГГГ / месяц = ​​ММ / день = ДД вводится в путь, поэтому любые запросы на основе улья оптимизируются / секционируются вовремя. Глядя на объяснение msck, обратите внимание на пример, использующий userid=

https://docs.aws.amazon.com/athena/latest/ug/msck-repair-table.html

Однако на основе этих документов https://docs.confluent.io/kafka-connect-s3-sink/current/index.html#s3-object-names Я вижу {topic} в пути, но нет возможности изменить его на topic = { тема}. Я мог бы встроить это в префикс (вместо env = {env} префикс был бы env = {env} / topic = {topic}), но это кажется излишним с другим единственным дочерним каталогом {topic} под ним.

Я также заметил, что имя темы находится в имени сообщения, разделенном знаком + (вместе с разделом и начальным смещением).

Мой вопрос . . . как я могу получить topic = {topic} в моем пути, чтобы запросы на основе куста автоматически создавали этот раздел? Или я уже получил это бесплатно, указав его в пути (без темы =) или в имени сообщения (опять же, без темы =)


person Daniel Epstein    schedule 12.05.2021    source источник
comment
Примечание: S3 Sink не следует рассматривать как резервную копию, поскольку есть метаданные, которые теряются при записи.   -  person OneCricketeer    schedule 19.05.2021
comment
@OneCricketeer спасибо за это. Какую альтернативу вы бы порекомендовали в качестве резервной копии? Нам не важна большая часть метаданных (за исключением метаданных, таких как смещения потребителя, которые являются отдельной темой, которую мы сами по себе создаем).   -  person Daniel Epstein    schedule 20.05.2021
comment
Есть этот коннектор S3 и несколько разветвляет его, в котором хранятся необработанные двоичные данные, однако я говорю, что это не резервная копия, потому что на самом деле нет надлежащего восстановления орудие труда; это просто необработанные двоичные данные, записанные в S3, поэтому, если вам действительно нужен небольшой RTO, вам нужно подготовиться к этому сценарию с помощью собственных инструментов. То же самое можно сказать и о смещении, поскольку ключи очень важны для этого (также тема _schemas, если вы используете реестр схем)   -  person OneCricketeer    schedule 21.05.2021


Ответы (1)


как я могу получить topic = {topic} в моем пути, чтобы запросы на основе куста автоматически создавали этот раздел?

Нет.

Рекомендуется создать многораздельную таблицу для каждой темы, а не делать тему самим разделом.

person OneCricketeer    schedule 19.05.2021