<?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>article Splitting up GeoAnalytics connector operations in Member Articles</title>
    <link>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/ta-p/1520571</link>
    <description>&lt;DIV class="lia-message-template-symptoms-zone"&gt;
&lt;P&gt;Many of the GeoAnalytics can be executed with a split input of the indata table. This article explains which and how to modify the code that the connector produces. Operations that cannot be Splittable are mostly the aggregating and hence not Splittable. When loadable tables are used for input, inline tables are created in loops and can be used for a quick way to split. Of course it's possible to write custom code to do the splitting instead.&lt;/P&gt;
&lt;P&gt;Making calls with large indata tables often causes time outs on the server side, splitting is a way around that.&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;STRONG&gt;Splittable ops&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Non-splittable ops&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Special ops, splittable&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;AddressPointLookup&lt;BR /&gt;Intersects&lt;BR /&gt;IpLookup&lt;BR /&gt;NamedAreaLookup&lt;BR /&gt;NamedPointLookup&lt;BR /&gt;PointToAddressLookup&lt;BR /&gt;Routes&lt;BR /&gt;TravelAreas&lt;BR /&gt;Within&lt;BR /&gt;Load*&lt;BR /&gt;Closest**&lt;/P&gt;
&lt;/TD&gt;
&lt;TD style="text-align: left; vertical-align: top;"&gt;Closest&lt;BR /&gt;Cluster &lt;BR /&gt;Dissolve&lt;BR /&gt;IntersectsMost &lt;BR /&gt;Simplify&lt;/TD&gt;
&lt;TD style="text-align: left; vertical-align: top;"&gt;Binning&lt;BR /&gt;SpatialIndex&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;*Load is splittable, but not with the script version below. Instead, load portions of the indata, tables with the same attributes will be auto concatenated.&lt;/P&gt;
&lt;P&gt;**Closest is splittable by the first table, like "for all patients which is the closest hospital" then "patients" can be calculated in batches of ex 1000.&lt;/P&gt;
&lt;H3&gt;Binning and SpatialIndex&lt;/H3&gt;
&lt;P&gt;Bining and SpatialIndex differs from other operations, they are not placing any call to the server if the indata are internal geometries, ie lat ,ong points. The operations als produce the same type of results so the resulting tables can be concatenated.&lt;/P&gt;
&lt;H3&gt;Example, a Within operation&lt;/H3&gt;
&lt;H4&gt;Before the edit&lt;/H4&gt;
&lt;P&gt;The code as the connector produces it:&lt;/P&gt;
&lt;PRE&gt;/* Generated by GeoAnalytics for operation Within ---------------------- */&lt;BR /&gt;&lt;STRONG&gt;Let [EnclosedInlineTable] = 'POSTCODE' &amp;amp; Chr(9) &amp;amp; 'Postal.Latitude' &amp;amp; Chr(9) &amp;amp; 'Postal.Longitude';&lt;/STRONG&gt;&lt;BR /&gt;Let numRows = NoOfRows('PostalData');&lt;BR /&gt;Let chunkSize = 1000;&lt;BR /&gt;Let chunks = numRows/chunkSize;&lt;BR /&gt;For n = 0 to chunks&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Let chunkText = '';&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Let chunk = n*chunkSize;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;For i = 0 To chunkSize-1&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Let row = '';&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Let rowNr = chunk+i;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Exit for when rowNr &amp;gt;= numRows;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;For Each f In 'POSTCODE', 'Postal.Latitude', 'Postal.Longitude'&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;row = row &amp;amp; Chr(9) &amp;amp; Replace(Replace(Replace(Replace(Replace(Replace(Peek('$(f)', $(rowNr), 'PostalData'), Chr(39), '\u0027'), Chr(34), '\u0022'), Chr(91), '\u005b'), Chr(47), '\u002f'), Chr(42), '\u002a'), Chr(59), '\u003b');&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Next&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;chunkText = chunkText &amp;amp; Chr(10) &amp;amp; Mid('$(row)', 2);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Next&lt;BR /&gt;&amp;nbsp; &amp;nbsp;[EnclosedInlineTable] = [EnclosedInlineTable] &amp;amp; chunkText;&lt;BR /&gt;Next&lt;BR /&gt;chunkText=''&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Let [EnclosingInlineTable] = 'ClubCode' &amp;amp; Chr(9) &amp;amp; 'Car5mins_TravelArea';&lt;BR /&gt;Let numRows = NoOfRows('TravelAreas5');&lt;BR /&gt;Let chunkSize = 1000;&lt;BR /&gt;Let chunks = numRows/chunkSize;&lt;BR /&gt;For n = 0 to chunks&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Let chunkText = '';&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Let chunk = n*chunkSize;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;For i = 0 To chunkSize-1&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Let row = '';&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Let rowNr = chunk+i;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Exit for when rowNr &amp;gt;= numRows;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;For Each f In 'ClubCode', 'Car5mins_TravelArea'&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;row = row &amp;amp; Chr(9) &amp;amp; Replace(Replace(Replace(Replace(Replace(Replace(Peek('$(f)', $(rowNr), 'TravelAreas5'), Chr(39), '\u0027'), Chr(34), '\u0022'), Chr(91), '\u005b'), Chr(47), '\u002f'), Chr(42), '\u002a'), Chr(59), '\u003b');&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Next&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;chunkText = chunkText &amp;amp; Chr(10) &amp;amp; Mid('$(row)', 2);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Next&lt;BR /&gt;[EnclosingInlineTable] = [EnclosingInlineTable] &amp;amp; chunkText;&lt;BR /&gt;Next&lt;BR /&gt;chunkText=''&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;[WithinAssociations]:&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SQL SELECT [POSTCODE], [ClubCode] FROM Within(enclosed='Enclosed', enclosing='Enclosing')&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;DATASOURCE Enclosed INLINE tableName='PostalData', tableFields='POSTCODE,Postal.Latitude,Postal.Longitude', geometryType='POINTLATLON', loadDistinct='NO', suffix='', crs='Auto' {$(EnclosedInlineTable)}&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;DATASOURCE Enclosing INLINE tableName='TravelAreas5', tableFields='ClubCode,Car5mins_TravelArea', geometryType='POLYGON', loadDistinct='NO', suffix='', crs='Auto' {$(EnclosingInlineTable)}&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SELECT [POSTCODE], [Enclosed_Geometry] FROM Enclosed&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SELECT [ClubCode], [Car5mins_TravelArea] FROM Enclosing;&lt;BR /&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[EnclosedInlineTable] = '';&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[EnclosingInlineTable] = '';&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;/* End GeoAnalytics operation Within ----------------------------------- */&lt;/PRE&gt;
&lt;DIV&gt;
&lt;H3 id="SplittingupGeoAnalyticsconnectoroperations-Afteredit"&gt;After edit&lt;/H3&gt;
&lt;P&gt;The header and the call is moved inside of the loop. chunkSize decides how big each split is.&lt;/P&gt;
&lt;P&gt;Note that the first inline table now comes after the first one, this to get the call inside of the iteration.&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;/* Generated by GeoAnalytics for operation Within ---------------------- */&lt;BR /&gt;&lt;BR /&gt;Let [EnclosingInlineTable] = 'ClubCode' &amp;amp; Chr(9) &amp;amp; 'Car5mins_TravelArea';&lt;BR /&gt;Let numRows = NoOfRows('TravelAreas5');&lt;BR /&gt;Let chunkSize = 1000;&lt;BR /&gt;Let chunks = numRows/chunkSize;&lt;BR /&gt;For n = 0 to chunks&lt;BR /&gt; Let chunkText = '';&lt;BR /&gt; Let chunk = n*chunkSize;&lt;BR /&gt; For i = 0 To chunkSize-1&lt;BR /&gt; Let row = '';&lt;BR /&gt; Let rowNr = chunk+i;&lt;BR /&gt; Exit for when rowNr &amp;gt;= numRows;&lt;BR /&gt; For Each f In 'ClubCode', 'Car5mins_TravelArea'&lt;BR /&gt; row = row &amp;amp; Chr(9) &amp;amp; Replace(Replace(Replace(Replace(Replace(Replace(Peek('$(f)', $(rowNr), 'TravelAreas5'), Chr(39), '\u0027'), Chr(34), '\u0022'), Chr(91), '\u005b'), Chr(47), '\u002f'), Chr(42), '\u002a'), Chr(59), '\u003b');&lt;BR /&gt; Next&lt;BR /&gt; chunkText = chunkText &amp;amp; Chr(10) &amp;amp; Mid('$(row)', 2);&lt;BR /&gt; Next&lt;BR /&gt; [EnclosingInlineTable] = [EnclosingInlineTable] &amp;amp; chunkText;&lt;BR /&gt;Next&lt;BR /&gt;chunkText=''&lt;BR /&gt;&lt;BR /&gt;Let numRows = NoOfRows('PostalData');&lt;BR /&gt;&lt;BR /&gt;Let chunkSize = 1000;&lt;BR /&gt;Let chunks = numRows/chunkSize;&lt;BR /&gt;For n = 0 to chunks&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt; Let [EnclosedInlineTable] = 'POSTCODE' &amp;amp; Chr(9) &amp;amp; 'Postal.Latitude' &amp;amp; Chr(9) &amp;amp; 'Postal.Longitude';&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt; Let chunkText = '';&lt;BR /&gt; Let chunk = n*chunkSize;&lt;BR /&gt; For i = 0 To chunkSize-1&lt;BR /&gt; Let row = '';&lt;BR /&gt; Let rowNr = chunk+i;&lt;BR /&gt; Exit for when rowNr &amp;gt;= numRows;&lt;BR /&gt; For Each f In 'POSTCODE', 'Postal.Latitude', 'Postal.Longitude'&lt;BR /&gt; row = row &amp;amp; Chr(9) &amp;amp; Replace(Replace(Replace(Replace(Replace(Replace(Peek('$(f)', $(rowNr), 'PostalData'), Chr(39), '\u0027'), Chr(34), '\u0022'), Chr(91), '\u005b'), Chr(47), '\u002f'), Chr(42), '\u002a'), Chr(59), '\u003b');&lt;BR /&gt; Next&lt;BR /&gt; chunkText = chunkText &amp;amp; Chr(10) &amp;amp; Mid('$(row)', 2);&lt;BR /&gt; Next&lt;BR /&gt; [EnclosedInlineTable] = [EnclosedInlineTable] &amp;amp; chunkText;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt; [WithinAssociations]:&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; SQL SELECT [POSTCODE], [ClubCode] FROM Within(enclosed='Enclosed', enclosing='Enclosing')&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; DATASOURCE Enclosed INLINE tableName='PostalData', tableFields='POSTCODE,Postal.Latitude,Postal.Longitude', geometryType='POINTLATLON', loadDistinct='NO', suffix='', crs='Auto' {$(EnclosedInlineTable)}&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; DATASOURCE Enclosing INLINE tableName='TravelAreas5', tableFields='ClubCode,Car5mins_TravelArea', geometryType='POLYGON', loadDistinct='NO', suffix='', crs='Auto' {$(EnclosingInlineTable)}&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; SELECT [POSTCODE], [Enclosed_Geometry] FROM Enclosed&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; SELECT [ClubCode], [Car5mins_TravelArea] FROM Enclosing;&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;Next&lt;BR /&gt;&lt;BR /&gt;[EnclosedInlineTable] = '';&lt;BR /&gt;[EnclosingInlineTable] = '';&lt;BR /&gt;chunkText=''&lt;BR /&gt;/* End GeoAnalytics operation Within ----------------------------------- */&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-solution-zone"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
    <pubDate>Tue, 28 Jun 2022 11:42:52 GMT</pubDate>
    <dc:creator>Patric_Nordstrom</dc:creator>
    <dc:date>2022-06-28T11:42:52Z</dc:date>
    <item>
      <title>Splitting up GeoAnalytics connector operations</title>
      <link>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/ta-p/1520571</link>
      <description>&lt;DIV class="lia-message-template-symptoms-zone"&gt;
&lt;P&gt;Many of the GeoAnalytics can be executed with a split input of the indata table. This article explains which and how to modify the code that the connector produces. Operations that cannot be Splittable are mostly the aggregating and hence not Splittable. When loadable tables are used for input, inline tables are created in loops and can be used for a quick way to split. Of course it's possible to write custom code to do the splitting instead.&lt;/P&gt;
&lt;P&gt;Making calls with large indata tables often causes time outs on the server side, splitting is a way around that.&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;STRONG&gt;Splittable ops&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Non-splittable ops&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Special ops, splittable&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;AddressPointLookup&lt;BR /&gt;Intersects&lt;BR /&gt;IpLookup&lt;BR /&gt;NamedAreaLookup&lt;BR /&gt;NamedPointLookup&lt;BR /&gt;PointToAddressLookup&lt;BR /&gt;Routes&lt;BR /&gt;TravelAreas&lt;BR /&gt;Within&lt;BR /&gt;Load*&lt;BR /&gt;Closest**&lt;/P&gt;
&lt;/TD&gt;
&lt;TD style="text-align: left; vertical-align: top;"&gt;Closest&lt;BR /&gt;Cluster &lt;BR /&gt;Dissolve&lt;BR /&gt;IntersectsMost &lt;BR /&gt;Simplify&lt;/TD&gt;
&lt;TD style="text-align: left; vertical-align: top;"&gt;Binning&lt;BR /&gt;SpatialIndex&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;*Load is splittable, but not with the script version below. Instead, load portions of the indata, tables with the same attributes will be auto concatenated.&lt;/P&gt;
&lt;P&gt;**Closest is splittable by the first table, like "for all patients which is the closest hospital" then "patients" can be calculated in batches of ex 1000.&lt;/P&gt;
&lt;H3&gt;Binning and SpatialIndex&lt;/H3&gt;
&lt;P&gt;Bining and SpatialIndex differs from other operations, they are not placing any call to the server if the indata are internal geometries, ie lat ,ong points. The operations als produce the same type of results so the resulting tables can be concatenated.&lt;/P&gt;
&lt;H3&gt;Example, a Within operation&lt;/H3&gt;
&lt;H4&gt;Before the edit&lt;/H4&gt;
&lt;P&gt;The code as the connector produces it:&lt;/P&gt;
&lt;PRE&gt;/* Generated by GeoAnalytics for operation Within ---------------------- */&lt;BR /&gt;&lt;STRONG&gt;Let [EnclosedInlineTable] = 'POSTCODE' &amp;amp; Chr(9) &amp;amp; 'Postal.Latitude' &amp;amp; Chr(9) &amp;amp; 'Postal.Longitude';&lt;/STRONG&gt;&lt;BR /&gt;Let numRows = NoOfRows('PostalData');&lt;BR /&gt;Let chunkSize = 1000;&lt;BR /&gt;Let chunks = numRows/chunkSize;&lt;BR /&gt;For n = 0 to chunks&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Let chunkText = '';&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Let chunk = n*chunkSize;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;For i = 0 To chunkSize-1&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Let row = '';&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Let rowNr = chunk+i;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Exit for when rowNr &amp;gt;= numRows;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;For Each f In 'POSTCODE', 'Postal.Latitude', 'Postal.Longitude'&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;row = row &amp;amp; Chr(9) &amp;amp; Replace(Replace(Replace(Replace(Replace(Replace(Peek('$(f)', $(rowNr), 'PostalData'), Chr(39), '\u0027'), Chr(34), '\u0022'), Chr(91), '\u005b'), Chr(47), '\u002f'), Chr(42), '\u002a'), Chr(59), '\u003b');&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Next&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;chunkText = chunkText &amp;amp; Chr(10) &amp;amp; Mid('$(row)', 2);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Next&lt;BR /&gt;&amp;nbsp; &amp;nbsp;[EnclosedInlineTable] = [EnclosedInlineTable] &amp;amp; chunkText;&lt;BR /&gt;Next&lt;BR /&gt;chunkText=''&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Let [EnclosingInlineTable] = 'ClubCode' &amp;amp; Chr(9) &amp;amp; 'Car5mins_TravelArea';&lt;BR /&gt;Let numRows = NoOfRows('TravelAreas5');&lt;BR /&gt;Let chunkSize = 1000;&lt;BR /&gt;Let chunks = numRows/chunkSize;&lt;BR /&gt;For n = 0 to chunks&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Let chunkText = '';&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Let chunk = n*chunkSize;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;For i = 0 To chunkSize-1&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Let row = '';&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Let rowNr = chunk+i;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Exit for when rowNr &amp;gt;= numRows;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;For Each f In 'ClubCode', 'Car5mins_TravelArea'&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;row = row &amp;amp; Chr(9) &amp;amp; Replace(Replace(Replace(Replace(Replace(Replace(Peek('$(f)', $(rowNr), 'TravelAreas5'), Chr(39), '\u0027'), Chr(34), '\u0022'), Chr(91), '\u005b'), Chr(47), '\u002f'), Chr(42), '\u002a'), Chr(59), '\u003b');&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Next&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;chunkText = chunkText &amp;amp; Chr(10) &amp;amp; Mid('$(row)', 2);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;Next&lt;BR /&gt;[EnclosingInlineTable] = [EnclosingInlineTable] &amp;amp; chunkText;&lt;BR /&gt;Next&lt;BR /&gt;chunkText=''&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;[WithinAssociations]:&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SQL SELECT [POSTCODE], [ClubCode] FROM Within(enclosed='Enclosed', enclosing='Enclosing')&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;DATASOURCE Enclosed INLINE tableName='PostalData', tableFields='POSTCODE,Postal.Latitude,Postal.Longitude', geometryType='POINTLATLON', loadDistinct='NO', suffix='', crs='Auto' {$(EnclosedInlineTable)}&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;DATASOURCE Enclosing INLINE tableName='TravelAreas5', tableFields='ClubCode,Car5mins_TravelArea', geometryType='POLYGON', loadDistinct='NO', suffix='', crs='Auto' {$(EnclosingInlineTable)}&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SELECT [POSTCODE], [Enclosed_Geometry] FROM Enclosed&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SELECT [ClubCode], [Car5mins_TravelArea] FROM Enclosing;&lt;BR /&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[EnclosedInlineTable] = '';&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[EnclosingInlineTable] = '';&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;/* End GeoAnalytics operation Within ----------------------------------- */&lt;/PRE&gt;
&lt;DIV&gt;
&lt;H3 id="SplittingupGeoAnalyticsconnectoroperations-Afteredit"&gt;After edit&lt;/H3&gt;
&lt;P&gt;The header and the call is moved inside of the loop. chunkSize decides how big each split is.&lt;/P&gt;
&lt;P&gt;Note that the first inline table now comes after the first one, this to get the call inside of the iteration.&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;/* Generated by GeoAnalytics for operation Within ---------------------- */&lt;BR /&gt;&lt;BR /&gt;Let [EnclosingInlineTable] = 'ClubCode' &amp;amp; Chr(9) &amp;amp; 'Car5mins_TravelArea';&lt;BR /&gt;Let numRows = NoOfRows('TravelAreas5');&lt;BR /&gt;Let chunkSize = 1000;&lt;BR /&gt;Let chunks = numRows/chunkSize;&lt;BR /&gt;For n = 0 to chunks&lt;BR /&gt; Let chunkText = '';&lt;BR /&gt; Let chunk = n*chunkSize;&lt;BR /&gt; For i = 0 To chunkSize-1&lt;BR /&gt; Let row = '';&lt;BR /&gt; Let rowNr = chunk+i;&lt;BR /&gt; Exit for when rowNr &amp;gt;= numRows;&lt;BR /&gt; For Each f In 'ClubCode', 'Car5mins_TravelArea'&lt;BR /&gt; row = row &amp;amp; Chr(9) &amp;amp; Replace(Replace(Replace(Replace(Replace(Replace(Peek('$(f)', $(rowNr), 'TravelAreas5'), Chr(39), '\u0027'), Chr(34), '\u0022'), Chr(91), '\u005b'), Chr(47), '\u002f'), Chr(42), '\u002a'), Chr(59), '\u003b');&lt;BR /&gt; Next&lt;BR /&gt; chunkText = chunkText &amp;amp; Chr(10) &amp;amp; Mid('$(row)', 2);&lt;BR /&gt; Next&lt;BR /&gt; [EnclosingInlineTable] = [EnclosingInlineTable] &amp;amp; chunkText;&lt;BR /&gt;Next&lt;BR /&gt;chunkText=''&lt;BR /&gt;&lt;BR /&gt;Let numRows = NoOfRows('PostalData');&lt;BR /&gt;&lt;BR /&gt;Let chunkSize = 1000;&lt;BR /&gt;Let chunks = numRows/chunkSize;&lt;BR /&gt;For n = 0 to chunks&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt; Let [EnclosedInlineTable] = 'POSTCODE' &amp;amp; Chr(9) &amp;amp; 'Postal.Latitude' &amp;amp; Chr(9) &amp;amp; 'Postal.Longitude';&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt; Let chunkText = '';&lt;BR /&gt; Let chunk = n*chunkSize;&lt;BR /&gt; For i = 0 To chunkSize-1&lt;BR /&gt; Let row = '';&lt;BR /&gt; Let rowNr = chunk+i;&lt;BR /&gt; Exit for when rowNr &amp;gt;= numRows;&lt;BR /&gt; For Each f In 'POSTCODE', 'Postal.Latitude', 'Postal.Longitude'&lt;BR /&gt; row = row &amp;amp; Chr(9) &amp;amp; Replace(Replace(Replace(Replace(Replace(Replace(Peek('$(f)', $(rowNr), 'PostalData'), Chr(39), '\u0027'), Chr(34), '\u0022'), Chr(91), '\u005b'), Chr(47), '\u002f'), Chr(42), '\u002a'), Chr(59), '\u003b');&lt;BR /&gt; Next&lt;BR /&gt; chunkText = chunkText &amp;amp; Chr(10) &amp;amp; Mid('$(row)', 2);&lt;BR /&gt; Next&lt;BR /&gt; [EnclosedInlineTable] = [EnclosedInlineTable] &amp;amp; chunkText;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt; [WithinAssociations]:&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; SQL SELECT [POSTCODE], [ClubCode] FROM Within(enclosed='Enclosed', enclosing='Enclosing')&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; DATASOURCE Enclosed INLINE tableName='PostalData', tableFields='POSTCODE,Postal.Latitude,Postal.Longitude', geometryType='POINTLATLON', loadDistinct='NO', suffix='', crs='Auto' {$(EnclosedInlineTable)}&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; DATASOURCE Enclosing INLINE tableName='TravelAreas5', tableFields='ClubCode,Car5mins_TravelArea', geometryType='POLYGON', loadDistinct='NO', suffix='', crs='Auto' {$(EnclosingInlineTable)}&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; SELECT [POSTCODE], [Enclosed_Geometry] FROM Enclosed&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; SELECT [ClubCode], [Car5mins_TravelArea] FROM Enclosing;&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;Next&lt;BR /&gt;&lt;BR /&gt;[EnclosedInlineTable] = '';&lt;BR /&gt;[EnclosingInlineTable] = '';&lt;BR /&gt;chunkText=''&lt;BR /&gt;/* End GeoAnalytics operation Within ----------------------------------- */&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-solution-zone"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Tue, 28 Jun 2022 11:42:52 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/ta-p/1520571</guid>
      <dc:creator>Patric_Nordstrom</dc:creator>
      <dc:date>2022-06-28T11:42:52Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting up GeoAnalytics connector operations</title>
      <link>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/tac-p/2054869#M1121</link>
      <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/24514"&gt;@Patric_Nordstrom&lt;/a&gt;&amp;nbsp;I know this post is about GeoAnalytics, but I was wondering how we can use GeoOperations Cluster on large datasets? Currently there is a 50k row limit, but the whole point of Cluster is to reduce large data to make it reasonable on a map. Is there any solution for larger data in GeoOperations Cluster?&lt;/P&gt;</description>
      <pubDate>Wed, 29 Mar 2023 20:16:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/tac-p/2054869#M1121</guid>
      <dc:creator>bchastai</dc:creator>
      <dc:date>2023-03-29T20:16:42Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting up GeoAnalytics connector operations</title>
      <link>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/tac-p/2070123#M1510</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/24514"&gt;@Patric_Nordstrom&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;I am trying to split up a Load operation in order to get all the postal codes from France.&lt;/P&gt;
&lt;P&gt;You say on the article :&amp;nbsp;&lt;EM&gt;Load is splittable, but not with the script version below. Instead, load portions of the indata, tables with the same attributes will be auto concatenated&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;But the thing is that I can not really see how and where I can specify that I want to load only a portion&lt;/P&gt;
&lt;P&gt;Could you help me on that point ?&lt;/P&gt;
&lt;P&gt;Thank you&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;</description>
      <pubDate>Thu, 11 May 2023 10:09:29 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/tac-p/2070123#M1510</guid>
      <dc:creator>Antoine04</dc:creator>
      <dc:date>2023-05-11T10:09:29Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting up GeoAnalytics connector operations</title>
      <link>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/tac-p/2079038#M1523</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/110933"&gt;@Antoine04&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;I am also trying to split the postal codes from France by using the LOAD operation. Did you find out, how does it work?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BR,&lt;/P&gt;
&lt;P&gt;Rumen&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2023 15:29:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/tac-p/2079038#M1523</guid>
      <dc:creator>vasilev</dc:creator>
      <dc:date>2023-06-01T15:29:28Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting up GeoAnalytics connector operations</title>
      <link>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/tac-p/2438217#M2145</link>
      <description>&lt;P&gt;It would be very helpful if you could provide an example for operation Routes&lt;/P&gt;</description>
      <pubDate>Fri, 05 Apr 2024 07:37:03 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Member-Articles/Splitting-up-GeoAnalytics-connector-operations/tac-p/2438217#M2145</guid>
      <dc:creator>Emir_Dz</dc:creator>
      <dc:date>2024-04-05T07:37:03Z</dc:date>
    </item>
  </channel>
</rss>

