Input data from RDBMS table

2845
6
03-31-2014 10:52 PM
EliasLazarou
New Contributor II
Hello,

I need to feed GeoEvent Processor with data stream that comes from an RDBMS table. Which type of Input Connector should i use and how could i configure it? Does anyone have a clue?

Thank you

Elias
0 Kudos
6 Replies
MingZhao
New Contributor III
Elias,

Do you already have a streaming service that streams data from an RDBMS?  If so, you can send the stream data to GEP inputs that receive data from the REST end point, TCP/UDP socket or WebSocket.  Depending on the format of your streaming data, you may use an existing connector such as Receive JSON on a REST endpoint or Receive text from a TCP Socket.  If none of the existing connectors matches your format/protocal combination, you may create a new connector.  If your format or protocal is not supported, you may need to write a custom adapter or transport.

GEP does not have a connector that fetches data from an RDBMS.

Thanks,

Ming
0 Kudos
EliasLazarou
New Contributor II
Hello Ming

Thank you for the quick response. What do you mean by "the format of the streaming data"? Actually the table that will be getting updated will be a part of a feature service. I have attached a csv file representing what that table is going to have. Could you explain what the best approach would be, talking about the input connectors? Maybe it is something simple but it is only the first days that we are in touch with GEP.

Elias
0 Kudos
RJSunderman
Esri Regular Contributor
Hello Elias -

While we do not have an inbound connector available for retrieving data from an RDBMS table, we do have an out-of-the-box input Poll an ArcGIS Server for Features which will poll a feature service for features. This is perhaps a subtle distinction since, yes, a feature service is backed by a feature class whose data table is in an RDMBS ... but the feature service provides the interface we've developed the inbound connector to use.

I've attached an illustration of how you might configure this type of input. In the illustration, notice that I have specified the registered connection to my local ArcGIS for Server (RSUNDERMAN_AGS), the services folder (GEP_Forum), and the name of the feature service I want to poll (USGS_Earthquakes_LastHour). That feature service has a layer, also named USGS_Earthquakes_LastHour, which contains the features I will be polling.

I had previously imported a GeoEvent Definition from this feature service, so I specify that the input should not attempt to create one, but should instead use the one I imported named USGS_Earthquakes_LastHour. Evidently I wasn't feeling very creative with my names. 🙂

The Refresh Interval is expressed in seconds. So this input would poll the feature service every 10 seconds for data. The Get Incremental Updates parameter was changed at 10.2.1 to allow configuration based on timestamp (as shown) vs. OBJECTID (which is your only option at 10.2.0).

I've left the defaults beneath Advanced unchanged ... particularly the option to not delete features polled by GeoEvent Processor.

Please let us know if this input will do what you need.

[ATTACH=CONFIG]32882[/ATTACH]

Thanks -
RJ
0 Kudos
EliasLazarou
New Contributor II
Thank you very very much once again RJ. I will give it a shot today and i ll let you know..

Elias

PS: There was no attachment but i understood what to do so no worries :cool:
Sorry Elias - my bad - I've added the screenshot to the previous post.
0 Kudos
EliasLazarou
New Contributor II
Hello RJ,

The steps that you proposed worked great while polling a Feature Class through a feature service. The problem is that is does not seem to work with a table (also within the feature service). Is is true or it is something that i am doing possibly wrong?

Thank again,

Elias
0 Kudos
RJSunderman
Esri Regular Contributor
Hello Elias -

I think there was an issue with using non-spatial tables as the source of event enrichment at the 10.2.0 release. The Field Enricher processor was assuming that the target table would have a Geometry field ... which of course non-spatial tables do not.

I created a mock-up of the scenario we have been working with using my build of 10.2.1 and didn't have any problems first GeoTagging events with the GeoFence(s) they were inside, then using a Field Calculator to pull the name of a specific GeoFence from the List of tags and sending that event through a series of Field Enrichers ... one enriching the event with a String from the Feature Service's Feature Layer, and one enriching the event with a String from the Feature Service's Table.

Here's how I configured my GeoEvent Service (click to enlarge thumbnail):

[ATTACH=CONFIG]32930[/ATTACH] [ATTACH=CONFIG]32931[/ATTACH] [ATTACH=CONFIG]32932[/ATTACH]


My Feature Service has a Feature Layer at layer index 0 and a non-spatial table at layer index 1:

[ATTACH=CONFIG]32933[/ATTACH]

- RJ
0 Kudos