I am looking to build a real-time visual dashboard fed by Kinesis Data Streams. The data is in JSON with a consistent schema.
I already have a near real-time solution where the Kinesis Data Stream is connected to Firehose there by sending the data to S3 and visualized in QuickSight. However, we are not meeting our desired latency for the visuals to be updated.
A couple things we do to get to closest to real time.
Use Athena to query & partition the data to query it faster. And query it by the smallest amount of data you can (i.e to the latest minute / second).
Have you looked into federated queries? This will hit a lambda directly and transfer the data through Athena. It’s not real time but it gets pretty close.
Have a refresh button in quicksight that triggers a direct query. What we have done before is have a table that has a navigation action that stays on the same page & changes a parameter to a set value. This parameter does not affect anything. But that fact that it refreshes will trigger a direct query.
It for sure would be a cool feature to have a direct connection - something that would have wide use-cases. We are looking for the lowest latency. Of the three approaches you mentioned, would you agree that method 2 or 3 will have the lowest latency?