Amazon Redshift

The Dashboard Designer provides the capability to connect to multiple types of SQL databases using the Data Source wizard. You can also use data access API to connect to the database and select the required data in code.

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

Important

To connect to various SQL databases, the Dashboard Designer requires a corresponding provider to be installed on the client machine. To learn more, see Supported Data Sources.

Note that the Amazon Redshift data provider requires the Npgsql.dll assembly of the following versions: 2.0.11.0, 3.0.2.0. If you want to establish a connection using the Npgsql.dll 3.0.4+ data provider, specify a custom connection string that includes Server Compatibility Mode=Redshift.

Creating a Data Source in the Data Source Wizard

To connect to the Amazon Redshift database in the Dashboard Designer, perform the following steps.

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

    DataBinding_NewDataSource

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

    DataSourceWizard_Database

  3. On the next page, select the Amazon Redshift data provider and specify the required 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 have specified the required connection parameters, click Next and specify how to select data from the database.

    MSSQL_CreateQuery_WithoutStoredProcedures

    Run the Query Builder by clicking the Run Query Builder... button. The Query Builder allows you to choose the required tables/columns visually 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 will be 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.

Creating a Data Source in Code

To create a data source that uses a connection to the Amazon Redshift database, create the instance of the DashboardSqlDataSource class and perform the following steps.

  1. Specify connection parameters to 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

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

  2. Select the required data by specifying the query. You can do this in the following ways.

    • The SelectQuery object allows you to specify a set of tables/columns, which form a SELECT statement when executing a query.
    • The CustomSqlQuery object allows you to specify an SQL query manually.

    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);