Connecting to DynamoDB

The Sisense DynamoDB connector is a certified connector that allows you to import data from the DynamoDB API into Sisense via theSisense generic JDBC connector. The DynamoDB connector offers the most natural way to connect Java applications with the DynamoDB real-time NoSQL cloud database service.

Sisense DynamoDB connector is a certified connector. The support for the connector is provided by Sisense and will be assisted by the certification partner's support, if needed. For any support issues or additional functionality requests, please contact your Sisense representative or open a request through our Help Center. For advanced inquiries specific to driver functionality, you can also contact our certification partner’s support directly via [email protected].

After you have downloaded the driver, you can connect through a connection string in Sisense. The connection string is used to authenticate users who connect to the DynamoDB APIs. To obtain a connection string, you will need to create a DynamoDB developers account. Once you have connected to DynamoDB, you can import a variety of tables from the DynamoDB API.

This page describes how to query the DynamoDB data, how to download the DynamoDB driver and deploy it, how to connect to DynamoDB with a connection string, provides information about the DynamoDB data model, and more.

Querying The DynamoDB Data

DynamoDB has two distinct operations to read data from tables: query and scan. These operations vary in execution times. The CData JDBC Driver for DynamoDB 2018 automatically attempts to figure out which type to use, based on the WHERE clause of the SQL statement.

Query vs. Scan

In DynamoDB, a query is used when some of the data can be filtered before results are returned. This is done by the use of partition keys and sort keys that are defined on the table to perform the filter. It is typically much faster than a scan.

A scan is performed when anything other than a partition key or a sort key is used to filter the data. In the case of the scan, data is only filtered after it is returned. This is much slower, since it will cause DynamoDB to return everything, and simply exclude non-matching results from the response. In the worst cases, it will return full pages of data that are simply empty due to no matching results.

Query Examples

A query operation will be submitted to DynamoDB if the WHERE clause includes a single PartitionKey with an '=' operator and optionally up to one SortKey using any DynamoDB supported operator. For instance:

SELECT * FROM Table WHERE PartitionKey = 'x'

SELECT * FROM Table WHERE PartitionKey = 'x' AND SortKey > 'y' AND SortKey < 'z'

For further information and additional examples, click here.

Downloading the DynamoDB JDBC Driver

You can download the DynamoDB JDBC driver here.

Note:

Deploying the DynamoDB JDBC Driver

To run the setup, execute the following command: java -jar setup.jar (OR, if your system is set up to run Java applications, double-click on setup.jar).
During the installation, pay attention to the path of the installation (you will need it later on, to direct Sisense to the Jar file. The default path is C:\Program Files\CData\CData JDBC Driver for DynamoDB 2019\lib).
Note: The install file (setup.jar) is a Java application that requires Java 6 (J2SE) or above to run. If you do not have Java 6 installed, you may download it from here.

Connecting to DynamoDB

To access DynamoDB from Sisense, you must provide valid Oauth DynamoDB credentials through a connection string. To obtain a connection string, you will need to create a DynamoDB developers account.

After you receive your credentials from DynamoDB, you can create the connection string and provide Sisense with it to connect to your data.

Creating the DynamoDB Connection String

Sisense uses connection strings to connect to DynamoDB and import data into Sisense.

The following is an example of a DynamoDB connection string:

jdbc:dynamodb:Access Key=AKIAJH283HDH2932DQ;Secret Key=vG07bFgSmvfgsrdfgHsB6iQU/HVOqO9L9g;Domain=amazonaws.com;Region=OREGON;

The connection to DynamoDB is made using your AccessKey, SecretKey, and optionally your Domain and Region. Your AccessKey and SecretKey can be obtained on the security credentials page for your Amazon Web Services account. Your Region will be displayed in the upper left-hand corner when you are logged into DynamoDB.

To help you create a connection string and test the connection, see Connection String Builder for Certified Connectors.

If you have any issues connecting to your data source, see Troubleshooting JDBC Data Connectors.

Adding DynamoDB Tables to your ElastiCube

  1. In the Data page, open an ElastiCubeor create a new ElastiCube.
  2. In the Model Editor, click . The Add Data dialog box is displayed.
  3. Click Generic JDBC to open the JDBC settings.
  4. In Connection String, enter the DynamoDB URL. See Creating a Connection String for more information.
  5. In JDBC JARs Folder, enter the name of the directory where the DynamoDB JAR file is located (see Deploying the DynamoDB JDBC Driver).
  6. In Driver's Class Name, enter the following class name: cdata.jdbc.dynamodb.DynamoDBDriver.
  7. In User Name and Password, enter your DynamoDB credentials. These fields are not required if the user name and password were provided in the connection string. 
  8. Click Next. A list of tables in the database are displayed. All tables and views associated with the database will appear in a new window.
  9. From the Tables list, select the relevant table or view you want to work with. You can click next to the relevant table or click Preview to see a preview of the data inside it. 
  10. (Optional) Click + to customize the data you want to import with SQL. See Importing Data with Custom Queries for more information.
  11. After you have selected all the relevant tables, click Done. The tables are added to your data model.

DynamoDB Connector: Additional Resources

For the full documentation set for the DynamoDB connector, click here.

For connection string options, click here.

For information on the DynamoDB data model, click here.