У меня есть поток AWS Kinesis, и я создал внешнюю таблицу в Hive, указывающую на нее. Затем я создаю таблицу DynamoDB для контрольно-пропускных пунктов и в моем улом запросе я установить следующие свойства, как описан here:AWS Hive + Kinesis на EMR = Понимание контрольной отметки
set kinesis.checkpoint.enabled=true;
set kinesis.checkpoint.metastore.table.name=my_dynamodb_table;
set kinesis.checkpoint.metastore.hash.key.name=HashKey;
set kinesis.checkpoint.metastore.range.key.name=RangeKey;
set kinesis.checkpoint.logical.name=my_logical_name;
set kinesis.checkpoint.iteration.no=0;
У меня есть следующие вопросы:
- я всегда должен начать с
iteration.no
набором до 0? - Всегда ли это начинается с начала сценария (старейшая запись Кинесиса должна быть выселена)?
- Представьте, что я настроил cron, чтобы запланировать выполнение скрипта, как мне получить «следующий» номер итерации?
- Чтобы повторно выполнить сценарий по тем же данным, достаточно ли повторного запуска запроса с тем же номером выполнения?
- Если я заработаю
select * from kinesis_ext_table limit 100
сiteration.no=0
снова и снова, я получу разные/странные результаты, как только первые записи Kinesis начнут выселяться?
Учитывая DynamoDB запись контрольной точки:
{"startSeqNo":"1234",
"endSeqNo":"5678",
"closed":false}
- Что смысл
closed
поля? - Являются ли порядковый номер инкрементальным и существует ли отношение между началом и концом (EG: end-start = количество прочитанных записей)?
- Я заметил, что иногда есть только endSeqNum (no startSeqNum), как мне это интерпретировать?
Я знаю, что вопросов много, но я не мог найти эти ответы в документации.