Neoview Database Administrator's Guide (R2.2)

query can be parallelized and return the correct results. If you are not sure, run the query
in serial mode.
A common scenario in which you cannot use parallel mode is a query with an ORDER BY.
It cannot be parallelized because the data will only be ordered for each partition and not at
the table level. The order of the data will also be lost on the Linux system, which will be
receive and write data from multiple Extractor processes without regard to the order of the
data.
Serial mode
This mode is used when the query cannot be parallelized across multiple Extractors processes.
For example, you must use serial mode when you extract data from a single table where the
SELECT query includes an ORDER BY clause. You must also use serial mode if your SELECT
query includes JOINs where the results of the JOIN cannot be guaranteed to be correct if
the query were to be spread across multiple Extractors. In serial mode a single Neoview
Extractor process executes the extract query and returns the data to a single thread on the
Linux system.
The Extractor process is started on a segment chosen at random from one of the available
segments, and on a randomly chosen CPU within that segment. It is possible to restrict the
segments that are used by modifying the Neoview environment settings for the Extractor.
Contact HP Support for this.
On the Linux platform, a single multi-threaded Extractor is responsible for receiving the
data from the Neoview platform and writing to the specified output files or pipes. In serial
mode there will be one Reader thread allocated to the Extractor process running on the
Neoview platform, and one Writer thread allocated to each output file or pipe.
You specify whether the extract is to run in parallel or serial mode by using the partitioningTable
(-pt) argument in the task configuration request.
partitioningTable specifies the table used to determine the allocation of partitions to the
Extractor processes running on the Neoview system. When you specify a partitioning table, one
Extractor process is started for each partition of the partitioning table. The partition name is used
to restrict the extract query that you provide by using the partition name in a PARTITION clause
that will be used to modify the extract query.
For example, suppose that TABLE_1 consists of 64 partitions across four Neoview segments and
the extract query is:
SELECT * FROM TABLE_1;,
In parallel mode, 64 Extractor processes will be started, one in each CPU of each segment.
Partitioning Table Restrictions
If you specify the partitioningTable (-pt) argument for an extract task, these restrictions
apply:
If the SELECT query does not include any views, the partitioning table must be one of the
tables referenced in the SELECT query.
If the SELECT query does include a view:
If the SELECT does not include a join to another table, the partitioning table must be
one of the tables referenced in the view definition.
If the SELECT includes a join to another table, the partitioning table must be one of the
join tables.
124 Using the Neoview Loader