Robert Neelon Posted May 26, 2022 Share Posted May 26, 2022 I am trying to use Geospatial data from Snowflake in Spotifre. In a perfect world, Spotfire would handle the Snowflake GEOGRAPHY type automagically, but I can overcome that. I have a Snowflake table that hs that shape converted from the GEOGRAPHY type to WKB using the ST_ASWKB() function. I am able to pull this table into Spotfire via a Data Connection using ODBC and it works just fine. BUT I've had no luck so far pulling that same table in via an Information Link. I've followed these docs:https://docs.tibco.com/pub/sfire-analyst/11.8.0/doc/html/en-US/TIB_sfire-analyst_UsersGuide/index.htm#t=map_60%2Fmap_60_configuration_of_geographical_data_for_map_charts.htm&rhsearch=wkb&rhhlterm=wkb&rhsyns=%20 https://support.tibco.com/s/article/Creating-an-Information-Link-to-access-map-chart-data In the column element, I setContentTypeandMapChart.ColumnTypeIdto have the valuesapplication/x-wkbandGeometry, respectively and hit Save. When I go to add the Information Link to an analysis it fails (see error details below). Could this be a difference in the JDBC driver vs ODBC Thanks for any help you can provide! Error message: Could not read the selected data. ImportException at : Failed to read data (HRESULT: 80131500) Stack Trace: InformationModelException at Spotfire.Dxp.Data: Failed to get data: null (HRESULT: 80131500) Stack Trace: at Spotfire.Dxp.Data.InformationModel.InternalInformationModelManager.DataStream.GetNextBlock() at Spotfire.Dxp.Data.InformationModel.InternalInformationModelManager.DataStream.Read(Byte[] buffer, Int32 offset, Int32 count) at Spotfire.Dxp.Internal.Utilities.SeekableStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.BinaryReader.FillBuffer(Int32 numBytes) at System.IO.BinaryReader.ReadUInt16() at Spotfire.Dxp.Data.Formats.Sbdf.SbdfSectionHeader.ReadMagicNumber(BinaryReader reader) at Spotfire.Dxp.Data.Formats.Sbdf.SbdfSectionHeader.ReadSectionType(BinaryReader reader, SbdfSectionTypeId expectedType) at Spotfire.Dxp.Data.Import.SbdfDataRowReader.DelayedInit() at Spotfire.Dxp.Data.Import.InformationLinkDataSourceConnection.ExecuteInformationLink() at Spotfire.Dxp.Data.Import.InformationLinkDataSourceConnection.KnownColumnsInformationLinkDataRowReader.TryCreateCxxRepresentation(CxxSession session, Int64 exclusiveStartRowIndex, UInt64 maxRowsThatWillBeRead, PendingViewRequestsManager pendingViewRequestsManager, CxxTable& table) at Spotfire.Dxp.Data.Cxx.CxxDataTransfer.CreateTable(DataRowReader dataRowReader, CxxSession session, PartialDataLoadReport report, Advancer rowAdvancer, Boolean needsReset, Int64 exclusiveStartRowIndex, UInt64 maxRowsThatWillBeRead, PendingViewRequestsManager partiallyLoadedConsumers) at Spotfire.Dxp.Data.AsyncImport.DataSourceLoadingView.c__DisplayClass8_2.b__2() at Spotfire.Dxp.Framework.ApplicationModel.Progress.ExecuteSubtask(String title, ProgressOperation operation) at Spotfire.Dxp.Data.AsyncImport.DataSourceLoadingView.c__DisplayClass8_0.b__0(DataManager dataManager) at Spotfire.Dxp.Framework.DocumentModel.Snapshot`1.c__DisplayClass19_0.b__0() at Spotfire.Dxp.Framework.DocumentModel.ThreadTransactionInfo.EvaluateWithLimitationTarget(ILimitationTarget limitationTarget, Executor executor) at Spotfire.Dxp.Framework.DocumentModel.Snapshot`1.ReadWithLimitationTarget(ILimitationTarget limitationTarget, Action`1 action) at Spotfire.Dxp.Framework.DocumentModel.Snapshot`1.ReadWithGenerationSpan(Action`1 action, Action`1 invalidPropertyReadCallback) at Spotfire.Dxp.Framework.DocumentModel.Snapshot`1.Read(Action`1 action) at Spotfire.Dxp.Data.AsyncImport.DataSourceLoadingView.CreateFullView(DataSource dataSource, Snapshot`1 dataManagerSnapshot, CxxSession session, PendingViewRequestsManager pendingViewRequestsManager, Boolean loadingOnApplicationThread, LoadableEntityBusyToken busyToken, Boolean loadEmptySourceData) at Spotfire.Dxp.Data.AsyncImport.DataSourceLoadingView.c__DisplayClass5_0.b__0(PendingViewRequestsManager pendingViewRequestsManager) at Spotfire.Dxp.Framework.ApplicationModel.Progress.c__DisplayClass22_0.b__0() at Spotfire.Dxp.Framework.ApplicationModel.MonitorableProgress.Start[T](Func`1 action) at Spotfire.Dxp.Data.AsyncImport.BackgroundImportLoadingView.c__DisplayClass14_0.b__0() InformationModelServiceException at Spotfire.Dxp.Services: Failed to get data: null (HRESULT: 80131509) Stack Trace: at Spotfire.Dxp.Services.WcfSoapService`2.InvokeService[T](Func`1 serviceMethod, String customMethodNameForLogging) at Spotfire.Dxp.Data.InformationModel.InternalInformationModelManager.DataStream.GetNextBlock() Link to comment Share on other sites More sharing options...
Kirsten Smith (she/her) Posted May 27, 2022 Share Posted May 27, 2022 We have tried to make the JDBC driver work with binary (Geospatial) and have come to the conclusion that the JDBC driver doesn't support it. Our best suggestion is to contact Snowflake to see how they recommend retrieving binary data (using ST_AsBinary()) via JDBC. Link to comment Share on other sites More sharing options...
Robert Neelon Posted October 11, 2022 Author Share Posted October 11, 2022 Sorry for the delay. I didn't get an email that there was a response. Thank you for the information. I will reach out to them! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now