We have used following AWS Services to prepare data for analysis dashboard.
AWS Data Exchange
We have used above Data provider and exported their data in S3 for further Analysis.
We have used Amazon S3 to store data for Analysis
AWS Glue Crawlers
Crawlers has been created to create a schema for Analysis
AWS Glue Database and Tables
Crawler will create a database and table and convert the data with schema.
Athena can be used to query data generated in Glue data catalog.
Amazon QuickSight is is used to create meaningful analytics dashboard using Athena data catalog.
QuickSight Dashboard Embedding
We have used following AWS Services to embed quicksight dashboard to the app.
We have written one Lambda function to get the Embed Url.
We have written code to authenticate our user and get the embeddable dashboard URL
When a user accesses our app, the app should assume the IAM role (created above) on the user's behalf. Then it should add the user to Amazon QuickSight, if that user doesn't already exist. Next, it should pass an identifier as the unique role session ID. Doing this ensures that each viewer of the dashboard is uniquely provisioned in Amazon QuickSight. It also enforces per-user settings, such as the row-level security and dynamic defaults for parameters.
To assume the role, we have choose AssumeRole of AWS Security Token Service (AWS STS) API operations with using IAM identity to assume the role. The assume-role operation returns three output parameters: the access key, the secret key, and the session token.
Finally, to get a signed URL for the dashboard, call get-dashboard-embed-url in the Lambda function. This returns the embeddable dashboard URL as output.
AWS API Gateway
We have created an API to invoke our Lambda function. In Lambda Using the assumed role, invoke QuickSight API to generate embed url. And Embed url is passed back to client via API Gateway.
We have used this API endpoint in the App.
Thank you for Reading!