Skip to main content

Amazon Redshift

  • 4 minutes to read

The Dashboard Designer allows you to connect to different types of SQL databases in the Data Source Wizard. You can also use data access API to connect to the database and select data in code.

This tutorial describes how to establish a connection to an Amazon Redshift database and select data.

Important

To connect to various SQL databases, the Dashboard Designer requires a corresponding provider to be installed on the client machine. Refer to the following help topic for details: Supported Data Sources.

Note that the Amazon Redshift data provider requires the Npgsql.dll assembly v2.0.11.0 or 3.0.2.0. If you want to use an Npgsql.dll 3.0.4+ data provider to establish a connection, specify a custom connection string that includes Server Compatibility Mode=Redshift.

Create a Data Source in the Data Source Wizard

To connect to an Amazon Redshift database in the Dashboard Designer, follow the steps below:

  1. Click the New Data Source button in the Data Source ribbon tab.

    DataBinding_NewDataSource

  2. On the first page of the Data Source Wizard dialog, select Amazon Redshift and click Next.

    DataSourceWizard_AmazonRedshift

  3. On the next page, specify the connection parameters.

    DataSourceWizard_AmazonRedshift

    • Server name

      Specifies the name of the server to which the connection should be established.

    • Port

      Specifies the port used to connect to the Amazon Redshift server.

    • User name

      Specifies the user name used to connect to the Amazon Redshift server.

    • Password

      Specifies the password used to connect to the Amazon Redshift server.

    • Database

      Specify the name of the database that contains the required data.

  4. After you specify connection parameters, click Next and specify how to select data from the database.

    MSSQL_CreateQuery_WithoutStoredProcedures

    Click the Run Query Builder… button to invoke the Query Builder. The Query Builder allows you to choose tables/columns and passes the resulting SQL query to the SQL String editor. After you constructed the query in the Query Builder, the text of the generated query is passed to the Data Source wizard.

    DataSourceWizard_GeneratedQuery_DisabledSP

    Click Finish to create the data source.

    Note

    If you applied filtering to this query and created the query parameter, you can click Next to specify the settings of the query parameter.

  5. On the final page, you can optionally add query parameters and preview data.

    DataSourceWizard_AddQueryParameters

    Click Finish to create the data source.

Create a Data Source in Code

To create a data source that uses a connection to an Amazon Redshift database, create an instance of the DashboardSqlDataSource class and follow the steps below:

  1. Specify connection parameters for the Amazon Redshift database. Create the AmazonRedshiftConnectionParameters class object and specify the following properties:

    Assign the resulting AmazonRedshiftConnectionParameters object to the SqlDataSource.ConnectionParameters property.

    Note

    Alternatively, you can add a connection string with parameters to the application configuration file. Then, assign the connection string name to the SqlDataSource.ConnectionName property.

  2. Create one of the following objects to specify the query:

    • Create a SelectQuery object to specify a set of tables/columns that form a SELECT statement when you execute a query.
    • Create a CustomSqlQuery object to specify an SQL query. Use the CustomSqlQuery.Sql property to specify a custom query string.

    Add the created query to the SqlDataSource.Queries collection exposed by the DashboardSqlDataSource object.

  3. Add the created DashboardSqlDataSource object to the Dashboard.DataSources collection.

The following code snippet shows how to supply the dashboard with data from the database deployed on the Amazon Redshift server:

using DevExpress.DashboardCommon;
using DevExpress.DataAccess.ConnectionParameters;
using DevExpress.DataAccess.Sql;
// ...
            AmazonRedshiftConnectionParameters redshiftParams = new AmazonRedshiftConnectionParameters();
            redshiftParams.ServerName = "myserver.redshift.amazonaws.com";
            redshiftParams.PortNumber = 5439;
            redshiftParams.UserName = "amazon_red";
            redshiftParams.Password = "password";
            redshiftParams.DatabaseName = "Analysis_Data";

            DashboardSqlDataSource sqlDataSource = new DashboardSqlDataSource("Data Source 1", redshiftParams);
            SelectQuery selectQuery = SelectQueryFluentBuilder
                .AddTable("SalesPerson")
                .SelectColumns("CategoryName", "Extended Price")
                .Build("Query 1");
            sqlDataSource.Queries.Add(selectQuery);
            sqlDataSource.Fill();
            dashboard.DataSources.Add(sqlDataSource);