99 Problems? Amazon QuickSight Solves Every Single One
Tags: awsquicksight, awsdata, terraform, awsproject
Published: 2023-08-07 12:42:17

## Intro

When we discuss DevOps, we typically focus on code and pipelines, and this is technically accurate. However, there are instances when, trust me, we perform deployments in the console. This happens because some tools we use lack an available API or documentation. This was the situation with the Terraform provider for QuickSight. But, the long wait is now over. Today, I will explain what Amazon QuickSight is and guide you through building a dashboard using Terraform. Let's dive in!

## What's Amazon QuickSight?

Amazon QuickSight is a helpful tool from AWS that lets businesses look at their data in a smart way. It makes it easy to build charts and graphs, look at data quickly, and find out important things about how your business is doing. You can also share what you find with others. It's simple to use and can help you make better choices for your business.

This all sounds amazing, but QuickSight offers even more. One remarkable aspect of QuickSight that never ceases to amaze me is SPICE, which stands for Super-fast, Parallel, In-memory Calculation Engine.

![Spicy](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kj2wixyk1qd58zmwwax3.png)


## But how does SPICE actually work?

SPICE is a lightning fast and robust component of AWS QuickSight that employs in memory technology for rapid calculations. It stores data in a computer's memory, enabling quicker access and analysis compared to traditional methods reliant on hard drives. Additionally, SPICE can divide complex calculations into smaller segments, executing them simultaneously, thus enhancing its speed even further. This makes it an invaluable asset for businesses dealing with large data volumes. Thanks to SPICE, businesses can gain real time insights from their data, facilitating faster and well informed decision making.

Additionally, QuickSight simplifies the process of embedding interactive dashboards into applications, websites, and portals, enabling developers to do it with ease.

Moreover, QuickSight provides a data source integration feature that allows you to connect with a wide range of data sources, such as Amazon Redshift, Amazon RDS, Amazon S3, and third-party data sources like SQL databases, Salesforce, and others. QuickSight also supports data stored in files such as CSV, Excel, and JSON. With QuickSight, you can easily connect to your data sources and start analyzing your data in minutes.

QuickSight also has a machine learning integration feature that enables users to integrate with Amazon SageMaker. This feature allows users to build and incorporate machine learning models into their analyses and visualizations. 

## QuickSight Dashboards - Samples 

![Hosp](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/irwodjcs4fa0fdx5m0bp.png)

![QS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lr1vq92kn5wig3nhb7p5.png)

![DB](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c80so3yh75nmae2dcjmf.png)

[QuickSigh Dashboard-source](https://d2lzvqq4w5ulk4.cloudfront.net/?dashboardName=automotiveManufacturing)

## You might be asking what QuickSight cost is?

QuickSight has two pricing options: 

Standard and Enterprise. 

**The Standard** option costs:

$9/user/mo. with annual subscription

$12/user/mo. paying month to month

10GB/user of SPICE capacity $0.25/GB for additional capacity

**The Enterprise** option is suitable for organizations with large scale analytics needs and offers additional features such as ML Insights, Audit logs, and more. To get a quote tailored to your specific needs for the Enterprise option, you would need to contact AWS sales. 

### Month-to-month
**Authors**
$24/month
	
**Authors with Q**
$34/month	

### With annual commitment
**Authors**
$18/month

**Authors with Q**
$28/month

Accounts enabled with Q are charged a $250/month Q base fee. 

Additionally, QuickSight offers a free trial that allows you to explore the service and its features before committing to a paid plan.

[You can find complete information about the pricing by clicking on this link](https://aws.amazon.com/quicksight/pricing)


## Do you know what is QuickSight Q?

Amazon QuickSight Q is a new feature that was announced on December 1, 2020. It is a natural language processing capability that utilizes machine learning to generate visualizations in response to business users' queries, providing them with immediate answers. 

QuickSight Q understands the intention of the users and the significance of the data to generate answers without requiring them to learn any syntax. The feature is already trained on data from various domains and industries and continues to improve by learning from user interactions.

I understand that you enjoy reading, but I also know that you're here to gain experience in building exciting projects. 

Now, it's time to start building. I'll be creating a GitHub repository with a step-by-step guide on how to build a QuickSight Dashboard using Terraform. This Terraform template will give you a small taste of the entire infrastructure that we will be building to complete the project.

## Terraform QuickSight Sample Template

```
resource "aws_quicksight_dashboard" "your_first_qs_dashboard" {
  dashboard_id        = "your_first_qs_dashboard-id"
  name                = "your_first_qs_dashboard-name"
  version_description = "version"
  definition {
    data_set_identifiers_declarations {
      data_set_arn = aws_quicksight_data_set.dataset.arn
      identifier   = "1"
    }
    sheets {
      title    = "Sheet_one"
      sheet_id = "Sheet_one_id"
      visuals {
        line_chart_visual {
          visual_id = "LineChart"
          title {
            format_text {
              plain_text = "Line Chart"
            }
          }
          chart_configuration {
            field_wells {
              line_chart_aggregated_field_wells {
                category {
                  categorical_dimension_field {
                    field_id = "1"
                    column {
                      data_set_identifier = "1"
                      column_name         = "Column_one"
                    }
                  }
                }
                values {
                  categorical_measure_field {
                    field_id = "2"
                    column {
                      data_set_identifier = "1"
                      column_name         = "Column_one"
                    }
                    aggregation_function = "COUNT"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```
## The following arguments are required:

- dashboard_id 
- name
- version_description

Congratulations on completing reading this blog. Now it's time for you to take a well-deserved break. Why not grab a cup of coffee or take a refreshing walk outside? When you're ready, why not challenge yourself by building this dashboard on your own? Alternatively, you can subscribe to this blog to receive an alarm 🚨 notifying you when I have added the repository section to this blog.

Stay ahead of the game 🏆!

🚨**Here's the link to the repository section of this blog!**🚨

I'm all set to resume building on AWS. Are you ready too? 

Here is the link to the GitHub repository and the instructions to deploy the QuickSight dashboard.

[GitHub-Repository](https://github.com/ValAug/quicksight_with_terraform)

Please don't forget to share your comments and follow me for more **AWS**ome content.