データセットの作成

データセットとは

作成したデータソース(=元データ)をもとに、QuickSightの機能でデータにアクセスための定義を行うものです。データセットには、そのデータに対して実行するデータの定義 (データフォーマット、フィールドの名前、フィールドのデータ型) が保存されています。この定義が保存されていることで、そのデータに基づく分析を作成するたびにデータを再度準備する必要がありません。また、それぞれのデータセットにアクセス許可の設定も行えます。今回は、フィールド名やフィールドの型などのほとんどをQuickSightが自動認識するものと同じ値を設定していますが、“Patient ID"というフィールドの型はデフォルトのINTEGERからSTRINGに変更しています。

データソースとデータセットの関係

  • Data
    • 元となるデータ/データベース・ファイル・SaaSなど
  • Data Source
    • QuickSightからみた元データへの接続方法定義 (DB接続情報/ファイルの場所/SaaS接続情報など)
  • Data Set
    • Data Sourceの情報をQuickSight向けに定義
  • Analysis
    • Data Setに基づくグラフやテーブル
  • Dashboard
    • 公開用の分析(読み取り専用)

QuickSightセットアップイメージ

Alt text

データセット定義JSON

  • データフォーマット, フィールドの名前, フィールドのデータ型, アクセス許可などの定義を作成します。

default用データセット

# default namespace
cat <<EOF > create-data-set-default-data-set.json
{
    "AwsAccountId": "$AWSACCOUNTID",
    "DataSetId": "Default-Data-Set",
    "Name": "Default Data Set",
    "PhysicalTableMap": {
        "s3PhysicalTable": {
            "S3Source": {
                "DataSourceArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:datasource/Default-Data-Source",
                "UploadSettings": {
                    "Delimiter": ",",
                    "ContainsHeader": true,
                    "StartFromRow": 1,
                    "TextQualifier": "DOUBLE_QUOTE",
                    "Format": "CSV"
                },
                "InputColumns": [
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-1"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-2"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-3"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-4"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-5"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-6"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-7"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-8"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-9"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-10"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-11"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-12"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-13"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-14"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-15"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-16"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-17"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-18"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-19"
                    }
                ]
            }
        }

    },
    "LogicalTableMap": {
        "s3PhysicalTable": {
            "Source": {
                "PhysicalTableId": "s3PhysicalTable"
            },
            "Alias": "Group 1",
            "DataTransforms": [
                   {
                        "RenameColumnOperation": {
                            "NewColumnName": "Admit Date",
                            "ColumnName": "ColumnId-2"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Discharge Date",
                            "ColumnName": "ColumnId-3"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Patient ID",
                            "ColumnName": "ColumnId-1"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Category",
                            "ColumnName": "ColumnId-12"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Profit",
                            "ColumnName": "ColumnId-6"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Payor Segment",
                            "ColumnName": "ColumnId-11"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Price",
                            "ColumnName": "ColumnId-7"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Function",
                            "ColumnName": "ColumnId-14"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Priority",
                            "ColumnName": "ColumnId-4"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Sub Category",
                            "ColumnName": "ColumnId-13"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Hospital",
                            "ColumnName": "ColumnId-5"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Discount",
                            "ColumnName": "ColumnId-10"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Cost",
                            "ColumnName": "ColumnId-8"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Revenue",
                            "ColumnName": "ColumnId-9"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Region",
                            "ColumnName": "ColumnId-19"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "State",
                            "ColumnName": "ColumnId-16"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Service",
                            "ColumnName": "ColumnId-15"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Physician",
                            "ColumnName": "ColumnId-18"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Zip Code",
                            "ColumnName": "ColumnId-17"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Zip Code",
                            "NewColumnType": "STRING"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Revenue",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Cost",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Discount",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Price",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Profit",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Patient ID",
                            "NewColumnType": "STRING"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Discharge Date",
                            "Format": "M/d/yy",
                            "NewColumnType": "DATETIME"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Admit Date",
                            "Format": "M/d/yy",
                            "NewColumnType": "DATETIME"
                        }
                    },
                    {
                        "TagColumnOperation": {
                            "ColumnName": "Zip Code",
                            "Tags": [
                                {
                                    "ColumnGeographicRole": "POSTCODE"
                                }
                            ]
                        }
                    },
                    {
                        "TagColumnOperation": {
                            "ColumnName": "State",
                            "Tags": [
                                {
                                    "ColumnGeographicRole": "STATE"
                                }
                            ]
                        }
                    },
                    {
                        "TagColumnOperation": {
                            "ColumnName": "Region",
                            "Tags": [
                                {
                                    "ColumnGeographicRole": "STATE"
                                }
                            ]
                        }
                    },
                    {
                        "ProjectOperation": {
                            "ProjectedColumns": [
                                "Zip Code",
                                "Physician",
                                "Service",
                                "State",
                                "Region",
                                "Revenue",
                                "Cost",
                                "Discount",
                                "Hospital",
                                "Sub Category",
                                "Priority",
                                "Function",
                                "Price",
                                "Payor Segment",
                                "Profit",
                                "Category",
                                "Patient ID",
                                "Discharge Date",
                                "Admit Date"
                            ]
                        }
                    }
            ]
        }
    },
    "ImportMode": "SPICE",
    "Permissions": [
        {
            "Actions": [
                "quicksight:UpdateDataSetPermissions",
                "quicksight:DescribeDataSet",
                "quicksight:DescribeDataSetPermissions",
                "quicksight:PassDataSet",
                "quicksight:DescribeIngestion",
                "quicksight:ListIngestions",
                "quicksight:UpdateDataSet",
                "quicksight:DeleteDataSet",
                "quicksight:CreateIngestion",
                "quicksight:CancelIngestion"
            ],
            "Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:user/default/$IAMUSERNAME"
        }
    ]
}
EOF

NS1用データセット

# NS1 Namespace
cat <<EOF > create-data-set-NS1-data-set.json
{
    "AwsAccountId": "$AWSACCOUNTID",
    "DataSetId": "NS1-Data-Set",
    "Name": "NS1 Data Set",
    "PhysicalTableMap": {
        "s3PhysicalTable": {
            "S3Source": {
                "DataSourceArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:datasource/NS1-Data-Source",
                "UploadSettings": {
                    "Delimiter": ",",
                    "ContainsHeader": true,
                    "StartFromRow": 1,
                    "TextQualifier": "DOUBLE_QUOTE",
                    "Format": "CSV"
                },
                "InputColumns": [
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-1"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-2"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-3"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-4"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-5"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-6"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-7"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-8"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-9"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-10"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-11"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-12"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-13"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-14"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-15"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-16"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-17"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-18"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-19"
                    }
                ]
            }
        }

    },
    "LogicalTableMap": {
        "s3PhysicalTable": {
            "Source": {
                "PhysicalTableId": "s3PhysicalTable"
            },
            "Alias": "Group 1",
            "DataTransforms": [
                   {
                        "RenameColumnOperation": {
                            "NewColumnName": "Admit Date",
                            "ColumnName": "ColumnId-2"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Discharge Date",
                            "ColumnName": "ColumnId-3"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Patient ID",
                            "ColumnName": "ColumnId-1"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Category",
                            "ColumnName": "ColumnId-12"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Profit",
                            "ColumnName": "ColumnId-6"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Payor Segment",
                            "ColumnName": "ColumnId-11"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Price",
                            "ColumnName": "ColumnId-7"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Function",
                            "ColumnName": "ColumnId-14"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Priority",
                            "ColumnName": "ColumnId-4"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Sub Category",
                            "ColumnName": "ColumnId-13"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Hospital",
                            "ColumnName": "ColumnId-5"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Discount",
                            "ColumnName": "ColumnId-10"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Cost",
                            "ColumnName": "ColumnId-8"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Revenue",
                            "ColumnName": "ColumnId-9"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Region",
                            "ColumnName": "ColumnId-19"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "State",
                            "ColumnName": "ColumnId-16"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Service",
                            "ColumnName": "ColumnId-15"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Physician",
                            "ColumnName": "ColumnId-18"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Zip Code",
                            "ColumnName": "ColumnId-17"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Zip Code",
                            "NewColumnType": "STRING"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Revenue",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Cost",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Discount",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Price",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Profit",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Patient ID",
                            "NewColumnType": "STRING"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Discharge Date",
                            "Format": "M/d/yy",
                            "NewColumnType": "DATETIME"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Admit Date",
                            "Format": "M/d/yy",
                            "NewColumnType": "DATETIME"
                        }
                    },
                    {
                        "TagColumnOperation": {
                            "ColumnName": "Zip Code",
                            "Tags": [
                                {
                                    "ColumnGeographicRole": "POSTCODE"
                                }
                            ]
                        }
                    },
                    {
                        "TagColumnOperation": {
                            "ColumnName": "State",
                            "Tags": [
                                {
                                    "ColumnGeographicRole": "STATE"
                                }
                            ]
                        }
                    },
                    {
                        "TagColumnOperation": {
                            "ColumnName": "Region",
                            "Tags": [
                                {
                                    "ColumnGeographicRole": "STATE"
                                }
                            ]
                        }
                    },
                    {
                        "ProjectOperation": {
                            "ProjectedColumns": [
                                "Zip Code",
                                "Physician",
                                "Service",
                                "State",
                                "Region",
                                "Revenue",
                                "Cost",
                                "Discount",
                                "Hospital",
                                "Sub Category",
                                "Priority",
                                "Function",
                                "Price",
                                "Payor Segment",
                                "Profit",
                                "Category",
                                "Patient ID",
                                "Discharge Date",
                                "Admit Date"
                            ]
                        }
                    }
            ]
        }
    },
    "ImportMode": "SPICE",
    "Permissions": [
        {
            "Actions": [
                "quicksight:UpdateDataSetPermissions",
                "quicksight:DescribeDataSet",
                "quicksight:DescribeDataSetPermissions",
                "quicksight:PassDataSet",
                "quicksight:DescribeIngestion",
                "quicksight:ListIngestions",
                "quicksight:UpdateDataSet",
                "quicksight:DeleteDataSet",
                "quicksight:CreateIngestion",
                "quicksight:CancelIngestion"
            ],
            "Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:user/default/$IAMUSERNAME"
        }
    ]
}
EOF

NS2用データセット

# NS2 Namespace
cat <<EOF > create-data-set-NS2-data-set.json
{
    "AwsAccountId": "$AWSACCOUNTID",
    "DataSetId": "NS2-Data-Set",
    "Name": "NS2 Data Set",
    "PhysicalTableMap": {
        "s3PhysicalTable": {
            "S3Source": {
                "DataSourceArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:datasource/NS2-Data-Source",
                "UploadSettings": {
                    "Delimiter": ",",
                    "ContainsHeader": true,
                    "StartFromRow": 1,
                    "TextQualifier": "DOUBLE_QUOTE",
                    "Format": "CSV"
                },
                "InputColumns": [
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-1"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-2"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-3"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-4"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-5"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-6"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-7"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-8"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-9"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-10"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-11"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-12"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-13"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-14"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-15"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-16"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-17"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-18"
                    },
                    {
                        "Type": "STRING",
                        "Name": "ColumnId-19"
                    }
                ]
            }
        }

    },
    "LogicalTableMap": {
        "s3PhysicalTable": {
            "Source": {
                "PhysicalTableId": "s3PhysicalTable"
            },
            "Alias": "Group 1",
            "DataTransforms": [
                   {
                        "RenameColumnOperation": {
                            "NewColumnName": "Admit Date",
                            "ColumnName": "ColumnId-2"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Discharge Date",
                            "ColumnName": "ColumnId-3"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Patient ID",
                            "ColumnName": "ColumnId-1"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Category",
                            "ColumnName": "ColumnId-12"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Profit",
                            "ColumnName": "ColumnId-6"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Payor Segment",
                            "ColumnName": "ColumnId-11"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Price",
                            "ColumnName": "ColumnId-7"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Function",
                            "ColumnName": "ColumnId-14"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Priority",
                            "ColumnName": "ColumnId-4"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Sub Category",
                            "ColumnName": "ColumnId-13"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Hospital",
                            "ColumnName": "ColumnId-5"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Discount",
                            "ColumnName": "ColumnId-10"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Cost",
                            "ColumnName": "ColumnId-8"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Revenue",
                            "ColumnName": "ColumnId-9"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Region",
                            "ColumnName": "ColumnId-19"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "State",
                            "ColumnName": "ColumnId-16"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Service",
                            "ColumnName": "ColumnId-15"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Physician",
                            "ColumnName": "ColumnId-18"
                        }
                    },
                    {
                        "RenameColumnOperation": {
                            "NewColumnName": "Zip Code",
                            "ColumnName": "ColumnId-17"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Zip Code",
                            "NewColumnType": "STRING"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Revenue",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Cost",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Discount",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Price",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Profit",
                            "NewColumnType": "DECIMAL"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Patient ID",
                            "NewColumnType": "STRING"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Discharge Date",
                            "Format": "M/d/yy",
                            "NewColumnType": "DATETIME"
                        }
                    },
                    {
                        "CastColumnTypeOperation": {
                            "ColumnName": "Admit Date",
                            "Format": "M/d/yy",
                            "NewColumnType": "DATETIME"
                        }
                    },
                    {
                        "TagColumnOperation": {
                            "ColumnName": "Zip Code",
                            "Tags": [
                                {
                                    "ColumnGeographicRole": "POSTCODE"
                                }
                            ]
                        }
                    },
                    {
                        "TagColumnOperation": {
                            "ColumnName": "State",
                            "Tags": [
                                {
                                    "ColumnGeographicRole": "STATE"
                                }
                            ]
                        }
                    },
                    {
                        "TagColumnOperation": {
                            "ColumnName": "Region",
                            "Tags": [
                                {
                                    "ColumnGeographicRole": "STATE"
                                }
                            ]
                        }
                    },
                    {
                        "ProjectOperation": {
                            "ProjectedColumns": [
                                "Zip Code",
                                "Physician",
                                "Service",
                                "State",
                                "Region",
                                "Revenue",
                                "Cost",
                                "Discount",
                                "Hospital",
                                "Sub Category",
                                "Priority",
                                "Function",
                                "Price",
                                "Payor Segment",
                                "Profit",
                                "Category",
                                "Patient ID",
                                "Discharge Date",
                                "Admit Date"
                            ]
                        }
                    }
            ]
        }
    },
    "ImportMode": "SPICE",
    "Permissions": [
        {
            "Actions": [
                "quicksight:UpdateDataSetPermissions",
                "quicksight:DescribeDataSet",
                "quicksight:DescribeDataSetPermissions",
                "quicksight:PassDataSet",
                "quicksight:DescribeIngestion",
                "quicksight:ListIngestions",
                "quicksight:UpdateDataSet",
                "quicksight:DeleteDataSet",
                "quicksight:CreateIngestion",
                "quicksight:CancelIngestion"
            ],
            "Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:user/default/$IAMUSERNAME"
        }
    ]

}
EOF

データセット作成

次のコマンドを実行し、データセットを作成します。

aws quicksight create-data-set --cli-input-json file://create-data-set-default-data-set.json
aws quicksight create-data-set --cli-input-json file://create-data-set-NS1-data-set.json
aws quicksight create-data-set --cli-input-json file://create-data-set-NS2-data-set.json

実行結果

以下のような出力があれば成功です。

aws quicksight create-data-set --cli-input-json file://create-data-set-default-data-set.json
{
    "Status": 201,
    "Arn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dataset/Default-Data-Set",
    "DataSetId": "Default-Data-Set",
    "IngestionArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dataset/Default-Data-Set/ingestion/f9363787-694d-46f7-90f1-5ec3fc5bf249",
    "IngestionId": "f9363787-694d-46f7-90f1-5ec3fc5bf249",
    "RequestId": "a551d491-0237-439b-8546-30730c640740"
}
aws quicksight create-data-set --cli-input-json file://create-data-set-NS1-data-set.json
{
    "Status": 201,
    "Arn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dataset/NS1-Data-Set",
    "DataSetId": "NS1-Data-Set",
    "IngestionArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dataset/NS1-Data-Set/ingestion/3fd1deae-8464-40d6-b769-591c609a655e",
    "IngestionId": "3fd1deae-8464-40d6-b769-591c609a655e",
    "RequestId": "61ff7316-4dc0-42ad-941c-e27897a3013b"
}
aws quicksight create-data-set --cli-input-json file://create-data-set-NS2-data-set.json
{
    "Status": 201,
    "Arn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dataset/NS2-Data-Set",
    "DataSetId": "NS2-Data-Set",
    "IngestionArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dataset/NS2-Data-Set/ingestion/63cc08a6-a7d8-46cb-b9bb-74bbde408a20",
    "IngestionId": "63cc08a6-a7d8-46cb-b9bb-74bbde408a20",
    "RequestId": "ca3aeb83-cd99-4ebe-84f3-2f565f8b4a81"
}

データセット詳細確認

QuickSightにデータセットが作られていることを確認します。QuickSightのトップ画面から[データセット]をクリックします。 作成した3つのデータセットが追加で作成されています。

Alt text

各データセットの構成は以下の通りです。

  • Default Data Set
    • 全データ
  • NS1 Data Set
    • Norh Hospitalのデータ
  • NS2 Data Set
    • South Hospital/Downtown Hospitalのデータ

コマンドラインでの確認

commands:データセット詳細の確認(コマンドライン)

コマンドラインでもデータセットの詳細を確認できます。

aws quicksight describe-data-set --aws-account-id $AWSACCOUNTID --data-set-id 'Default-Data-Set'
aws quicksight describe-data-set --aws-account-id $AWSACCOUNTID --data-set-id 'NS1-Data-Set'
aws quicksight describe-data-set --aws-account-id $AWSACCOUNTID --data-set-id 'NS2-Data-Set'
aws quicksight describe-data-set --aws-account-id $AWSACCOUNTID --data-set-id 'Default-Data-Set'
{
    "Status": 200,
    "DataSet": {
        "Arn": "arn:aws:quicksight:us-east-1:192660034645:dataset/Default-Data-Set",
        "DataSetId": "Default-Data-Set",
        "Name": "Default Data Set",
        "CreatedTime": 1637130444.475,
        "LastUpdatedTime": 1637130444.799,
        "PhysicalTableMap": {
            "s3PhysicalTable": {
                "S3Source": {
                    "DataSourceArn": "arn:aws:quicksight:us-east-1:192660034645:datasource/Default-Data-Source",
......                    
}                    
aws quicksight describe-data-set --aws-account-id $AWSACCOUNTID --data-set-id 'NS1-Data-Set'
{
    "Status": 200,
    "DataSet": {
        "Arn": "arn:aws:quicksight:us-east-1:192660034645:dataset/NS1-Data-Set",
        "DataSetId": "NS1-Data-Set",
        "Name": "NS1 Data Set",
        "CreatedTime": 1637130455.181,
        "LastUpdatedTime": 1637132645.006,
        "PhysicalTableMap": {
            "s3PhysicalTable": {
                "S3Source": {
                    "DataSourceArn": "arn:aws:quicksight:us-east-1:192660034645:datasource/NS1-Data-Source",
.....
}
aws quicksight describe-data-set --aws-account-id $AWSACCOUNTID --data-set-id 'NS2-Data-Set'
{
    "Status": 200,
    "DataSet": {
        "Arn": "arn:aws:quicksight:us-east-1:192660034645:dataset/NS2-Data-Set",
        "DataSetId": "NS2-Data-Set",
        "Name": "NS2 Data Set",
        "CreatedTime": 1637130461.828,
        "LastUpdatedTime": 1637132655.123,
        "PhysicalTableMap": {
            "s3PhysicalTable": {
                "S3Source": {
                    "DataSourceArn": "arn:aws:quicksight:us-east-1:192660034645:datasource/NS2-Data-Source",
.....
}