Jump to content

Snowflake Geography or WKB in Information Link


Robert Neelon

Recommended Posts

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

  • 4 months later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...