Both AWS Glue and Kinesis Data Firehose can be used for streaming ETL. AWS Glue is recommended for complex ETL, including joining streams, and partitioning the output in Amazon S3 based on the data content. Kinesis Data Firehose is recommended when your use cases focus on data delivery and preparing data to be processed after it is delivered.
Streaming ETL in AWS Glue enables advanced ETL on streaming data using the same serverless pay-as-you-go platform that you currently use for your batch jobs. AWS Glue generates customizable ETL code to prepare your data while in transit and has built-in functionality to process streaming data that is semi-structured or has an evolving schema. Use AWS Glue to apply complex transforms to data streams, enrich records with information from other streams and persistent data stores, and then load records into your data lake or data warehouse.
Stream ETL in Kinesis Data Firehose to more easily capture, transform, and deliver streaming data. Kinesis Data Firehose provides ETL capabilities including serverless data transformation through AWS Lambda and format conversion from JSON to Parquet. It includes ETL capabilities that are designed to make data easier to process after delivery, but it does not include the advanced ETL capabilities that AWS Glue supports.