<?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 Qlik Replicate: Segment boundary at parallel load in Qlik Replicate</title>
    <link>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2012687#M4412</link>
    <description>&lt;P&gt;Dear Community,&lt;/P&gt;
&lt;P&gt;I am trying to load a very large table in parallel using segmentation on the attribute with the data type TIMESTAMP.&lt;BR /&gt;The table contains 20 years of data.&lt;BR /&gt;These DB settings for time look like this:&lt;/P&gt;
&lt;P&gt;nls_time_format                     HH.MI.SSXFF AM&lt;BR /&gt;nls_timestamp_format        DD-MON-RR HH.MI.SSXFF AM&lt;BR /&gt;nls_time_tz_format              HH.MI.SSXFF AM TZR&lt;BR /&gt;nls_timestamp_tz_format DD-MON-RR HH.MI.SSXFF AM TZR&lt;/P&gt;
&lt;P&gt;The segment boundaries set to:&lt;/P&gt;
&lt;P&gt;Segment Boundaries CREATED&lt;BR /&gt;1 "CREATED &amp;gt;=to_date('01.01.2003 00:00:00','dd.mm.yyyy hh24:mi:ss') and CREATED &amp;lt; to_date('01.01.2008 00:00:00','dd.mm.yyyy hh24:mi:ss')"&lt;BR /&gt;2 "CREATED &amp;gt;=to_date('01.01.2008 00:00:00','dd.mm.yyyy hh24:mi:ss') and CREATED &amp;lt; to_date('01.01.2013 00:00:00','dd.mm.yyyy hh24:mi:ss')"&lt;BR /&gt;3 "CREATED &amp;gt;=to_date('01.01.2013 00:00:00','dd.mm.yyyy hh24:mi:ss') and CREATED &amp;lt; to_date('01.01.2018 00:00:00','dd.mm.yyyy hh24:mi:ss')"&lt;BR /&gt;4 "CREATED &amp;gt;=to_date('01.01.2018 00:00:00','dd.mm.yyyy hh24:mi:ss')"&lt;/P&gt;
&lt;P&gt;The replication immediately breaks with the error:&lt;/P&gt;
&lt;P&gt;Failed to init unloading table 'SYXXX'.'BIGTABLE'&lt;BR /&gt;ORA-01841: (full) year must be between -4713 and +9999, and not be 0&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Is the formatting of the TIMESTAMP wrong? If yes, how is it correct? &lt;/P&gt;
&lt;P&gt;Please hlp!&lt;/P&gt;
&lt;P&gt;Many thanks in advance and&lt;/P&gt;
&lt;P&gt;Beste Regards,&lt;/P&gt;
&lt;P&gt;Helene&lt;/P&gt;</description>
    <pubDate>Mon, 05 Dec 2022 12:53:05 GMT</pubDate>
    <dc:creator>HeleneExner</dc:creator>
    <dc:date>2022-12-05T12:53:05Z</dc:date>
    <item>
      <title>Qlik Replicate: Segment boundary at parallel load</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2012687#M4412</link>
      <description>&lt;P&gt;Dear Community,&lt;/P&gt;
&lt;P&gt;I am trying to load a very large table in parallel using segmentation on the attribute with the data type TIMESTAMP.&lt;BR /&gt;The table contains 20 years of data.&lt;BR /&gt;These DB settings for time look like this:&lt;/P&gt;
&lt;P&gt;nls_time_format                     HH.MI.SSXFF AM&lt;BR /&gt;nls_timestamp_format        DD-MON-RR HH.MI.SSXFF AM&lt;BR /&gt;nls_time_tz_format              HH.MI.SSXFF AM TZR&lt;BR /&gt;nls_timestamp_tz_format DD-MON-RR HH.MI.SSXFF AM TZR&lt;/P&gt;
&lt;P&gt;The segment boundaries set to:&lt;/P&gt;
&lt;P&gt;Segment Boundaries CREATED&lt;BR /&gt;1 "CREATED &amp;gt;=to_date('01.01.2003 00:00:00','dd.mm.yyyy hh24:mi:ss') and CREATED &amp;lt; to_date('01.01.2008 00:00:00','dd.mm.yyyy hh24:mi:ss')"&lt;BR /&gt;2 "CREATED &amp;gt;=to_date('01.01.2008 00:00:00','dd.mm.yyyy hh24:mi:ss') and CREATED &amp;lt; to_date('01.01.2013 00:00:00','dd.mm.yyyy hh24:mi:ss')"&lt;BR /&gt;3 "CREATED &amp;gt;=to_date('01.01.2013 00:00:00','dd.mm.yyyy hh24:mi:ss') and CREATED &amp;lt; to_date('01.01.2018 00:00:00','dd.mm.yyyy hh24:mi:ss')"&lt;BR /&gt;4 "CREATED &amp;gt;=to_date('01.01.2018 00:00:00','dd.mm.yyyy hh24:mi:ss')"&lt;/P&gt;
&lt;P&gt;The replication immediately breaks with the error:&lt;/P&gt;
&lt;P&gt;Failed to init unloading table 'SYXXX'.'BIGTABLE'&lt;BR /&gt;ORA-01841: (full) year must be between -4713 and +9999, and not be 0&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Is the formatting of the TIMESTAMP wrong? If yes, how is it correct? &lt;/P&gt;
&lt;P&gt;Please hlp!&lt;/P&gt;
&lt;P&gt;Many thanks in advance and&lt;/P&gt;
&lt;P&gt;Beste Regards,&lt;/P&gt;
&lt;P&gt;Helene&lt;/P&gt;</description>
      <pubDate>Mon, 05 Dec 2022 12:53:05 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2012687#M4412</guid>
      <dc:creator>HeleneExner</dc:creator>
      <dc:date>2022-12-05T12:53:05Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Replicate: Segment boundary at parallel load</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2012699#M4413</link>
      <description>&lt;P&gt;Hello &lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/173363"&gt;@HeleneExner&lt;/a&gt; ,&lt;/P&gt;
&lt;P&gt;I would recommend opening a case for this issue. &lt;SPAN&gt;Please Set SOURCE_UNLOAD and TARGET_LOAD to TRACE, run the task until failure, then upload the logs and diagnostic package to the case for investigation.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Thank you,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Dinesh&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Dec 2022 13:15:29 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2012699#M4413</guid>
      <dc:creator>Dineshan</dc:creator>
      <dc:date>2022-12-05T13:15:29Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Replicate: Segment boundary at parallel load</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2015370#M4466</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/173363"&gt;@HeleneExner&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The error is on the Oracle DB and not from Replicate. Please try to query the table from the DB using the same filter condition and it would fail with the same error.&lt;/P&gt;
&lt;P&gt;Please check the value for &lt;SPAN&gt;NLS_DATE_FORMAT in the Database and use the same format for conversion. Try the filter condition in the Database first and once it succeeds apply it through Replicate.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Thank you,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 12 Dec 2022 11:45:17 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2015370#M4466</guid>
      <dc:creator>shashi_holla</dc:creator>
      <dc:date>2022-12-12T11:45:17Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Replicate: Segment boundary at parallel load</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2015504#M4467</link>
      <description>&lt;P&gt;Well, the error comes from Oracle, so that's where the focus should be . When you ask for LOGGING VERBOSE (Edit: TRACE is eough to show Oracle SQL used) on SOURCE UNLOAD does it give you a full Oracle Statement to try in SQLplus or&amp;nbsp; SQldelveopper?&lt;/P&gt;
&lt;P&gt;Testing the to_date as provided in SQLplus and/or SQLdeveloper works, but shows UPPERCASE format string.&lt;/P&gt;
&lt;P&gt;Best I know the format string is mostly case-insensitive, but the Oracle Documentation shows UPPERCASE, so why not use that? Admittedly in many places there is an automatic conversion to uppercase but why not follow the suggested syntax. Try again with uppercase date format string and let us know if it happens to make a difference? But mostly try to capture the full query going to Oracle.&lt;/P&gt;
&lt;P&gt;Hein.&lt;/P&gt;</description>
      <pubDate>Tue, 13 Dec 2022 20:12:24 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2015504#M4467</guid>
      <dc:creator>Heinvandenheuvel</dc:creator>
      <dc:date>2022-12-13T20:12:24Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Replicate: Segment boundary at parallel load</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2016157#M4480</link>
      <description>&lt;P&gt;Helene, can you provide some more details? Specifically a JSON&amp;nbsp; snippet, and more complete LOG output, and the 'CREATED' datatype on the source?&lt;/P&gt;
&lt;P&gt;I just did a very coarse test with ranges on a Timestamp column TS. The most simple form appears to work just fine.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Heinvandenheuvel_0-1670960758083.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/96117i4D0669D1EF538341/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Heinvandenheuvel_0-1670960758083.png" alt="Heinvandenheuvel_0-1670960758083.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;This result in a JSON looking like:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;"source_table_settings":	{
	"unload_segments":	{
		"segments_type":	"RANGES",
		"ranges":	{
			"column_names":	["TS"],
			"split_points":	[{
					"values":	["2020-01-01"]
				}, {
					"values":	["2021-01-01"]
				}, {
					"values":	["2022-01-01"]
				}]
		},
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using LOGGING set to TRACE for SOURCE_UNLOAD we can see the 4 streams.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;They all 4 start with: 

 Select statement for UNLOAD is 'SELECT "ID","TS",&amp;lt;columnlist&amp;gt;  FROM "ATT_USER"."TEST" 

The 4 WHERE CLAUSEs predicatably looks like:

 WHERE  ( ("TS" &amp;lt;= '2020-01-01') )
 WHERE  (NOT (("TS" &amp;lt;= '2020-01-01') ))  AND  ( ("TS" &amp;lt;= '2021-01-01') )
 WHERE  (NOT (("TS" &amp;lt;= '2021-01-01') ))  AND  ( ("TS" &amp;lt;= '2022-01-01') )
 WHERE  (NOT (("TS" &amp;lt;= '2022-01-01') ))&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Those all return the appropriate row counts to be loaded. No errors.&lt;/P&gt;
&lt;P&gt;Now I used a TIMESTAMP for which the defaults work:&amp;nbsp;NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH:MI:SS.FF'&lt;/P&gt;
&lt;DIV&gt;So what does your column look like?&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;How did you provide the boundaries?&lt;/DIV&gt;
&lt;DIV&gt;Why would you provide it in a National format (DD.MM.YYYY) and not just use 'computer language' - National language is often a requirement for end users, but you as a Replicate 'programmer' can surely just use what the systems likes best can you not?&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;BTW with SOURCE_UNLOAD LOGGING set to VERBOSE one sees a lot of silliness imho.&amp;nbsp; Every unload thread&amp;nbsp; repeats the same non-variant variant initial queries like supplemental_log_data_min and whether access to dba_objects is granted. Bah. Each load stream for a segment for a table will ask how many partitions there are on the source for that table and so on. That all finishes in a second or a few seconds, but it still bothers me.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;hth,&lt;/DIV&gt;
&lt;DIV&gt;Hein.&lt;/DIV&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Dec 2022 20:21:35 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2016157#M4480</guid>
      <dc:creator>Heinvandenheuvel</dc:creator>
      <dc:date>2022-12-13T20:21:35Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Replicate: Segment boundary at parallel load</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2016472#M4485</link>
      <description>&lt;P&gt;From my experience, one thing to watch out for that has caught me previously:&lt;/P&gt;
&lt;P&gt;If the data is static or only being added to, you should be fine, but if the records are updatable, and the timestamp is reset during that update, it is possible for your parallel 'full copy' to pick up the same record twice (or possibly missed entirely).&lt;/P&gt;
&lt;P&gt;I had 8 parallel segments, but they did not begin simultaneously. During the period between the first segment starting and the last segment starting, a record was updated and it appeared in both segments (causing an index failure at the destination luckily).&lt;/P&gt;
&lt;P&gt;In your scenario it would be the equivalent of the timestamp updating from 2020 to 2022 in the period you started the copy.&lt;/P&gt;
&lt;P&gt;It makes sense to quiesce the database if at all possible.&lt;/P&gt;</description>
      <pubDate>Wed, 14 Dec 2022 11:58:09 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Qlik-Replicate-Segment-boundary-at-parallel-load/m-p/2016472#M4485</guid>
      <dc:creator>IanM</dc:creator>
      <dc:date>2022-12-14T11:58:09Z</dc:date>
    </item>
  </channel>
</rss>

