Generally when using S3 the filtering has to be done on the application connecting to S3, well with S3 select S3 can handle filtering through simple SQL queries and can significantly decrease the load and time your other services and machines would spend on filtering and then it’ll send the much smaller filtered data. Regarding batch operations it’s as straight forward as it sounds, it allows you to run an operation on several S3 objects such as move, delete, encrypt, etc. You can use S3 select to filter down to unencrypted objects and use a batch operation to encrypt all of them.