Recently, we came across a problem when we
migrated our existing RDS to Aurora. We have already developed a lot of
QuickSight reports using RDS. Once we migrated to Aurora, there was no direct
way to change the data source connection from RDS to Aurora.
Data
source editing using the AWS console is allowed to change the instance id,
username, and password.
The
following is the step to edit the data source connection using the AWS console.
- Select Datasets on the
left side of the QuickSight, and then click the New Dataset button in the
top right corner.
- Scroll down to
the FROM EXISTING DATA SOURCES section and select a data source.
- In the popup, click Edit
Data Source.
- Change the required
details like instance ID, username, and password.
- Click "Validate
connection."
- If the connection
validates, click Update data source.
The
above steps will help you to update your RDS connection. If you want to change
the connection from RDS to Aurora or any other connection, you can use the
following AWS CLI commands.
Step
1: We wanted to know the data source id to edit via AWS CLI. To know the data
source ID, run the following command in the command line. which will list all the
available data sources along with their data source id
aws quicksight list-data-sources --aws-account-id <<account id>
--region <<Region>>
Step 2
: Generate an update skeleton using the following AWS CLI command.
aws quicksight update-data-source --generate-cli-skeleton input >
edit-data-source.json
JSON contains following content which includes all the section
"{
"AwsAccountId": "",
"DataSourceId": "",
"Name": "",
"DataSourceParameters": {
"AmazonElasticsearchParameters": {
"Domain": ""
},
"AthenaParameters": {
"WorkGroup": ""
},
"AuroraParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"AuroraPostgreSqlParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"AwsIotAnalyticsParameters": {
"DataSetName": ""
},
"JiraParameters": {
"SiteBaseUrl": ""
},
"MariaDbParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"MySqlParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"OracleParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"PostgreSqlParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"PrestoParameters": {
"Host": "",
"Port": 0,
"Catalog": ""
},
"RdsParameters": {
"InstanceId": "",
"Database": ""
},
"RedshiftParameters": {
"Host": "",
"Port": 0,
"Database": "",
"ClusterId": ""
},
"S3Parameters": {
"ManifestFileLocation": {
"Bucket":
"",
"Key":
""
}
},
"ServiceNowParameters": {
"SiteBaseUrl": ""
},
"SnowflakeParameters": {
"Host": "",
"Database": "",
"Warehouse": ""
},
"SparkParameters": {
"Host": "",
"Port": 0
},
"SqlServerParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"TeradataParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"TwitterParameters": {
"Query": "",
"MaxRows": 0
},
"AmazonOpenSearchParameters": {
"Domain": ""
},
"ExasolParameters": {
"Host": "",
"Port": 0
}
},
"Credentials": {
"CredentialPair": {
"Username": "",
"Password": "",
"AlternateDataSourceParameters": [
{
"AmazonElasticsearchParameters": {
"Domain": ""
},
"AthenaParameters": {
"WorkGroup": ""
},
"AuroraParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"AuroraPostgreSqlParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"AwsIotAnalyticsParameters": {
"DataSetName": ""
},
"JiraParameters": {
"SiteBaseUrl": ""
},
"MariaDbParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"MySqlParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"OracleParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"PostgreSqlParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"PrestoParameters": {
"Host": "",
"Port": 0,
"Catalog": ""
},
"RdsParameters": {
"InstanceId": "",
"Database": ""
},
"RedshiftParameters": {
"Host": "",
"Port": 0,
"Database": "",
"ClusterId": ""
},
"S3Parameters": {
"ManifestFileLocation": {
"Bucket": "",
"Key": ""
}
},
"ServiceNowParameters": {
"SiteBaseUrl": ""
},
"SnowflakeParameters": {
"Host": "",
"Database": "",
"Warehouse": ""
},
"SparkParameters": {
"Host": "",
"Port": 0
},
"SqlServerParameters":
{
"Host": "",
"Port": 0,
"Database": ""
},
"TeradataParameters": {
"Host": "",
"Port": 0,
"Database": ""
},
"TwitterParameters": {
"Query": "",
"MaxRows": 0
},
"AmazonOpenSearchParameters": {
"Domain": ""
},
"ExasolParameters": {
"Host": "",
"Port": 0
}
}
]
},
"CopySourceArn": ""
},
"VpcConnectionProperties": {
"VpcConnectionArn": ""
},
"SslProperties": {
"DisableSsl": true
}
}"
Step
3: Make modifications to the JSON file.Run the following command to update the
connection:
aws quicksight update-data-source --cli-input-json file://
edit-data-source.json --region <<Region>>
Example JSON to change data source connection
to Aurora
{
"AwsAccountId": <<aws account id>>
"DataSourceId": <<Datasource nam>>,
"Name": <<datasoure name>>,
"DataSourceParameters": {
"MySqlParameters": {
"Host": “<<Aurora hostname >>",
"Port": <<port_number>>,
"Database": "<<database_name>>"
}
},
"Credentials": {
"CredentialPair": {
"Username": "<<user name>>",
"Password": "<<password>>",
},
"CopySourceArn": ""
},
"VpcConnectionProperties": {
"VpcConnectionArn": "<<VPC ARN>>”
},
"SslProperties": {
"DisableSsl": false
}
}