P: O que é o Amazon Kinesis Data Firehose?

O Amazon Kinesis Data Firehose é a maneira mais fácil de carregar dados de streaming em datastores e ferramentas de análises. Ele pode capturar, transformar e carregar dados de streaming no Amazon S3, no Amazon Redshift, no Amazon Elasticsearch Service e no Splunk, possibilitando análises praticamente em tempo real com as ferramentas e painéis de inteligência de negócios que você já usa hoje. É um serviço totalmente gerenciado que escala automaticamente para atender à produtividade dos seus dados e exige uma administração contínua. Ele pode separar em lotes, compactar e criptografar os dados antes de carregá-los, o que minimiza o volume de armazenamento usado no destino e aumenta a segurança.

 

P: O que o Amazon Kinesis Data Firehose pode gerenciar por mim?

O Amazon Kinesis Data Firehose gerencia toda infraestrutura, configuração e redes, e todo armazenamento subjacentes necessários para capturar e carregar seus dados no Amazon S3, no Amazon Redshift, no Amazon Elasticsearch Service ou no Splunk. Você não precisa se preocupar com provisionamento, implantação, manutenção contínua do hardware, software nem escrever qualquer outro aplicativo para gerenciar este processo. O Firehose também escala de modo flexível sem exigir nenhuma intervenção ou sobrecarga de desenvolvedor associada. Além disso, o Amazon Kinesis Data Firehose replica de modo síncrono dados em três instalações em uma região AWS, proporcionando alta disponibilidade e resiliência para os dados conforme eles forem sendo transportados para os seus destinos.

P: Como posso utilizar o Amazon Kinesis Data Firehose?

Após o seu cadastro na Amazon Web Services, você pode começar a usar o Amazon Kinesis Data Firehose seguindo estas etapas:

  • Crie um stream de entrega do Amazon Kinesis Data Firehose no console do Firehose ou por meio da operação CreateDeliveryStream.Opcionalmente, você pode configurar uma função do AWS Lambda em seu stream de entrega para preparar e transformar os dados brutos antes de carregar os dados.
  • Configure seus produtores de dados para que eles enviem dados continuamente para seu stream de distribuição usando o Amazon Kinesis Agent ou a Firehose API.
  • O Firehose carrega automática e continuamente seus dados para os destinos que você especificar.

P: O que é uma origem?

Uma origem é o local de geração e captura contínuas dos seus dados de streaming. Por exemplo, uma origem pode ser um servidor de registro em log executando em instâncias do Amazon EC2, um aplicativo executado em dispositivos móveis, um sensor em um dispositivo de IoT ou um stream do Kinesis. 

P: Quais são os limites do Amazon Kinesis Data Firehose?

Para obter mais informações sobre limites, consulte Limites de Amazon Kinesis Data Firehose no guia do desenvolvedor.

 

 

 

P: O que é um stream de entrega?

Um stream de entrega é a entidade subjacente do Amazon Kinesis Data Firehose. Você usa o Firehose criando um stream de distribuição e, em seguida, enviando dados para ele.

P: O que é um registro?

Um registro são os dados de interesse que o seu produtor de dados envia a um stream de distribuição. O tamanho máximo de um registro (antes da codificação base64) é de 1000 KB.

P: O que é um destino?

Um destino é o armazenamento de dados onde os seus dados serão distribuídos. No momento, o Amazon Kinesis Data Firehose é compatível com o Amazon S3, o Amazon Redshift, o Amazon Elasticsearch Service e o Splunk como destinos.

 

 

 

P: Como faço para criar um stream de distribuição?

Você pode criar um stream de entrega do Amazon Kinesis Data Firehose no console do Firehose ou por meio da operação CreateDeliveryStream. Para obter mais informações, consulte Como criar um stream de distribuição.

P: Que formato de compactação eu posso usar?

O Amazon Kinesis Data Firehose permite a compactação dos seus dados antes de entregá-los ao Amazon S3. No momento, o serviço é compatível com os formatos de compactação GZIP, ZIP e SNAPPY. Se os dados já estiverem carregados no Amazon Redshift, somente o GZIP será compatível.

P: Como a compactação funciona durante o uso do recurso de assinatura do CloudWatch Logs?

É possível usar o recurso de assinatura do CloudWatch Logs para fazer o streaming de dados do CloudWatch Logs para o Kinesis Data Firehose. Todos os logs de evento do CloudWatch Logs já estão compactados no formato gzip. Portanto, recomendamos desabilitar a configuração de compactação do Firehose para evitar a compactação dupla. Para obter mais informações sobre o recurso de assinatura do CloudWatch Logs, consulte Subscription Filters with Amazon Kinesis Data Firehose no Guia do usuário do Amazon CloudWatch Logs.  

P: Que tipo de criptografia eu posso usar?

O Amazon Kinesis Data Firehose permite que você criptografe dados após eles serem distribuídos no seu bucket do Amazon S3. Ao criar o seu stream de entrega, você pode optar por criptografar dados com uma chave do AWS Key Management Service (KMS) que seja de sua propriedade. Para obter mais informações sobre o KMS, consulte o AWS Key Management Service.

P: O que é a transformação de dados com o Lambda?

O Firehose pode invocar uma função do AWS Lambda para transformar os dados de entrada antes de entregá-los aos destinos. Você pode configurar uma nova função do Lambda usando um dos blueprints do Lambda fornecidos ou escolher uma função do Lambda existente.

P: O que é o backup do registro de origem?

Se você usar a transformação de dados com o Lambda, poderá ativar o backup do registro de origem e o Amazon Kinesis Data Firehose entregará os dados de entrada não transformados para um bucket S3 separado. Você pode especificar um prefixo extra a ser adicionado na rente do prefixo de tempo UTC “YYYY/MM/DD/HH” gerado pelo Firehose.

P: O que é o registro em log de erros?

Se você ativar a transformação de dados com o Lambda, o Firehose poderá registrar em log qualquer invocação e erro de entrega de dados do Lambda para o Amazon CloudWatch Logs, para que você possa exibir os logs de erro específicos se a invocação ou entrega de dados do Lambda falhar. Para obter mais informações, consulte Como monitorar usando o Amazon CloudWatch Logs.

P: O que significa tamanho do buffer e intervalo do buffer?

O Amazon Kinesis Data Firehose armazena em buffer dados de streaming recebidos de um determinado tamanho ou por um período específico antes de distribuí-los aos seus destinos. Você pode configurar o tamanho e o intervalo do buffer enquanto cria o stream de entrega. O tamanho do buffer é medido em MBs e varia de 1 MB a 128 MB para o destino do Amazon S3, e de 1 MB a 100 MB para o destino do Amazon Elasticsearch Service. O intervalo do buffer é calculado em segundos e varia entre 60 segundos e 900 segundos. Observe que em circunstâncias em que a entrega de dados ao destino fica atrás da gravação de dados no stream de entrega, o Firehose aumenta o tamanho do buffer dinamicamente para que consiga acompanhar e garantir que todos esses dados sejam entregues ao destino.

P: Como o tamanho do buffer é aplicado se eu optar por compactar meus dados?

O tamanho do buffer e aplicado antes da compactação. Como resultado, se você escolher compactar seus dados, o tamanho dos objetos no seu bucket do Amazon S3 poderá ser menor do que o tamanho do buffer especificado.

P: O que é a função IAM que deve ser especificada durante a criação do stream de distribuição?

O Amazon Kinesis Data Firehose assume a função do IAM que você especificar para acessar recursos, como o bucket do Amazon S3 e o domínio do Amazon Elasticsearch. Para obter mais informações, consulte Como controlar o acesso com o Amazon Kinesis Data Firehose, no guia do desenvolvedor do Amazon Kinesis Data Firehose.

P: Qual privilégio é exigido para o usuário do Amazon Redshift que deve ser especificado durante a criação de um stream de distribuição?

O usuário do Amazon Redshift deve ter o privilégio INSERT do Redshift para copiar dados do bucket do Amazon S3 para o cluster do Redshift.

P: O que devo fazer, caso o meu cluster do Amazon Redshift esteja em uma VPC?

Se o seu cluster do Amazon Redshift estiver em uma VPC, você deverá conceder ao Amazon Kinesis Data Firehose acesso ao seu cluster do Redshift desbloqueando endereços IP do Firehose na sua VPC. No momento, o Firehose usa um bloco CIDR para cada região AWS disponível: 52.70.63.192/27 para Leste dos EUA (Norte da Virgínia), 52.89.255.224/27 para Oeste dos EUA (Oregon) e 52.19.239.192/27 para UE (Irlanda). Para obter informações sobre como desbloquear IPs para a sua VPC, consulte Conceda acesso ao Firehose para um destino do Amazon Redshift, no guia do desenvolvedor do Amazon Kinesis Data Firehose.

P: Porque é preciso disponibilizar um bucket do Amazon S3 ao escolher o Amazon Redshift como um destino?

Para o destino Amazon Redshift, o Amazon Kinesis Data Firehose primeiro distribui dados para o bucket do Amazon S3 e depois emite o comando COPY do Redshift para carregar dados do bucket do S3 no cluster do Redshift.

P: O que é a rotação de índice para o destino do Amazon Elasticsearch Service?

O Amazon Kinesis Data Firehose pode rotacionar seu índice do Amazon Elasticsearch Service com base em uma duração. Você pode configurar essa duração enquanto cria seu stream de entrega. Para obter mais informações, consulte Rotação de índice para o destino do Amazon ES, no guia do desenvolvedor do Amazon Kinesis Data Firehose.

P: Porque é preciso disponibilizar um bucket do Amazon S3 ao escolher o Amazon Elasticsearch Service como um destino?

Ao carregar dados no Amazon Elasticsearch Service, o Amazon Kinesis Data Firehose pode fazer o backup de todos os dados ou somente dos dados que não foram entregues. Para utilizar esse recurso e evitar qualquer perda de dados, é necessário disponibilizar um bucket do Amazon S3 para backup.

P: Eu posso alterar as configurações do meu stream de distribuição após a sua criação?
Você pode alterar a configuração do seu stream de distribuição a qualquer momento após a sua criação. Você pode fazer isso usando o Console do Firehose ou a operação UpdateDestination. O stream de distribuição permanece no estado ATIVO enquanto as configurações são atualizadas, e você pode continuar enviando dados para o stream de distribuição. Normalmente, as configurações atualizadas entram em vigor em alguns minutos.

P: Como faço para preparar e transformar dados brutos no Amazon Kinesis Data Firehose?

O Amazon Kinesis Data Firehose permite usar uma função do AWS Lambda para preparar e transformar dados brutos de entrada em seu stream de entrega antes de carregá-los para os destinos. Você pode configurar uma função do AWS Lambda para transformação de dados quando cria um novo stream de entrega ou quando edita um stream de entrega existente.

P: Como faço para retornar os dados preparados e transformados da minha função do AWS Lambda para o Amazon Kinesis Data Firehose?

Todos os registros transformados do Lambda devem ser retornados para o Firehose com os três parâmetros a seguir; caso contrário, o Firehose rejeitará os registros e os tratará como falha na transformação de dados.

  • recordId: o Firehose envia um recordId juntamente com cada registro para o Lambda durante a invocação. Cada registro transformado deve ser retornado com o mesmo recordId. Qualquer incompatibilidade entre o recordId original e o recordId retornado será tratada como falha na transformação de dados. 
  • result: o status do resultado de transformação de cada registro. Os seguintes valores são permitidos para este parâmetro: "Ok" se o registro for transformado com êxito conforme o esperado. “Dropped” se a lógica de processamento descartar o registro intencionalmente conforme o esperado. “ProcessingFailed” se o registro não puder ser transformado conforme o esperado. O Firehose trata os registros retornados com os status “Ok” e “Dropped” como registros processados com êxito, e os registros com o status “ProcessingFailed” como registros com falha no processamento quando ele gera as métricas SucceedProcessing.Records e SucceedProcessing.Bytes. 
  • data: a carga de dados transformados após a codificação based64. 

P: Quais blueprints do Lambda estão disponíveis para preparação e transformação de dados?

O Firehose oferece os seguintes blueprints do Lambda que você pode usar para criar sua função do Lambda para transformação de dados:

  • General Firehose Processing: este blueprint contém a transformação de dados e o modelo de status descrito acima. Use-o para qualquer lógica de transformação personalizada.
  • Apache Log to JSON: este blueprint analisa e converte as linhas de log do Apache em objetos JSON, com nomes de campo predefinidos do JSON.
  • Apache Log to CSV: este blueprint analisa e converte as linhas de log do Apache no formato CSV.
  • Syslog to JSON: este blueprint analisa e converte as linhas do Syslog em objetos JSON, com nomes de campo predefinidos do JSON.
  • Syslog to CSV: este blueprint analisa e converte as linhas do Syslog no formato CSV.

P: Posso manter uma cópia de todos os dados brutos no meu bucket S3?

Sim, o Firehose pode fazer backup de todos os registros não transformados para o seu bucket S3 simultaneamente enquanto entrega registros transformados para o destino. O backup do registro de origem pode ser ativado quando você cria ou atualiza seu stream de entrega.

P: Como adiciono dados ao meu stream de entrega do Amazon Kinesis Data Firehose?

Você pode adicionar dados em um stream de entrega do Amazon Kinesis Data Firehose com o Amazon Kinesis Agent ou as operações PutRecord e PutRecordBatch do Firehose. O Kinesis Data Firehose também é integrado a outras fontes de dados como Kinesis Data Streams, AWS IoT, Amazon CloudWatch Logs e Amazon CloudWatch Events.

P: O que é o Amazon Kinesis Agent?

O Amazon Kinesis Agent é uma aplicação Java predefinida que oferece uma maneira fácil de coletar e enviar dados para o seu stream de distribuição. Você pode instalar o agente em ambientes de servidor baseados no Linux, como servidores da web, servidores de log e servidores de banco de dados. O agente monitora determinados arquivos e envia dados continuamente para o seu stream de distribuição. Para obter mais informações, consulte Como escrever com agentes.

P: Com quais plataformas o Amazon Kinesis Agent é compatível?

No momento, o Amazon Kinesis Agent é compatível com Amazon Linux e Red Hat Enterprise Linux.

P: Onde posso obter o Amazon Kinesis Agent?

Você pode fazer o download e a instalação do Amazon Kinesis Agent usando o comando e o link a seguir:

No Amazon Linux: sudo yum install –y aws-kinesis-agent

No Red Hat Enterprise Linux: sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm                                                                      

Do GitHub: awlabs/amazon-kinesis-agent

P: Como posso utilizar o Amazon Kinesis Agent?

Após a instalação do Amazon Kinesis Agent nos seus servidores, você pode configurá-lo para monitorar determinados arquivos no disco e, então, enviar continuamente novos dados para o seu stream de distribuição. Para obter mais informações, consulte Como escrever com agentes.

P: Qual é a diferença entre as operações PutRecord e PutRecordBatch ?

Uma operação PutRecord permite um único registro de dados em uma chamada de API, e uma operação PutRecordBatch permite vários registros de dados em uma chamada de API. Para obter mais informações, consulte PutRecord e PutRecordBatch.

P: Que linguagens de programação ou plataformas posso usar para acessar a API do Amazon Kinesis Data Firehose?

A API do Amazon Kinesis Data Firehose está disponível em Amazon Web Services SDKs. Para ver uma lista das linguagens de programação ou plataformas para os SDKs do Amazon Web Services, consulte as ferramentas da Amazon Web Services.

P: Como faço para adicionar dados de um stream do Kinesis a um stream de entrega do Firehose?

Quando você cria ou atualiza um stream de entrega por meio do console da AWS ou de APIs do Firehose, você pode configurar um stream do Kinesis como origem do stream de entrega. Uma vez configurado, o Firehose lerá automaticamente os dados do stream do Kinesis e os carregará para os destinos especificados.

P: Com que frequência o Kinesis Data Firehose lê dados de um stream de dados do Kinesis?

O Kinesis Data Firehose chama o GetRecords() do Kinesis Data Streams uma vez por segundo para cada estilhaço do Kinesis.

P: De onde o Kinesis Data Firehose lê dados quando um stream de dados do Kinesis é configurado como origem de um stream de entrega?

Quando configurado como origem de um stream de entrega, o Kinesis Data Firehose começa a ler dados da posição MAIS RECENTE do stream de dados do Kinesis. Para obter mais informações sobre a posição do stream de dados do Kinesis, consulte GetShardIterator na referência de APIs do serviço Kinesis Data Streams.

P: Posso configurar um stream de dados do Kinesis como origem de vários streams de entrega do Firehose?

Sim. No entanto, a chamada ao GetRecords() do Kinesis Data Firehose é considerada em relação ao limite geral do controle de utilização do estilhaço do Kinesis. Portanto, é necessário planejar o stream de entrega juntamente com outros aplicativos do Kinesis para garantir que esse limite geral não seja ultrapassado. Para obter mais informações, consulte Limites do Kinesis Data Streams no guia do desenvolvedor do Kinesis Data Streams.

P: Posso continuar a adicionar dados ao stream de entrega por meio das operações PutRecord e PutRecordBatch quando um stream de dados do Kinesis é configurado como origem?

Não. Quando um stream de dados do Kinesis é configurado como origem de um stream de entrega do Firehose, as operações PutRecord e PutRecordBatch do Firehose são desabilitadas. Em vez disso, adicione dados ao stream de dados do Kinesis por meio das operações PutRecord e PutRecords do Kinesis Data Streams.

P: Como faço para adicionar dados a um stream de entrega do AWS IoT?

Para adicionar dados do AWS IoT ao stream de entrega, crie uma ação do AWS IoT que envia eventos ao stream de entrega. Para obter mais informações. Consulte Writing to Amazon Kinesis Data Firehose Using AWS IoT no guia do desenvolvedor do Kinesis Data Firehose. 

P: Como faço para adicionar dados do CloudWatch Logs a um stream de entrega?

Para adicionar dados do CloudWatch Logs a um stream de entrega do Firehose, crie um filtro de assinatura do CloudWatch Logs que envia eventos a um stream de entrega. Para obter mais informações, consulte Using CloudWatch Logs Subscription Filters no guia do usuário do Amazon CloudWatch.

P: Como faço para incluir dados do CloudWatch Events ao meu stream de entrega do Amazon Kinesis Data Firehose?

Para adicionar dados do CloudWatch Events a um stream de entrega do Firehose, crie uma regra do CloudWatch Events com o stream de entrega como destino. Para obter mais informações, consulte Writing to Amazon Kinesis Data Firehose Using CloudWatch Events no guia do desenvolvedor do Kinesis Data Firehose.

 

P: Com que frequência o Amazon Kinesis Data Firehose distribui dados para o meu bucket do Amazon S3?

A frequência da entrega de dados para o Amazon S3 é determinada pelos valores de tamanho e intervalo do buffer do S3 que você configurou para o seu stream de entrega. O Amazon Kinesis Data Firehose armazena dados de entrada em buffers antes de entregá-los ao Amazon S3. Você pode configurar os valores para o tamanho do buffer (de 1 MB a 128 MB) ou o intervalo do buffer (de 60 a 900 segundos) do S3, e a condição que for atendida primeiro aciona a entrega de dados para o Amazon S3. Observe que em circunstâncias em que a entrega de dados ao destino é ultrapassada pela ingestão de dados no stream de entrega, o Amazon Kinesis Data Firehose aumenta automaticamente o tamanho do buffer para conseguir acompanhar e garantir a entrega de todos esses dados ao destino.

P: Com que frequência o Amazon Kinesis Data Firehose distribui dados para o meu cluster do Amazon Redshift?

Para o destino Amazon Redshift, o Amazon Kinesis Data Firehose primeiro distribui dados para o bucket do Amazon S3 e depois emite o comando COPY do Redshift para carregar dados do bucket do S3 no cluster do Redshift. A frequência das operações COPY de dados do Amazon S3 para o Amazon Redshift é determinada de acordo com a velocidade com a qual o cluster do Redshift consegue finalizar o comando COPY. Se ainda houver dados a copiar, o Firehose emite um novo comando COPY no momento em que o comando COPY anterior for finalizado com êxito pelo cluster do Redshift.

P: Com que frequência o Amazon Kinesis Data Firehose entrega dados para o meu domínio do Amazon Elasticsearch?

A frequência da entrega de dados para o Amazon Elasticsearch Service é determinada pelos valores de tamanho e intervalo do buffer do Elasticsearch que você configurou para o seu stream de entrega. O Firehose bufferiza dados de entrada antes de entregá-los ao Amazon Elasticsearch Service. Você pode configurar os valores para o tamanho do buffer (de 1 MB a 100 MB) ou o intervalo do buffer (de 60 a 900 segundos) do Elasticsearch, e a condição que for atendida primeiro aciona a entrega de dados para o Amazon Elasticsearch Service. Observe que em circunstâncias em que a entrega de dados ao destino é ultrapassada pela ingestão de dados no stream de entrega, o Amazon Kinesis Data Firehose aumenta automaticamente o tamanho do buffer para conseguir acompanhar e garantir a entrega de todos esses dados ao destino.

P: Como os dados são organizados no meu bucket do Amazon S3?

O Amazon Kinesis Data Firehose inclui um prefixo do horário UTC no formato AAAA/MM/DD/HH antes de colocar objetos no Amazon S3. O prefixo é convertido em uma estrutura de pasta do Amazon S3, na qual cada etiqueta separada por uma barra inclinada para a frente (/) torna-se uma subpasta. Você pode modificar a estrutura da pasta incluindo sua própria pasta de nível superior com uma barra inclinada para a frente (por exemplo, myApp/YYYY/MM/DD/HH) ou adicionando texto ao nome da pasta de nível superior YYYY (por exemplo, myApp YYYY/MM/DD/HH). Isso é realizado com a especificação de um prefixo do S3 durante a criação do seu stream de distribuição.

P: Qual é o padrão de nomeação dos objetos do Amazon S3 distribuídos pelo Amazon Kinesis Data Firehose?

O nome do objeto do Amazon S3 segue o padrão DeliveryStreamName-DeliveryStreamVersion-YYYY-MM-DD-HH-MM-SS-RandomString, em que DeliveryStreamVersion começa com 1 e adiciona mais 1 para cada alteração de configuração do stream de distribuição. Você pode alterar configurações de stream de distribuição (por exemplo, o nome do bucket do S3, dicas de buffering, compactação e criptografia) com o Console do Firehose ou por meio da operação UpdateDestination .

P: O que é a pasta de manifestos no meu bucket do Amazon S3?

Para o destino Amazon Redshift, o Amazon Kinesis Data Firehose gera arquivos de manifesto para carregar objetos do Amazon S3 no cluster do Redshift em lote. A pasta de manifestos armazena os arquivos de manifesto gerados pelo Firehose.

P: Qual é a aparência dos documentos do Elasticsearch que sofreram backup no meu bucket do Amazon S3?

Se o modo “todos os documentos” for usado, o Amazon Kinesis Data Firehose encadeará vários registros de entrada com base na configuração de armazenamento em buffer do seu stream de entrega e, então, os entregará ao bucket do S3 como um objeto dele. Independentemente de qual modo de backup esteja configurado, os documentos com falha serão entregues ao bucket do S3 usando um determinado formato JSON, que disponibiliza informações adicionais, como código de erro e horário da tentativa de entrega. Para obter mais informações, consulte Backup do Amazon S3 para o destino do Amazon ES, no guia do desenvolvedor do Amazon Kinesis Data Firehose.  

P: Um único stream de distribuição pode distribuir dados para vários buckets do Amazon S3?

No momento, um único stream de distribuição só pode distribuir dados para um bucket do Amazon S3. Se você desejar que dados sejam distribuídos para vários buckets do S3, é possível criar vários streams de distribuição.

P: Um único stream de distribuição pode distribuir dados para vários clusters ou várias tabelas do Amazon Redshift?

No momento, um único stream de distribuição só pode distribuir dados para um único cluster e uma única tabela do Amazon Redshift. Se você desejar que dados sejam distribuídos para vários clusters ou várias tabelas do Redshift, é possível criar vários streams de distribuição.

P: Um único stream de entrega pode distribuir dados para vários domínios ou índices do Amazon Elasticsearch Service?

No momento, um único stream de entrega só pode distribuir dados para um domínio e um índice do Amazon Elasticsearch Service. Se você desejar que dados sejam entregues para vários domínios ou índices do Amazon Elasticsearch, é possível criar vários streams de entrega.

P: Porque ocorre congestionamento quando envio dados para o meu stream de entrega do Amazon Kinesis Data Firehose?

Como padrão, cada stream de distribuição pode consumir até 2.000 transações/segundo, 5.000 registros/segundo e 5 MB/segundo. Você pode aumentar esse limite facilmente enviando um formulário de aumento de limite de serviço.

P: Por que vejo registros duplicados no bucket do Amazon S3, na tabela do Amazon Redshift ou no índice do Amazon Elasticsearch?

O Amazon Kinesis Data Firehose usa pelo menos uma vez semântica para a entrega de dados. Em alguns casos raros, como timeout de uma solicitação em uma tentativa de entrega de dados, uma nova tentativa de entrega pelo Firehose pode resultar em duplicidades se a solicitação anterior acabar sendo processada. 

P: O que acontece se a entrega de dados para o meu bucket do Amazon S3 falhar?

Se a entrega de dados para o seu bucket do Amazon S3 falhar, o Amazon Kinesis Data Firehose faz novas tentas de entregar os dados a cada 5 segundos durante um período máximo de 24 horas. Se o problema persistir além do período de retenção máximo de 24 horas, os dados serão descartados.

P: O que acontece se a entrega de dados para o meu cluster do Amazon Redshift falhar?

Se a entrega de dados para o seu cluster do Amazon Redshift falhar, o Amazon Kinesis Data Firehose tenta novamente a entrega de dados a cada cinco minutos durante um período máximo de 60 minutos. Após 60 minutos, o Amazon Kinesis Data Firehose ignora o lote atual de objetos do S3 que estão prontos para CÓPIA e segue adiante para o próximo lote. A informação sobre os objetos ignorados é passada para o seu bucket do S3 como um arquivo de manifesto na pasta de erros, que você pode usar para preencher manualmente. Para obter informações sobre como usar o comando COPY nos dados manualmente com os arquivos de manifesto, consulte Como usar um manifesto para especificar arquivos de dados.

P: O que acontece se a entrega de dados para o meu domínio do Amazon Elasticsearch falhar?

Para o destino do Amazon Elasticsearch Service, é possível especificar uma duração para novas tentativas entre 0 e 7.200 segundos durante a criação do stream de entrega. Se a entrega de dados para o seu domínio do Amazon ES falhar, o Amazon Kinesis Data Firehose tenta novamente a entrega de dados durante o período especificado. Após o período de novas tentativas, o Amazon Kinesis Data Firehose ignora o lote atual de dados e segue adiante para o novo lote. Detalhes sobre os documentos ignorados são entregues ao seu bucket do S3 na pasta elasticsearch_failed, que você pode usar para preenchimento manual.

P: O que acontecerá se houver uma falha na transformação de dados?

Há dois tipos de cenários de falha quando o Firehose tenta invocar a função do Lambda para a transformação de dados:

  • O primeiro tipo é quando a invocação da função falha por razões, como atingir o tempo limite da rede e atingir os limites de invocação do Lambda. Nesses cenários de falha, o Firehose repete a invocação três vezes por padrão e, em seguida, ignora esse lote específico de registros. Os registros ignorados são tratados como registros com falha no processamento. Você pode configurar o número de repetições de invocação entre 0 e 300 usando as APIs CreateDeliveryStream e UpdateDeliveryStream. Para esse tipo de falha, você também pode usar o recurso de registro em log de erros do Firehouse para emitir erros de invocação para o CloudWatch Logs. Para obter mais informações, consulte Como monitorar usando o Amazon CloudWatch Logs
  • O segundo tipo de cenário de falha ocorre quando o resultado de transformação de um registro é definido como “ProcessingFailed” quando retorna de sua função do Lambda. O Firehose trata esses registros como registros com falha no processamento. Para esse tipo de falha, você também pode usar o recurso de registro em log do Lambda para emitir logs de erro para o CloudWatch Logs. Para obter mais informações, consulte Como acessar o Amazon CloudWatch Logs for AWS Lambda.

Para ambos os tipos de cenários de falha, os registros com falha no processamento são entregues ao seu bucket S3 na pasta processing_failed.

P: Por que o tamanho de objetos do S3 entregues é maior que o tamanho do buffer que especifiquei na minha configuração de stream de entrega? 

O tamanho dos objetos do S3 entregues devem refletir o tamanho do buffer especificado na maior parte das vezes se a condição de tamanho de buffer for satisfeita antes da condição de intervalo do buffer. No entanto, quando a entrega de dados ao destino fica atrás da gravação de dados no stream de entrega, o Firehose aumenta o tamanho do buffer dinamicamente para que consiga acompanhar e garantir que todos esses dados sejam entregues ao destino. Nessas circunstâncias, o tamanho dos objetos do S# entregues podem ser maiores que o tamanho do buffer especificado.

P: O que é a pasta de erros no meu bucket do Amazon S3?

A pasta de erros armazena os arquivos de manifesto que contêm informações sobre objetos do S3 que não foram carregadas no seu cluster do Amazon Redshift. Você pode recarregar esses objetos manualmente usando o comando COPY do Redshift. Para obter informações sobre como usar o comando COPY nos dados manualmente com os arquivos de manifesto, consulte Como usar um manifesto para especificar arquivos de dados.

P: O que é a pasta elasticsearch_failed no meu bucket do Amazon S3?

A pasta elasticsearch_failed armazena os documentos cujo carregamento no seu domínio do Amazon Elasticsearch falhou. Você pode reindexar esses documentos manualmente para preenchimento.  

P: O que é a pasta processing_failed no meu bucket do Amazon S3?

A pasta processing_failed armazena os registros que tiveram falha na transformação em sua função do AWS Lambda. Você pode reprocessar esses registros manualmente.

P: Como posso monitorar as operações e a performance do stream de entrega do Amazon Kinesis Data Firehose?

O Console do Firehose exibe métricas de performance essenciais, como o volume de dados recebido e o volume de dados distribuído. O Amazon Kinesis Data Firehose também se integra às métricas do Amazon CloudWatch, o que permite coletar, visualizar e analisar métricas para streams de entrega. Para obter mais informações sobre as métricas do Amazon Kinesis Data Firehose, consulte Como monitorar usando as métricas do Amazon CloudWatch no guia do desenvolvedor do Amazon Kinesis Data Firehose.

P: Como posso monitorar as falhas de transformação e de entrega de dados do stream de entrega do Amazon Kinesis Data Firehose?

O Amazon Kinesis Data Firehose integra-se ao Amazon CloudWatch Logs para que você possa visualizar os logs de erro específicos, caso a transformação ou a entrega de dados falhe. Você pode habilitar o registro de erros durante a criação de streams de entrega. Para obter mais informações, consulte Como monitorar usando o Amazon CloudWatch Logs no guia do desenvolvedor do Amazon Kinesis Data Firehose.

P: Como posso gerenciar e controlar o acesso a um stream de entrega do Amazon Kinesis Data Firehose?

O Amazon Kinesis Data Firehose se integra ao AWS Identity and Access Management, um serviço que permite controlar de forma segura o acesso de seus usuários aos serviços e recursos da AWS. Por exemplo, você pode criar uma política que permite que apenas um usuário ou grupo específico adicione dados a um stream de entrega do Amazon Kinesis. Para obter mais informações sobre o gerenciamento e o controle de acesso ao seu stream, consulte Como controlar o acesso com o Amazon Kinesis Data Firehose.

P: Como posso gerar um registro das chamadas de API feitas para um stream de entrega do Amazon Kinesis Data Firehose para fins de análise de segurança e solução de problemas operacionais?

O Amazon Kinesis Data Firehose se integra ao Amazon CloudTrail, um serviço que registra as chamadas de APIs da AWS para sua conta e disponibiliza arquivos de registro para você. Para obter mais informações sobre o registro de chamadas de APIs e uma lista das operações compatíveis das APIs do Amazon Kinesis Data Firehose, consulte Como registrar chamadas de API do Amazon Kinesis Data Firehose usando o Amazon CloudTrail.

P: O Amazon Kinesis Data Firehose está disponível no nível gratuito da AWS?

Não. No momento, o Amazon Kinesis Data Firehose não está disponível no nível gratuito da AWS. O nível gratuito da AWS é um programa que oferece avaliação gratuita para um grupo de serviços da AWS. Para obter mais detalhes, consulte Nível gratuito da AWS.

P: Quanto custa o Amazon Kinesis Data Firehose?
O Amazon Kinesis Data Firehose usa uma definição de preço simples, no modelo de pagamento conforme o uso. Não há custos iniciais nem taxas mínimas, e você paga apenas pelos recursos que usa. A definição de preço do Amazon Kinesis Data Firehose baseia-se no volume de dados (GB) consumido pelo Firehose, com cada registro arredondado para cima para os 5 KB mais próximos. Para obter mais informações sobre os custos do Amazon Kinesis Data Firehose, consulte Definição de preço do Amazon Kinesis Data Firehose.

P: Quando eu uso a operação PutRecordBatch para enviar dados para o Amazon Kinesis Data Firehose, como o arredondamento de 5 KB é calculado?

O arredondamento de 5 KB é calculado no nível do registro e não no nível da operação de API. Por exemplo, se a sua chamada PutRecordBatch contiver dois registros de 1 KB, o volume de dados dessa chamada será medido como 10 KB. (5 KB por registro)

P: O custo do Amazon Kinesis Data Firehose inclui os custos do Amazon S3, do Amazon Redshift, do Amazon Elasticsearch Service e do AWS Lambda?

Não, você será cobrado separadamente pelas taxas associadas ao uso do Amazon S3, do Amazon Redshift, do Amazon Elasticsearch Service e do AWS Lambda, inclusive pelos custos de armazenamento e de solicitações. Para obter mais informações, consulte Definição de preço do Amazon S3Definição de preço do Amazon RedshiftDefinição de preço do Amazon Elasticsearch Service e Definição de preço do AWS Lambda.