Conceitos gerais e de ETL de transmissão

P: O que é ETL de transmissão?

ETL de transmissão é o processamento e a movimentação de dados em tempo real de um lugar para outro. ETL é a abreviação de extração, transformação e carga das funções de banco de dados. Extração se refere à coleta de dados de alguma fonte. Transformação se refere a qualquer processo executado nesses dados. Carga se refere ao envio dos dados processados para um destino, como um depósito, um datalake ou uma ferramenta analítica.

P: O que é o Amazon Kinesis Data Firehose?

Kinesis Data Firehose é uma solução de ETL de transmissão. É a maneira mais fácil de carregar dados de transmissão em armazenamentos de dados e ferramentas de análises. O serviço pode capturar, transformar e carregar dados de transmissão 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 business intelligence que você já usa hoje. É um serviço gerenciado que escala automaticamente para acompanhar o throughput dos dados e não 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 é a fonte no Kinesis Data Firehose?

Uma fonte é o local de geração e captura contínuas dos seus dados de transmissão. Por exemplo, uma fonte pode ser um servidor de registro em log executando em instâncias do Amazon EC2, uma aplicação executando em dispositivos móveis ou um sensor em um dispositivo de IoT. Você pode conectar suas fontes ao Kinesis Data Firehose usando 1) API do Amazon Kinesis Data Firehose, que usa o AWS SDK for Java, .NET, Node.js, Python ou Ruby. 2) Kinesis Data Stream, em que o Kinesis Data Firehose lê dados facilmente de um fluxo de dados Kinesis existente e os carrega nos destinos Kinesis Data Firehose. 3) Serviço com suporte nativo da AWS, como AWS Cloudwatch, AWS EventBridge, AWS IOT ou AWS Pinpoint. Para obter a lista completa, leia o Guia do desenvolvedor do Amazon Kinesis Data Firehose. 4) Kinesis Agents, que é uma aplicação de software Java autônoma que monitora continuamente um conjunto de arquivos e envia novos dados ao seu fluxo. 5) Fluentbit, que é um processador e encaminhador de log de código aberto. 6) AWS Lambda, que é um serviço computacional sem servidor que permite que você execute o código sem provisionar ou gerenciar servidores. Você pode escrever sua função Lambda para enviar tráfego de S3 ou DynamoDB para Kinesis Data Firehose com base em um evento acionado.

P: O que é o destino no Kinesis Data Firehose?

Um destino é o armazenamento de dados onde os seus dados serão entregues. O Amazon Kinesis Data Firehose é compatível com o Amazon S3, Amazon Redshift, Amazon Elasticsearch Service, Splunk, Datadog, NewRelic, Dynatrace, Sumologic, LogicMonitor, MongoDB e endpoints HTTP como destinos.

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

O Kinesis Data Firehose gerencia todos os recursos subjacentes de infraestrutura, armazenamento, redes e configuração 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 outra aplicação para gerenciar este processo. O Kinesis Data Firehose também escala de forma elástica sem exigir nenhuma intervenção ou sobrecarga de desenvolvedor associada. Além disso, o 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 à medida que são transportados para os seus destinos.

P: Como posso utilizar o Kinesis Data Firehose?

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

  • Crie um fluxo de entrega do 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 fluxo de entrega para preparar e transformar os dados brutos antes de carregar os dados.
  • Configure seus produtores de dados para que enviem continuamente dados para seu fluxo de entrega usando o Amazon Kinesis Agent ou a API do Firehose.
  • O Firehose carrega seus dados para os destinos que você especificar de forma automática e contínua.

P: O que é o fluxo de entrega no Kinesis Data Firehose?

Um fluxo de entrega é a entidade subjacente do Kinesis Data Firehose. Você usa o Firehose criando um fluxo de entrega e enviando dados para ele. Você pode criar um fluxo de entrega do Kinesis Data Firehose no console do Firehose ou por meio da operação CreateDeliveryStream. Para obter mais informações, consulte Como criar um fluxo de entrega.

P: O que é um registro no Kinesis Data Firehose?

Um registro são os dados de interesse que o seu produtor de dados envia a um fluxo de entrega. O tamanho máximo de um registro (antes da codificação Base64) é de 1.024 KB.

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

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

Fontes de dados

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

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

P: O que é o Amazon Kinesis Agent?

O Kinesis Agent é uma aplicação Java predefinido que oferece uma maneira fácil de coletar e enviar dados para o seu fluxo de entrega. Você pode instalar o agente em ambientes de servidor baseados em Linux, como servidores Web, servidores de log e servidores de banco de dados. O agente monitora determinados arquivos e envia continuamente dados para o seu fluxo de entrega. No momento, o Amazon Kinesis Agent é compatível com o Amazon Linux, o Red Hat Enterprise Linux e o Microsoft Windows. Para obter mais informações, consulte Gravar no Kinesis Data Firehose por meio do agente do Kinesis.

P: Onde posso obter o Amazon Kinesis Agent?

Você pode baixar e instalar o 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
  • No Windows: https://docs.aws.amazon.com/kinesis-agent-windows/latest/userguide/getting-started.html#getting-started-installation

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

Você pode adicionar dados a um fluxo de entrega do Kinesis Data Firehose com o Kinesis Agent ou com as operações PutRecord e PutRecordBatch do Firehose. A operação PutRecord permite um único registro de dados em uma chamada de API e a operação PutRecordBatch permite vários registros de dados em uma chamada de API. Para obter mais informações, consulte PutRecord e PutRecordBatch.

P: Como faço para adicionar dados ao meu Kinesis Data Firehose de um fluxo de entrega do Kinesis Data Stream?

Quando você cria ou atualiza um fluxo de entrega por meio do Console AWS ou de APIs do Firehose, você pode configurar um Kinesis Data Stream como fonte do fluxo de entrega. Uma vez configurado, o Firehose lerá automaticamente os dados do Kinesis Data Stream 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 fragmento do Kinesis.

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

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

P: Posso configurar um Kinesis Data Stream como fonte de vários fluxos de entrega do Kinesis Data 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 fluxo 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 fluxo de entrega por meio das operações PutRecord e PutRecordBatch quando um Kinesis Data Stream é configurado como fonte?

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

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

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

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

Para adicionar dados do CloudWatch Logs a um fluxo de entrega do Kinesis Data Firehose, crie um filtro de assinatura do CloudWatch Logs que envia eventos a um fluxo de entrega. Para obter mais informações, consulte Uso de filtros de assinatura do CloudWatch Logs no manual do usuário do Amazon CloudWatch.

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

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

P: Como faço para incluir dados do AWS Eventbridge ao meu fluxo de entrega do Amazon Kinesis Data Firehose?

Você adiciona dados ao fluxo de entrega do Kinesis Data Firehose a partir do console AWS EventBridge. Para obter mais informações, consulte a documentação do AWS EventBridge.

P: Que tipo de criptografia eu posso usar?

O Kinesis Data Firehose permite que você criptografe dados depois de entregues ao seu bucket do Amazon S3. Ao criar o seu fluxo 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: Qual função do IAM devo especificar durante a criação do fluxo de entrega?

O 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 Kinesis Data Firehose no guia do desenvolvedor do Kinesis Data Firehose.

Transformação de dados e conversão de formato

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

O Kinesis Data Firehose é compatível com a conversão de formatos de dados de dados brutos ou Json para nos formatos exigidos pelos armazenamentos de dados de destino, sem precisar construir seus próprios pipelines de processamento de dados. O Kinesis Data Firehose também permite que você particione dinamicamente dados de transmissão antes de entregá-los ao S3 usando chaves bem definidas estática ou dinamicamente como “customer_id” ou “transaction_id”. O Kinesis Data Firehose agrupa os dados por essas chaves e entrega em prefixos exclusivos de chave do S3, facilitando a realização de análises econômicas de alta performance no S3 usando Athena, EMR e Redshift Spectrum.

Além disso, para a opção de conversão em formatos integrados no Amazon Kinesis Data Firehose, você pode usar uma função do AWS Lambda para preparar e transformar dados brutos de entrada em seu fluxo 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 fluxo de entrega ou quando edita um fluxo de entrega existente. A Amazon criou vários esquema do Lambda que você pode escolher para um início rápido. Para obter a lista completa, leia o Guia do desenvolvedor do Amazon Kinesis Data Firehose.

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 oferece suporte aos formatos de compactação GZIP, ZIP e SNAPPY. Se os dados já estiverem carregados no Amazon Redshift, somente o GZIP poderá ser usado.

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 Filtros de assinatura com o Amazon Kinesis Data Firehose no manual do usuário do Amazon CloudWatch Logs.

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.
  • dados: a carga útil de dados transformada após a codificação based64.

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

Se você habilitar a transformação de dados com o Lambda, o Firehose poderá registrar no Amazon CloudWatch Logs qualquer erro de invocação e entrega de dados do Lambda para poder visualizar os logs de erro específicos em caso de falha na invocação ou entrega de dados do Lambda. Para obter mais informações, consulte Monitoramento com o Amazon CloudWatch Logs.

P: O que é o backup do registro da fonte?

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

Transformação de dados integrados para o Amazon S3

P: Quando devo usar o particionamento dinâmico do Kinesis Data Firehose?

O particionamento dinâmico do Kinesis Data Firehose elimina as complexidades e os atrasos do particionamento manual na fonte ou após o armazenamento dos dados e permite análises mais rápidas para consultar conjuntos de dados otimizados. Isso torna os conjuntos de dados imediatamente disponíveis para ferramentas analíticas para executar suas consultas com eficiência e aprimora o controle de acesso refinado para os dados. Por exemplo, os clientes de automação de marketing podem particionar dados dinamicamente por ID do cliente, permitindo que consultas específicas do cliente consultem conjuntos de dados otimizados e forneçam resultados mais rapidamente. Os clientes de operações de TI ou monitoramento de segurança podem criar agrupamentos com base no carimbo de data/hora do evento embutido em logs para consultar conjuntos de dados otimizados e obter resultados mais rapidamente. Esse recurso combinado com o recurso de conversão do formato JSON-to-parquet do Amazon Kinesis Data Firehose faz dele uma opção de ETL de transmissão ideal para o S3.

P: Como configuro o particionamento dinâmico com o Kinesis Data Firehose?

Você pode configurar o recurso de particionamento de dados do Kinesis Data Firehose por meio do Console de gerenciamento da AWS, CLIs ou SDKs. Ao criar ou atualizar um fluxo de entrega Kinesis Data Firehose, selecione Amazon S3 como o destino para o fluxo de entrega e habilite o particionamento dinâmico. Você pode especificar chaves ou criar uma expressão que será avaliada em tempo de execução para definir as chaves usadas para particionamento. Por exemplo, é possível selecionar um campo de dados no fluxo de entrada, como ID do cliente, e definir uma expressão de prefixo do S3, como customer_id =!{partitionKey:customer_id}/, que será avaliado em tempo de execução com base nos registros ingeridos para definir para qual prefixo do S3 entrega os registros.

P: Que tipo de transformações e processamento de dados posso fazer com particionamento dinâmico e com chaves de particionamento?

O Kinesis Data Firehose é compatível com a conversão parquet/orc alternativa quando você grava seus dados no Amazon S3. o Kinesis Data Firehose também se integra com a função Lambda, para que você possa escrever seu próprio código de transformação. O Kinesis Data Firehose também possui suporte integrado para extrair os principais campos de dados de registros que estão no formato JSON. O Kinesis Data Firehose também oferece suporte à linguagem de análise JQ, para permitir transformações nessas chaves de partição. Para saber mais, consulte o guia do desenvolvedor do Kinesis Data Firehose.

Entrega de dados e destinos

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

Sim, o Kinesis Data 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 habilitado quando você cria ou atualiza seu fluxo de entrega.

P: Com que frequência o Kinesis Data Firehose entrega 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 fluxo de entrega. O 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 acionará a entrega de dados para o Amazon S3. Se você tiver parquet ou particionamento dinâmico do Apache habilitado, o tamanho do buffer está em MBs e varia de 64 MB a 128 MB para o destino Amazon S3, com 128 MB sendo o valor padrão. Observe que em circunstâncias em que a entrega de dados ao destino não consegue acompanhar o consumo de dados do fluxo de entrega, o Kinesis Data Firehose aumenta dinamicamente o tamanho do buffer para recuperar o atraso e garantir que todos esses dados sejam entregues ao destino.

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

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

P: Quais privilégios devo especificar para o usuário do Amazon Redshift durante a criação de um fluxo de entrega?

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. Para obter informações sobre como desbloquear IPs para a sua VPC, consulte Conceder 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 entrega os 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 Kinesis Data Firehose pode alternar seu índice do Amazon Elasticsearch Service com base em uma duração. Você pode configurar essa duração enquanto cria seu fluxo de entrega. Para obter mais informações, consulte Rotação de índice para o destino do Amazon Elasticsearch 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 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 fluxo de entrega após a sua criação?

Você pode alterar a configuração do seu fluxo de entrega a qualquer momento após a sua criação. Você pode fazer isso usando o console do Firehose ou a operação UpdateDestination. O fluxo de entrega permanece no estado ACTIVE enquanto as configurações são atualizadas, e você pode continuar a enviar dados para o fluxo de entrega. Normalmente, as configurações atualizadas entram em vigor em alguns minutos.

Ao fazer a entrega para um destino de VPC, você pode alterar o URL do endpoint de destino, desde que o novo destino fique acessível dentro da mesma VPC, sub-redes e grupos de segurança. Para alterações de VPC, sub-redes e grupos de segurança, você precisa recriar o fluxo de entrega do Firehose.

P: Posso usar um fluxo de entrega do Kinesis Data Firehose em uma conta para entregar meus dados em um destino de VPC do domínio do Amazon Elasticsearch Service em uma conta diferente?

Não. Seu fluxo de entrega do Kinesis Data Firehose e o domínio do Amazon Elasticsearch Service de destino precisam estar na mesma conta.

Q: Posso usar um fluxo de entrega do Kinesis Data Firehose em uma região para entregar meus dados em um destino de VPC do domínio do Amazon Elasticsearch Service em uma região diferente?

Não. Seu fluxo de entrega do Kinesis Data Firehose e o domínio do Amazon Elasticsearch Service de destino precisam estar na mesma região.

P: Com que frequência o 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 fluxo de entrega. O Firehose armazena em buffer 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 não consegue acompanhar o consumo de dados do fluxo de entrega, o Amazon Kinesis Data Firehose aumenta dinamicamente o tamanho do buffer para recuperar o atraso e garantir que todos esses dados sejam entregues ao destino.

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 manifestos 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 fluxo de entrega e, então, os entregará ao bucket do S3 como um objeto do S3. 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 fluxo de entrega pode entregar dados para vários buckets do Amazon S3?

No momento, um único fluxo de entrega só pode entregar dados para um bucket do Amazon S3. Se você desejar que os dados sejam entregues para vários buckets do S3, poderá criar vários fluxos de entrega.

P: Um único fluxo de entrega pode entregar dados para vários clusters ou várias tabelas do Amazon Redshift?

No momento, um único fluxo de entrega só pode entregar dados para um único cluster e uma única tabela do Amazon Redshift. Se você desejar que os dados sejam entregues para vários clusters ou várias tabelas do Redshift, poderá criar vários fluxos de entrega.

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

No momento, um único fluxo de entrega só pode entregar 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, poderá criar vários fluxos de entrega.

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

Quando você habilita o Kinesis Data Firehose a entregar dados a um destino do Amazon Elasticsearch Service em uma VPC, o Amazon Kinesis Data Firehose cria uma ou mais interfaces de rede elástica (ENI) entre contas em sua VPC para cada sub-rede que você escolher. O Amazon Kinesis Data Firehose usa essas ENIs para entregar os dados em sua VPC. O número de ENIs é dimensionado automaticamente para atender aos requisitos do serviço.

Solução de problemas e gerenciamento de streams de entrega

P: Porque a velocidade de envio de dados para o meu fluxo de entrega do Amazon Kinesis Data Firehose é limitada?

Como padrão, cada fluxo de entrega 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 ou clusters do Splunk?

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 acontecerá 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 tentará novamente a entrega de dados a cada cinco minutos durante um período máximo de 120 minutos. Após 120 minutos, o Amazon Kinesis Data Firehose ignorará o lote atual de objetos do S3 que estão prontos para CÓPIA e seguirá adiante para o próximo lote. A informação sobre os objetos ignorados é passada para o seu bucket do S3 como um arquivo 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 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 fluxo 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 Firehose para emitir erros de invocação para o CloudWatch Logs. Para obter mais informações, consulte Monitoramento com 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 fluxo 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 não consegue acompanhar a gravação de dados no fluxo de entrega, o Firehose aumenta dinamicamente o tamanho do buffer para recuperar o atraso e garantir que todos esses dados sejam entregues ao destino. Nessas circunstâncias, o tamanho dos objetos do S3 entregues pode ser maior 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 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 fluxo de entrega do Amazon Kinesis Data Firehose?

O console do Firehose exibe métricas de performance essenciais, como os volumes de dados recebidos e entregues. O Amazon Kinesis Data Firehose também é integrado às métricas do Amazon CloudWatch, o que permite coletar, visualizar e analisar métricas para fluxos 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 fluxo de entrega do Amazon Kinesis Data Firehose?

O Amazon Kinesis Data Firehose é integrado ao Amazon CloudWatch Logs para que você possa visualizar logs de erro específicos em caso de falha na transformação ou na entrega. Você pode habilitar o registro de erros durante a criação de fluxos 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 fluxo 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 fluxo de entrega do Amazon Kinesis. Para obter mais informações sobre o gerenciamento e o controle de acesso à sua transmissão, consulte Como controlar o acesso com o Amazon Kinesis Data Firehose.

P: Como posso gerar um registro das chamadas de API feitas para um fluxo 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 é integrado ao AWS CloudTrail, um serviço que registra as chamadas de APIs da AWS para sua conta e disponibiliza os arquivos de registro. 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 AWS CloudTrail.

Preço e faturamento

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

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

P: Qual o custo do Kinesis Data Firehose?

O Kinesis Data Firehose usa preços 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 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 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 dos serviços Amazon S3, Amazon Redshift, Amazon Elasticsearch Service e AWS Lambda, inclusive pelos custos de armazenamento e de solicitações. Para obter mais informações, consulte Preços do Amazon S3, Preços do Amazon Redshift, Preços do Amazon Elasticsearch Service e Preços do AWS Lambda.

Acordo de Nível de Serviço

P: O que o SLA do Amazon Kinesis Data Firehose SLA garante?

O SLA do Amazon Kinesis Data Firehose garante uma porcentagem de tempo de disponibilidade de pelo menos 99,9% para o Amazon Kinesis Data Firehose.

P: Como saberei se me qualifico para um crédito de serviço do SLA?

Você estará qualificado para um crédito de SLA para o Amazon Kinesis Data Firehose nos termos do SLA do Amazon Kinesis Data Firehose se mais de uma zona de disponibilidade na qual você executar uma tarefa, na mesma região, tiver uma porcentagem de tempo de disponibilidade inferior a 99,9% durante qualquer ciclo de faturamento mensal.

Para obter detalhes completos sobre todos os termos e condições do SLA, bem como detalhes sobre como enviar uma alegação, consulte a página de detalhes do SLA do Amazon Kinesis Data Firehose.

Saiba mais sobre a definição de preço do Amazon Kinesis Data Firehose

Acesse a página de definição de preço
Pronto para começar?
Cadastre-se
Tem outras dúvidas?
Entre em contato conosco