Skip to content

DataSet ​

The DataSet resource lets you manage AWS QuickSight DataSets for data analysis and visualization.

Minimal Example ​

Create a basic QuickSight DataSet with essential properties and a performance configuration.

ts
import AWS from "alchemy/aws/control";

const quickSightDataSet = await AWS.QuickSight.DataSet("basic-data-set", {
  AwsAccountId: "123456789012",
  DataSetId: "sales-data",
  Name: "Sales Data",
  PhysicalTableMap: {
    "SalesTable": {
      "S3Source": {
        "DataSourceArn": "arn:aws:quicksight:us-east-1:123456789012:data-source/sales-data-source",
        "UploadSettings": {
          "Format": "CSV",
          "StartFromRow": 1,
          "ContainsHeader": true
        }
      }
    }
  },
  PerformanceConfiguration: {
    EnableColumnarStorage: true
  }
});

Advanced Configuration ​

Configure a DataSet with row-level permissions and tags for better control and organization.

ts
const advancedDataSet = await AWS.QuickSight.DataSet("advanced-data-set", {
  AwsAccountId: "123456789012",
  DataSetId: "customer-data",
  Name: "Customer Data",
  PhysicalTableMap: {
    "CustomerTable": {
      "RdsSource": {
        "DataSourceArn": "arn:aws:quicksight:us-east-1:123456789012:data-source/customer-data-source",
        "InputColumns": [
          {
            "Name": "customer_id",
            "Type": "STRING"
          },
          {
            "Name": "customer_name",
            "Type": "STRING"
          }
        ]
      }
    }
  },
  RowLevelPermissionDataSet: {
    DataSetArn: "arn:aws:quicksight:us-east-1:123456789012:dataset/permission-data-set",
    PermissionRules: [{
      "DataPermission": JSON.stringify({
        "Effect": "Allow",
        "Action": "quicksight:DescribeDataSet",
        "Resource": "*"
      })
    }],
  },
  Tags: [{
    Key: "Project",
    Value: "SalesAnalysis"
  }]
});

DataSet with Folder Organization ​

Create a DataSet organized into folders for better management.

ts
const folderedDataSet = await AWS.QuickSight.DataSet("foldered-data-set", {
  AwsAccountId: "123456789012",
  DataSetId: "inventory-data",
  Name: "Inventory Data",
  PhysicalTableMap: {
    "InventoryTable": {
      "AthenaSource": {
        "DataSourceArn": "arn:aws:quicksight:us-east-1:123456789012:data-source/inventory-data-source",
        "InputColumns": [
          {
            "Name": "item_id",
            "Type": "STRING"
          },
          {
            "Name": "quantity",
            "Type": "INTEGER"
          }
        ]
      }
    }
  },
  FolderArns: [
    "arn:aws:quicksight:us-east-1:123456789012:folder/inventory-reports"
  ]
});