The sources
| Source | Notes |
|---|---|
| S3 | Needs a manifest file describing the objects |
| Athena | Query S3 with SQL; the common lake pattern |
| Redshift | Native, fast, the usual warehouse |
| RDS / Aurora | Postgres, MySQL, SQL Server |
| Files | CSV, Excel, JSON — uploaded, SPICE only |
| SaaS | Salesforce, ServiceNow, Jira and others |
| Third-party databases | Snowflake, Teradata, Presto |
The S3 manifest
S3 is the source people trip on. QuickSight does not simply read a bucket — it needs a manifest file, a small JSON document listing the URIs or prefixes and describing the format:
{
"fileLocations": [{ "URIPrefixes": ["s3://bucket/sales/"] }],
"globalUploadSettings": { "format": "CSV", "delimiter": "," }
}
Using URIPrefixes rather than listing individual files means new files in that prefix are picked up on refresh.
Permissions
QuickSight needs its own access, separate from yours. In Manage QuickSight → Security & permissions, grant it access to the specific S3 buckets, Athena workgroups and other services.
A source that works in the console but not in QuickSight is almost always this.
VPC connections
For a database in a private subnet, QuickSight needs a VPC connection — created in Manage QuickSight, then selected when creating the data source.
The security group on the database must allow inbound traffic from the QuickSight connection's security group. That reciprocal rule is the second common obstacle.
Reusing data sources
A data source is the connection; a dataset is a prepared view built on it. One data source supports many datasets, so define the connection once and build datasets on top rather than reconnecting each time.