<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Help! Trying to come up with a data management solution via REST and Hosted Feature Layers. Could this work? in Data Management Questions</title>
    <link>https://community.esri.com/t5/data-management-questions/help-trying-to-come-up-with-a-data-management/m-p/1373502#M44907</link>
    <description>&lt;P&gt;Hey all,&lt;/P&gt;&lt;P&gt;Not sure if this is the best forum to post this in, but thought it could be a good start. Hoping to brainstorm some ideas with the community for how I can come up with a solution to this problem we're facing.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Issue&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;We're using a third-party LMS system which works great, however data is only retained at a maximum of 12 months, after which it gets deleted/becomes inaccessible. This is a problem as it's crucial for us to know historical LMS completion (i.e., compliance) values for registered people.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Potential Solution&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Thankfully this site has an API - yay! However, the data returned in the API isn't as robust as I'd hoped. However for each registered individual, I could pull their compliance values (e.g., 23 of 25 required modules completed - 92% compliance) at weekly intervals, thus building an internal copy of the LMS records that we can retain for longer than 12 months.&lt;/P&gt;&lt;P&gt;I'm thinking of building a script in Python to make the required API calls (returns a dictionary), and then pushing that payload to a hosted feature layer in AGO where the parent table has the name of the individual and the child table has bi-weekly compliance scores of that individual (thus 26 child records per year).&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Potential Workflow&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I haven't built a database through REST calls before, but at a very high level, my thoughts are:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Build a Python script that iterates through a list of registered LMS users and performs the API call&lt;/LI&gt;&lt;LI&gt;Use the dictionary returned from the API call to push data to the hosted feature layer&lt;OL&gt;&lt;LI&gt;&lt;EM&gt;This should check for new people so it can add, existing people so it can update, and those who were removed from the system so it can retire them&lt;/EM&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI&gt;Schedule it at bi-weekly intervals.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;STRONG&gt;Potential Issues&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;There are quite a large number of users in our LMS (&amp;gt; 2,000). Using 2,000 as a benchmark, the resulting feature layer would have 2,000 parent records and 52,000 child records annually (if running bi-weekly).&lt;/P&gt;&lt;P&gt;I realize ArcGIS Online isn't an ideal place for storing a dataset that large. And maybe it's not even a viable place to store that dataset as it continues to grow. However, I'm the only GIS person in the organization and I unfortunately don't have any experience with SQL servers or building datasets outside of "traditional" geodatabases or AGOL feature layers.&lt;/P&gt;&lt;P&gt;Additionally, the reason why I'm considering AGOL to store this is that this data will ideally feed into things like surveys in Survey123, Dashboards, etc. So having the data as a hosted feature layer seemed to make the most sense in that regard.&lt;/P&gt;&lt;P&gt;Lastly, I don't know how the potential script would perform on their end if, every time I ran it, it would essentially send 2,000+ API calls to their server.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm still in the exploration phase and I don't really know if this is even possible in the way I'm proposing, so any thoughts, feedback, or other ideas would be greatly appreciated.&lt;/P&gt;&lt;P&gt;Thanks for your time!&lt;/P&gt;</description>
    <pubDate>Tue, 23 Jan 2024 16:34:15 GMT</pubDate>
    <dc:creator>Vinzafy</dc:creator>
    <dc:date>2024-01-23T16:34:15Z</dc:date>
    <item>
      <title>Help! Trying to come up with a data management solution via REST and Hosted Feature Layers. Could this work?</title>
      <link>https://community.esri.com/t5/data-management-questions/help-trying-to-come-up-with-a-data-management/m-p/1373502#M44907</link>
      <description>&lt;P&gt;Hey all,&lt;/P&gt;&lt;P&gt;Not sure if this is the best forum to post this in, but thought it could be a good start. Hoping to brainstorm some ideas with the community for how I can come up with a solution to this problem we're facing.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Issue&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;We're using a third-party LMS system which works great, however data is only retained at a maximum of 12 months, after which it gets deleted/becomes inaccessible. This is a problem as it's crucial for us to know historical LMS completion (i.e., compliance) values for registered people.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Potential Solution&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Thankfully this site has an API - yay! However, the data returned in the API isn't as robust as I'd hoped. However for each registered individual, I could pull their compliance values (e.g., 23 of 25 required modules completed - 92% compliance) at weekly intervals, thus building an internal copy of the LMS records that we can retain for longer than 12 months.&lt;/P&gt;&lt;P&gt;I'm thinking of building a script in Python to make the required API calls (returns a dictionary), and then pushing that payload to a hosted feature layer in AGO where the parent table has the name of the individual and the child table has bi-weekly compliance scores of that individual (thus 26 child records per year).&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Potential Workflow&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I haven't built a database through REST calls before, but at a very high level, my thoughts are:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Build a Python script that iterates through a list of registered LMS users and performs the API call&lt;/LI&gt;&lt;LI&gt;Use the dictionary returned from the API call to push data to the hosted feature layer&lt;OL&gt;&lt;LI&gt;&lt;EM&gt;This should check for new people so it can add, existing people so it can update, and those who were removed from the system so it can retire them&lt;/EM&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI&gt;Schedule it at bi-weekly intervals.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;STRONG&gt;Potential Issues&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;There are quite a large number of users in our LMS (&amp;gt; 2,000). Using 2,000 as a benchmark, the resulting feature layer would have 2,000 parent records and 52,000 child records annually (if running bi-weekly).&lt;/P&gt;&lt;P&gt;I realize ArcGIS Online isn't an ideal place for storing a dataset that large. And maybe it's not even a viable place to store that dataset as it continues to grow. However, I'm the only GIS person in the organization and I unfortunately don't have any experience with SQL servers or building datasets outside of "traditional" geodatabases or AGOL feature layers.&lt;/P&gt;&lt;P&gt;Additionally, the reason why I'm considering AGOL to store this is that this data will ideally feed into things like surveys in Survey123, Dashboards, etc. So having the data as a hosted feature layer seemed to make the most sense in that regard.&lt;/P&gt;&lt;P&gt;Lastly, I don't know how the potential script would perform on their end if, every time I ran it, it would essentially send 2,000+ API calls to their server.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm still in the exploration phase and I don't really know if this is even possible in the way I'm proposing, so any thoughts, feedback, or other ideas would be greatly appreciated.&lt;/P&gt;&lt;P&gt;Thanks for your time!&lt;/P&gt;</description>
      <pubDate>Tue, 23 Jan 2024 16:34:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/help-trying-to-come-up-with-a-data-management/m-p/1373502#M44907</guid>
      <dc:creator>Vinzafy</dc:creator>
      <dc:date>2024-01-23T16:34:15Z</dc:date>
    </item>
  </channel>
</rss>

