Resolving Athena JDBC Compatibility Issue with AWS SDK Version Mismatch in Spotfire

Resolving Athena JDBC Compatibility Issue with AWS SDK Version Mismatch in Spotfire

book

Article ID: KB0137672

calendar_today

Updated On:

Products Versions
Spotfire 14.0.1
Spotfire 14.0.1

Description

In Spotfire, you can configure a custom Athena JDBC data source. However, issues arise when the version of the AWS SDK used by Spotfire conflicts with the version required by the Athena JDBC driver.

  • AWS SDK in Athena JDBC: The earliest version of Athena JDBC (version 3.x) jar 3.0.0 requires at least "2.21.10" version of SDK. The subsequent jar version 3.1.0 requires at least 2.21.39.
  • AWS SDK in Spotfire 14.0.1: Spotfire 14.0.1 ships with AWS SDK 2.20.143. This version is older and incompatible with the Athena JDBC driver, which requires a higher version of the SDK.

As a result, the system may encounter errors related to the AWS SDK version mismatch, causing issues when attempting to access or configure Athena data sources.

Error message in Information Designer:

InformationModelException at Spotfire.Dxp.Forms:
SDK_CLIENT (HRESULT: 80131500)

Stack Trace:
   at Spotfire.Dxp.Forms.Data.InformationDesigner.NodeDesignerPanelControlBase.<>c__DisplayClass41_0.<SaveAs>b__0()
   at Spotfire.Dxp.Forms.Data.InformationDesigner.DesignerForm.SaveSafely(Executor saveExecutor, CachedModelElement elementToSave, Control parentControl)
...
FaultException at mscorlib:
SDK_CLIENT (HRESULT: 80131501)

Stack Trace:
Server stack trace: 
   at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   

 

Error in informationservices/server.log


Caused by: java.lang.NoSuchFieldError: SDK_CLIENT
        at software.amazon.awssdk.services.athena.DefaultAthenaAsyncClient.<init>(DefaultAthenaAsyncClient.java:279) ~[athena-jdbc-3.2.0-with-dependencies.jar:?]
        at software.amazon.awssdk.services.athena.DefaultAthenaAsyncClientBuilder.buildClient(DefaultAthenaAsyncClientBuilder.java:39) ~[athena-jdbc-3.2.0-with-dependencies.jar:?]
 at software.amazon.awssdk.services.athena.DefaultAthenaAsyncClientBuilder.buildClient(DefaultAthenaAsyncClientBuilder.java:25) ~[athena-jdbc-3.2.0-with-dependencies.jar:?]

Environment

Spotfire Server 14.0.1

Resolution

To resolve the compatibility issue between Spotfire and the Athena JDBC driver, we recommend upgrading to a version of Spotfire Server that includes a compatible AWS SDK version.

For example, to use the earliest Athena JDBC driver version 3.0.0, you should upgrade to at least Spotfire Server version 14.0.2, which ships with AWS SDK version 2.23.20.

Since newer Athena JDBC driver versions update the AWS SDK regularly, we strongly recommend using the latest version of Spotfire Server along with the corresponding compatible drivers.

To ensure compatibility and seamless integration between Spotfire and Amazon Athena, always refer to the Spotfire Server release notes—specifically the "Third-party Software Updates" section—to verify that the AWS SDK version aligns with the driver version you're using.

Issue/Introduction

This article addresses an error caused by version incompatibility between the AWS SDK used by Spotfire and the AWS SDK bundled with the Athena JDBC driver. Specifically, it explains how to resolve the issue when using Athena JDBC with Spotfire 14.0.1, which ships with an older version of the AWS SDK that is incompatible with the latest version of Athena JDBC.

Additional Information