Collection Whiz Labs Flashcards
Qual sistema utilizar para batch? E para streaming? E para transacional?
Um possível sistema para ser utilizado para batch é o AWS Glue. Para streaming, o Kinesis Data Stream / Firehose e para transacional o DMS
Como funciona a tolerância a falhas do Kinesis Producer Library ?
O Kinesis Producer Library (KPL) envia um batch de registros para o kinesis. Caso um dos registros falhe por algum motivo, apenas este registro será declarado como falho e terá novas tentativas de envio deste registro em próximos batchs.
Para evitar sobrecarga por retrys, existem limites nos envios por shard de um único producer, ajudando a prevenir retrys excessivas.
Como funciona a persistência dos dados no Kinesis?
Kinesis Data Stream tem alta disponibilidade replicando os dados através das zonas de disponibilidade de uma região.
Kinesis Data Stream pode persistir os dados por 24 horas a 7 dias. Não é uma boa prática utilizar o kinesis para persistência dos dados.
Já o Kinesis Firehose envia os dados diretamente para o destino, não tendo persistência alguma dos dados. Ele pode enviar os dados para S3, Redshift, Elasticsearch, splunk e Kinesis Data Analytics.
Como funciona a tolerância a falhas do Kinesis Consumer Library (KCL)?
Os consumers utilizam uma tabela do DynamoDb para criar um checkpoint dos registros lidos com sucesso. Então em caso de falhas, é possível saber quais registros foram lidos de um shard e iniciar a partir do registro de falha.
É importante utilizar nomes únicos para as aplicações no KCL, visto que as tabelas do DynamoDb utilizam nomes os nomes das aplicações e não é possível ter duas tabelas com o mesmo nome.
Também é importante observar exceções de throughput no DynamoDb, em caso de muitos shards ou checkpoint frequentes.
Quais são as alternativas ao KPL e quando utilizar?
As alternativas ao KPL são KinesisAPI e Kinesis Agent.
A utilização do KinesisAPI é interessante quando é necessário um tempo mais rápido de processamento, visto que o KPL utiliza RecordMaxBufferdTime para enviar as mensagens em batches.
Kinesis Agent é instalado na instância EC2. Ele é capaz de monitorar arquivos, como logs e enviar novos dados para o Kinesis Stream. Ele envia métricas para o CloudWatch para ajudar com tratativas de erros.