QuickSight Architecture
Architecture Diagram
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AMAZON QUICKSIGHT ARCHITECTURE โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ DATA SOURCES โ โ
โ โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ โ
โ โ โ Redshift โ โ S3 โ โ RDS/ โ โ Athena โ โ โ
โ โ โ โ โ (SPICE) โ โ Aurora โ โ โ โ โ
โ โ โโโโโโฌโโโโโโ โโโโโโฌโโโโโโ โโโโโโฌโโโโโโ โโโโโโฌโโโโโโ โ โ
โ โโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ โ
โ โผ โผ โผ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ QUICKSIGHT SERVICE โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ SPICE ENGINE (In-memory) โ โ โ
โ โ โ โ โ โ
โ โ โ โข Columnar storage โ โ โ
โ โ โ โข Data compression (10:1 typical) โ โ โ
โ โ โ โข Parallel query execution โ โ โ
โ โ โ โข Auto-refresh capability โ โ โ
โ โ โ โข 1 GB per SPICE session โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ ML INSIGHTS โ โ โ
โ โ โ โ โ โ
โ โ โ โข Forecasting (time series) โ โ โ
โ โ โ โข Anomaly detection โ โ โ
โ โ โ โข Auto-narratives โ โ โ
โ โ โ โข Q&A (natural language) โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ VISUALIZATION โ โ โ
โ โ โ โ โ โ
โ โ โ โข 25+ chart types โ โ โ
โ โ โ โข Interactive dashboards โ โ โ
โ โ โ โข Mobile responsive โ โ โ
โ โ โ โข Custom templates โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ DELIVERY โ โ
โ โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ โ
โ โ โ Web App โ โ Mobile โ โ Embedded โ โ API โ โ โ
โ โ โ โ โ โ โ โ โ โ โ โ
โ โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
SPICE Engine
| Feature | Description |
|---|---|
| In-Memory | Columnar storage in memory |
| Compression | 10:1 typical compression |
| Incremental Refresh | Only changed data imported |
| Data Preparation | Calculated fields, joins |
| Row-Level Security | Filter data per user |
| ๅฎน้ | 1 GB per SPICE session, can purchase additional |
SPICE Configuration
import boto3
quicksight = boto3.client('quicksight')
# Create SPICE dataset from S3
response = quicksight.create_data_set(
AwsAccountId='123456789012',
DataSetId='sales-data',
Name='Sales Data',
ImportMode='SPICE',
PhysicalTableMap={
'sales_table': {
'S3Source': {
'DataSourceArn': 'arn:aws:quicksight:us-east-1:123456789012:datasource/s3-datasource',
'InputColumns': [
{'Name': 'sale_id', 'Type': 'INTEGER'},
{'Name': 'customer_id', 'Type': 'STRING'},
{'Name': 'amount', 'Type': 'DECIMAL'},
{'Name': 'sale_date', 'Type': 'DATETIME'}
],
'UploadSettings': {
'Format': 'PARQUET',
'StartFromRow': 1,
'ContainsHeader': True
}
}
}
},
Permissions=[
{
'Principal': 'arn:aws:quicksight:us-east-1:123456789012:group/default/analysts',
'Actions': [
'quicksight:DescribeDataSet',
'quicksight:DescribeDataSetPermissions',
'quicksight:PassDataSet',
'quicksight:DescribeIngestion',
'quicksight:ListIngestions'
]
}
],
Tags=[{'Key': 'Team', 'Value': 'analytics'}]
)
# Refresh SPICE dataset
quicksight.create_ingestion(
AwsAccountId='123456789012',
DataSetId='sales-data',
IngestionId='manual-refresh-001'
)
# Schedule automatic refresh
quicksight.update_data_set(
AwsAccountId='123456789012',
DataSetId='sales-data',
RefreshSchedule={
'Frequency': 'DAILY',
'Timezone': 'America/New_York',
'RefreshWindowSchedule': {
'TimeOfDay': '02:00',
'DayOfWeek': 'MONDAY'
}
}
)
QuickSight ML Insights
Architecture Diagram
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ QUICKSIGHT ML INSIGHTS โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ FORECASTING โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Historical Data โโโบ ML Model โโโบ Forecast โ โ โ
โ โ โ โ โ โ
โ โ โ โข Time series forecasting โ โ โ
โ โ โ โข Automatic granularity detection โ โ โ
โ โ โ โข Confidence intervals โ โ โ
โ โ โ โข Up to 5 forecast horizons โ โ โ
โ โ โ โข Min 100 data points recommended โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ANOMALY DETECTION โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Data Stream โโโบ ML Model โโโบ Anomalies โ โ โ
โ โ โ โ โ โ
โ โ โ โข Univariate and multivariate โ โ โ
โ โ โ โข Root cause analysis โ โ โ
โ โ โ โข Contributing factors โ โ โ
โ โ โ โข Sensitivity tuning โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ AUTO-NARRATIVES โ โ
โ โ โ โ
โ โ Automatically generates natural language insights: โ โ
โ โ โข "Sales increased by 15% compared to last month" โ โ
โ โ โข "Top contributor to decline is Region X" โ โ
โ โ โข "Peak sales occur on weekends" โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Embedded Analytics
# Generate embed URL for dashboard
response = quicksight.generate_embed_url_for_registered_user(
AwsAccountId='123456789012',
UserArn='arn:aws:quicksight:us-east-1:123456789012:default/user/analyst-user',
ExperienceConfiguration={
'Dashboard': {
'InitialDashboardId': 'dashboard-12345'
}
},
SessionLifetimeInMinutes=600
)
embed_url = response['EmbedUrl']
โน๏ธ
Pro Tip: Use Row-Level Security (RLS) to filter data per user without creating separate datasets. Map users to rules via dataset or tag-based approach.
Interview Questions & Answers
Q1: What is SPICE and why is it important?
Answer: SPICE (Super-fast, In-memory, Parallel, Calculation, Engine) is QuickSight's in-memory engine. Benefits:
- Fast query performance (sub-second)
- 10:1 compression ratio
- Automatic refresh scheduling
- Reduces load on source databases
Q2: How does QuickSight handle row-level security?
Answer:
- Dataset-based RLS: Map users to filter rules via dataset
- Tag-based RLS: Use tags from IAM or QuickSight group
- Rules: Define column-value filters per user/group
- Apply: Filters applied automatically at query time
Q3: What is the difference between SPICE and Direct Query?
Answer:
- SPICE: Data imported to in-memory, fast queries, needs refresh
- Direct Query: Queries sent directly to source, real-time, slower
Use SPICE for frequently accessed dashboards. Use Direct Query for large datasets or real-time requirements.
Q4: How do QuickSight ML Insights work?
Answer:
- Forecasting: Uses time series ML models to predict future values
- Anomaly Detection: Statistical models identify unusual patterns
- Auto-Narratives: NLG generates natural language summaries
- No ML expertise required, built into QuickSight
Q5: What are the pricing tiers for QuickSight?
Answer:
- Author: $9/month (creation, publishing)
- Reader: $0.30/session (viewing dashboards)
- SPICE: $0.25/GB/month (additional capacity)
- Enterprise edition adds: RLS, encryption, VPC connectivity
Summary
QuickSight is AWS's fully managed BI service. Key takeaways:
- SPICE: In-memory engine for fast queries
- ML Insights: Forecasting, anomaly detection, auto-narratives
- Embedded: Embed dashboards in applications
- Security: Row-level security for data access control
- Pricing: Pay-per-session for readers, monthly for authors
- Integration: Native integration with all AWS data services