Question on HPL
Posted in 2012
The poster wanted HPL to unload only selected rows (e.g. customer_id < 2000000) rather than the whole table, partly because the target filesystem might be too small. Jack Parker said the HPL query can be edited (via the upload interface or directly in the onpload database's query table), and suggested piping output through compression and spreading output across multiple files/devices. Art Kagel and John Miller recommended external tables instead (11.50+): create an external table LIKE/SAMEAS the source with multiple DATAFILES, then INSERT a filtered SELECT into it — as fast as HPL, supports EXPRESS mode loads, pipes/compression and format options. The poster planned to try it; no result reported.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Migration, Import/Export & Data Conversion
Dear HPL experts, I create a simple HPL unload, it works fast, and it basically dumps the entire table. Is there way I can customize HPL unload for selected data, for example, "customer_id < 2000000" ? Thanks in advance. Kern --
You can edit the query to include filter conditions. If you aren't =
doing it through the upload interface, you can go directly to the table =
in the onpload database.
j.
On Oct 17, 2012, at 1:32 PM, Kern Doe wrote:
> Dear HPL experts,=20
> I create a simple HPL unload, it works fast, and it basically dumps =
the entire=20
> table. Is there way I can customize HPL unload for selected data, for =
example,=20
> "customer_id < 2000000" ?=20
> Thanks in advance.=20
> Kern --=20
>=20
>=20
> =
**************************************************************************=
*****=20
> Forum Note: Use "Reply" to post a response in the discussion forum.=20=
>=20
Thank you Jack for your prompt response.
So I guess I will try to update the "query" table in "onpload" database with
my filter conditions.
The reason I try to do this is because the directory to dump data may not be
big enough -- unless there are other suggestions.
________________________________
From: Jack Parker <jack.parker4@verizon.net>
To: ids@iiug.org
Sent: Wednesday, October 17, 2012 12:36 PM
Subject: Re: Question on HPL [28542]
You can edit the query to include filter conditions. If you aren't =
doing it through the upload interface, you can go directly to the table =
in the onpload database.
j.
On Oct 17, 2012, at 1:32 PM, Kern Doe wrote:
> Dear HPL experts,=20
> I create a simple HPL unload, it works fast, and it basically dumps =
the entire=20
> table. Is there way I can customize HPL unload for selected data, for =
example,=20
> "customer_id < 2000000" ?=20
> Thanks in advance.=20
> Kern --=20
>=20
>=20
> =
**************************************************************************=
*****=20
> Forum Note: Use "Reply" to post a response in the discussion forum.=20=
>=20
*******************************************************************************
Forum Note: Use "Reply" to post a response in the discussion forum.
Kern,
You can pipe the output through a compression utility to shrink the =
output (and make it run faster). You can also set up a "device" which =
consists of multiple files in different locations - those can also be =
compression utilities. I did a press on this once, where did I put =
it...
http://www.waiug.org/present/Forum2002/forum2002speakers.html
The notes page has the text of what I was supposed to be saying.
In that press I did not get into onpladm or updating the onpload tables =
directly (which is always risky), but you can feel your way through that =
fairly simply.
Regards,
jack Parker
On Oct 17, 2012, at 1:58 PM, Kern Doe wrote:
> Thank you Jack for your prompt response.=20
> So I guess I will try to update the "query" table in "onpload" =
database with=20
> my filter conditions.=20
> The reason I try to do this is because the directory to dump data may =
not be=20
> big enough -- unless there are other suggestions.=20
>=20
> ________________________________=20
> From: Jack Parker <jack.parker4@verizon.net>=20
> To: ids@iiug.org=20
> Sent: Wednesday, October 17, 2012 12:36 PM=20
> Subject: Re: Question on HPL [28542]=20
>=20
> You can edit the query to include filter conditions. If you aren't =3D=20=
> doing it through the upload interface, you can go directly to the =
table =3D=20
> in the onpload database.=20
>=20
> j.=20
>=20
> On Oct 17, 2012, at 1:32 PM, Kern Doe wrote:=20
>=20
>> Dear HPL experts,=3D20=20
>> I create a simple HPL unload, it works fast, and it basically dumps =3D=
=20
> the entire=3D20=20
>> table. Is there way I can customize HPL unload for selected data, for =
=3D=20
> example,=3D20=20
>> "customer_id < 2000000" ?=3D20=20
>> Thanks in advance.=3D20=20
>> Kern --=3D20=20
>> =3D20=20
>> =3D20=20
>> =3D=20
> =
**************************************************************************=
=3D=20
> *****=3D20=20
>> Forum Note: Use "Reply" to post a response in the discussion =
forum.=3D20=3D=20
>=20
>> =3D20=20
>=20
>=20
> =
**************************************************************************=
*****=20
> Forum Note: Use "Reply" to post a response in the discussion forum.=20
>=20
>=20
> =
**************************************************************************=
*****=20
> Forum Note: Use "Reply" to post a response in the discussion forum.=20=
>=20
FYI, if you have 11.50 or later, you can use external tables for the unload and it is at least as fast as HPL. Then the select to filter the data being written into the external table would be trivial. Art Art S. Kagel Advanced DataTools (www.advancedatatools.com) Blog: http://informix-myview.blogspot.com/ Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on my employer, Advanced DataTools, the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com> wrote: > Dear HPL experts, > I create a simple HPL unload, it works fast, and it basically dumps the > entire > table. Is there way I can customize HPL unload for selected data, for > example, > "customer_id < 2000000" ? > Thanks in advance. > Kern -- > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --e89a8f923ba0ddf2be04cc454df1
If you use an external it can include multiple flat files in different
filesystems and the data will be written to then round robin.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/
Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.
On Wed, Oct 17, 2012 at 1:58 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> Thank you Jack for your prompt response.
> So I guess I will try to update the "query" table in "onpload" database
> with
> my filter conditions.
> The reason I try to do this is because the directory to dump data may not
> be
> big enough -- unless there are other suggestions.
>
> ________________________________
> From: Jack Parker <jack.parker4@verizon.net>
> To: ids@iiug.org
> Sent: Wednesday, October 17, 2012 12:36 PM
> Subject: Re: Question on HPL [28542]
>
> You can edit the query to include filter conditions. If you aren't =
> doing it through the upload interface, you can go directly to the table =
> in the onpload database.
>
> j.
>
> On Oct 17, 2012, at 1:32 PM, Kern Doe wrote:
>
> > Dear HPL experts,=20
> > I create a simple HPL unload, it works fast, and it basically dumps =
> the entire=20
> > table. Is there way I can customize HPL unload for selected data, for =
> example,=20
> > "customer_id < 2000000" ?=20
> > Thanks in advance.=20
> > Kern --=20
> >=20
> >=20
> > =
> **************************************************************************=
> *****=20
> > Forum Note: Use "Reply" to post a response in the discussion forum.=20=
>
> >=20
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--e89a8f23548306ea0704cc4554a6
This is getting more interesting. Do you have a simple sample codes involved unload/load with external tables? I tried HPL unload yesterday on 63 mil rows tables, it took 1hr15min and already happy about it, anything else I can do to improve further the speed and the flexibility, I'm all for it. Thanks Art. ________________________________ From: Art Kagel <art.kagel@gmail.com> To: ids@iiug.org Sent: Wednesday, October 17, 2012 1:19 PM Subject: Re: Question on HPL [28546] FYI, if you have 11.50 or later, you can use external tables for the unload and it is at least as fast as HPL. Then the select to filter the data being written into the external table would be trivial. Art Art S. Kagel Advanced DataTools (http://www.advancedatatools.com/) Blog: http://informix-myview.blogspot.com/ Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on my employer, Advanced DataTools, the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com> wrote: > Dear HPL experts, > I create a simple HPL unload, it works fast, and it basically dumps the > entire > table. Is there way I can customize HPL unload for selected data, for > example, > "customer_id < 2000000" ? > Thanks in advance. > Kern -- > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --e89a8f923ba0ddf2be04cc454df1 ******************************************************************************* Forum Note: Use "Reply" to post a response in the discussion forum.
If you compress it on the way out, that generally triples performance = with HPL or external tables. j. On Oct 17, 2012, at 2:44 PM, Kern Doe wrote: > This is getting more interesting. Do you have a simple sample codes = involved=20 > unload/load with external tables? I tried HPL unload yesterday on 63 = mil rows=20 > tables, it took 1hr15min and already happy about it, anything else I = can do to=20 > improve further the speed and the flexibility, I'm all for it.=20 > Thanks Art.=20 >=20 > ________________________________=20 > From: Art Kagel <art.kagel@gmail.com>=20 > To: ids@iiug.org=20 > Sent: Wednesday, October 17, 2012 1:19 PM=20 > Subject: Re: Question on HPL [28546]=20 >=20 > FYI, if you have 11.50 or later, you can use external tables for the = unload=20 > and it is at least as fast as HPL. Then the select to filter the data=20= > being written into the external table would be trivial.=20 >=20 > Art=20 >=20 > Art S. Kagel=20 > Advanced DataTools (http://www.advancedatatools.com/)=20 > Blog: http://informix-myview.blogspot.com/=20 >=20 > Disclaimer: Please keep in mind that my own opinions are my own = opinions=20 > and do not reflect on my employer, Advanced DataTools, the IIUG, nor = any=20 > other organization with which I am associated either explicitly,=20 > implicitly, or by inference. Neither do those opinions reflect those = of=20 > other individuals affiliated with any entity with which I am = affiliated nor=20 > those of the entities themselves.=20 >=20 > On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com> wrote:=20= >=20 >> Dear HPL experts,=20 >> I create a simple HPL unload, it works fast, and it basically dumps = the=20 >> entire=20 >> table. Is there way I can customize HPL unload for selected data, for=20= >> example,=20 >> "customer_id < 2000000" ?=20 >> Thanks in advance.=20 >> Kern --=20 >>=20 >>=20 >>=20 >>=20 >=20 > = **************************************************************************= *****=20 >> Forum Note: Use "Reply" to post a response in the discussion forum.=20= >>=20 >>=20 >=20 > --e89a8f923ba0ddf2be04cc454df1=20 >=20 >=20 > = **************************************************************************= *****=20 > Forum Note: Use "Reply" to post a response in the discussion forum.=20 >=20 >=20 > = **************************************************************************= *****=20 > Forum Note: Use "Reply" to post a response in the discussion forum.=20= >=20
Note, this is typed off the cuff, so I may have missed a quote or comma
somewhere.
create external table sometable_ext like sometable using
(datafiles("disk:/some/path/file","disk:/other/path/file"));
select * from sometable insert into sometable_ext;
VOILA!
For import, when you create the external table you can add the EXPRESS mode
attribute and it will load the data the same way that HPL in express mode
does. You can change the data format from DELIMITED, to INFORMIX, or
FIXED. You can change the delimiter for the default delimited format - no
you can't get rid of the trailing delimiter 8-( - etc. You can write to a
pipe so the data can be compressed. Check out the description of CREATE
EXTERNAL TABLE in the online or PDF manuals for full details.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/
Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.
On Wed, Oct 17, 2012 at 2:44 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> This is getting more interesting. Do you have a simple sample codes
> involved
> unload/load with external tables? I tried HPL unload yesterday on 63 mil
> rows
> tables, it took 1hr15min and already happy about it, anything else I can
> do to
> improve further the speed and the flexibility, I'm all for it.
> Thanks Art.
>
> ________________________________
> From: Art Kagel <art.kagel@gmail.com>
> To: ids@iiug.org
> Sent: Wednesday, October 17, 2012 1:19 PM
> Subject: Re: Question on HPL [28546]
>
> FYI, if you have 11.50 or later, you can use external tables for the unload
> and it is at least as fast as HPL. Then the select to filter the data
> being written into the external table would be trivial.
>
> Art
>
> Art S. Kagel
> Advanced DataTools (http://www.advancedatatools.com/)
> Blog: http://informix-myview.blogspot.com/
>
> Disclaimer: Please keep in mind that my own opinions are my own opinions
> and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
> other organization with which I am associated either explicitly,
> implicitly, or by inference. Neither do those opinions reflect those of
> other individuals affiliated with any entity with which I am affiliated nor
> those of the entities themselves.
>
> On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com> wrote:
>
> > Dear HPL experts,
> > I create a simple HPL unload, it works fast, and it basically dumps the
> > entire
> > table. Is there way I can customize HPL unload for selected data, for
> > example,
> > "customer_id < 2000000" ?
> > Thanks in advance.
> > Kern --
> >
> >
> >
> >
>
>
>
*******************************************************************************
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
> >
>
> --e89a8f923ba0ddf2be04cc454df1
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--14dae93404b93508a004cc45cbb6
Here is the syntax for unloading the customer table to 2 files.
CREATE EXTERNAL TABLE 'informix'.EXTcustomer
SAMEAS
'informix'.customer
USING
(
DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),
FORMAT 'DELIMITED',
DELIMITER '|',
RECORDEND '',
ESCAPE
);
INSERT INTO 'informix'.customer
SELECT * FROM 'informix'.EXTcustomer;
John F. Miller III
STSM, Embedability Architect
miller3@us.ibm.com
503-578-5645
IBM Informix Dynamic Server (IDS)
ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:
> From: "Art Kagel" <art.kagel@gmail.com>
> To: ids@iiug.org,
> Date: 10/17/2012 11:55 AM
> Subject: Re: Question on HPL [28551]
> Sent by: ids-bounces@iiug.org
>
> Note, this is typed off the cuff, so I may have missed a quote or comma
> somewhere.
>
> create external table sometable_ext like sometable using
> (datafiles("disk:/some/path/file","disk:/other/path/file"));
>
> select * from sometable insert into sometable_ext;>
> VOILA!
>
> For import, when you create the external table you can add the EXPRESS
mode
> attribute and it will load the data the same way that HPL in express mode
> does. You can change the data format from DELIMITED, to INFORMIX, or
> FIXED. You can change the delimiter for the default delimited format - no
> you can't get rid of the trailing delimiter 8-( - etc. You can write to a
> pipe so the data can be compressed. Check out the description of CREATE
> EXTERNAL TABLE in the online or PDF manuals for full details.
>
> Art
>
> Art S. Kagel
> Advanced DataTools (www.advancedatatools.com)
> Blog: http://informix-myview.blogspot.com/
>
> Disclaimer: Please keep in mind that my own opinions are my own opinions
> and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
> other organization with which I am associated either explicitly,
> implicitly, or by inference. Neither do those opinions reflect those of
> other individuals affiliated with any entity with which I am affiliated
nor
> those of the entities themselves.
>
> On Wed, Oct 17, 2012 at 2:44 PM, Kern Doe <kern_doe@yahoo.com> wrote:
>
> > This is getting more interesting. Do you have a simple sample codes
> > involved
> > unload/load with external tables? I tried HPL unload yesterday on 63
mil
> > rows
> > tables, it took 1hr15min and already happy about it, anything else I
can
> > do to
> > improve further the speed and the flexibility, I'm all for it.
> > Thanks Art.
> >
> > ________________________________
> > From: Art Kagel <art.kagel@gmail.com>
> > To: ids@iiug.org
> > Sent: Wednesday, October 17, 2012 1:19 PM
> > Subject: Re: Question on HPL [28546]
> >
> > FYI, if you have 11.50 or later, you can use external tables for the
unload
> > and it is at least as fast as HPL. Then the select to filter the data
> > being written into the external table would be trivial.
> >
> > Art
> >
> > Art S. Kagel
> > Advanced DataTools (http://www.advancedatatools.com/)
> > Blog: http://informix-myview.blogspot.com/
> >
> > Disclaimer: Please keep in mind that my own opinions are my own
opinions
> > and do not reflect on my employer, Advanced DataTools, the IIUG, nor
any
> > other organization with which I am associated either explicitly,
> > implicitly, or by inference. Neither do those opinions reflect those of
> > other individuals affiliated with any entity with which I am affiliated
nor
> > those of the entities themselves.
> >
> > On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> >
> > > Dear HPL experts,
> > > I create a simple HPL unload, it works fast, and it basically dumps
the
> > > entire
> > > table. Is there way I can customize HPL unload for selected data, for
> > > example,
> > > "customer_id < 2000000" ?
> > > Thanks in advance.
> > > Kern --
> > >
> > >
> > >
> > >
> >
> >
> >
>
*******************************************************************************
> > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > >
> > >
> >
> > --e89a8f923ba0ddf2be04cc454df1
> >
> >
> >
> >
>
*******************************************************************************
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
> >
> >
> >
>
*******************************************************************************
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
> >
>
> --14dae93404b93508a004cc45cbb6
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
Thanks John.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/
Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.
On Wed, Oct 17, 2012 at 6:09 PM, John Miller iii <miller3@us.ibm.com> wrote:
> Here is the syntax for unloading the customer table to 2 files.
>
> CREATE EXTERNAL TABLE 'informix'.EXTcustomer
> SAMEAS
> 'informix'.customer
> USING
> (
> DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),
> FORMAT 'DELIMITED',
> DELIMITER '|',
> RECORDEND '',
> ESCAPE
> );
>
> INSERT INTO 'informix'.customer
> SELECT * FROM 'informix'.EXTcustomer;>
> John F. Miller III
> STSM, Embedability Architect
> miller3@us.ibm.com
> 503-578-5645
> IBM Informix Dynamic Server (IDS)
>
> ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:
>
> > From: "Art Kagel" <art.kagel@gmail.com>
> > To: ids@iiug.org,
> > Date: 10/17/2012 11:55 AM
> > Subject: Re: Question on HPL [28551]
> > Sent by: ids-bounces@iiug.org
> >
> > Note, this is typed off the cuff, so I may have missed a quote or comma
> > somewhere.
> >
> > create external table sometable_ext like sometable using
> > (datafiles("disk:/some/path/file","disk:/other/path/file"));
> >
> > select * from sometable insert into sometable_ext;> >
> > VOILA!
> >
> > For import, when you create the external table you can add the EXPRESS
> mode
> > attribute and it will load the data the same way that HPL in express mode
>
> > does. You can change the data format from DELIMITED, to INFORMIX, or
> > FIXED. You can change the delimiter for the default delimited format - no
>
> > you can't get rid of the trailing delimiter 8-( - etc. You can write to a
>
> > pipe so the data can be compressed. Check out the description of CREATE
> > EXTERNAL TABLE in the online or PDF manuals for full details.
> >
> > Art
> >
> > Art S. Kagel
> > Advanced DataTools (www.advancedatatools.com)
> > Blog: http://informix-myview.blogspot.com/
> >
> > Disclaimer: Please keep in mind that my own opinions are my own opinions
> > and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
> > other organization with which I am associated either explicitly,
> > implicitly, or by inference. Neither do those opinions reflect those of
> > other individuals affiliated with any entity with which I am affiliated
> nor
> > those of the entities themselves.
> >
> > On Wed, Oct 17, 2012 at 2:44 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> >
> > > This is getting more interesting. Do you have a simple sample codes
> > > involved
> > > unload/load with external tables? I tried HPL unload yesterday on 63
> mil
> > > rows
> > > tables, it took 1hr15min and already happy about it, anything else I
> can
> > > do to
> > > improve further the speed and the flexibility, I'm all for it.
> > > Thanks Art.
> > >
> > > ________________________________
> > > From: Art Kagel <art.kagel@gmail.com>
> > > To: ids@iiug.org
> > > Sent: Wednesday, October 17, 2012 1:19 PM
> > > Subject: Re: Question on HPL [28546]
> > >
> > > FYI, if you have 11.50 or later, you can use external tables for the
> unload
> > > and it is at least as fast as HPL. Then the select to filter the data
> > > being written into the external table would be trivial.
> > >
> > > Art
> > >
> > > Art S. Kagel
> > > Advanced DataTools (http://www.advancedatatools.com/)
> > > Blog: http://informix-myview.blogspot.com/
> > >
> > > Disclaimer: Please keep in mind that my own opinions are my own
> opinions
> > > and do not reflect on my employer, Advanced DataTools, the IIUG, nor
> any
> > > other organization with which I am associated either explicitly,
> > > implicitly, or by inference. Neither do those opinions reflect those of
>
> > > other individuals affiliated with any entity with which I am affiliated
> nor
> > > those of the entities themselves.
> > >
> > > On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> > >
> > > > Dear HPL experts,
> > > > I create a simple HPL unload, it works fast, and it basically dumps
> the
> > > > entire
> > > > table. Is there way I can customize HPL unload for selected data, for
>
> > > > example,
> > > > "customer_id < 2000000" ?
> > > > Thanks in advance.
> > > > Kern --
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
>
>
>
*******************************************************************************
>
> > > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > > >
> > > >
> > >
> > > --e89a8f923ba0ddf2be04cc454df1
> > >
> > >
> > >
> > >
> >
>
>
>
*******************************************************************************
>
> > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > >
> > >
> > >
> > >
> >
>
>
>
*******************************************************************************
>
> > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > >
> > >
> >
> > --14dae93404b93508a004cc45cbb6
> >
> >
> >
>
>
>
*******************************************************************************
>
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--14dae9340badac7a4f04cc48fb33
This is great! How would you guys load?
Would you use dbload or HPL, I know I don't want to use "load from".
Any way, thank you John/Art, we'll try this tomorrow.
Kern --
________________________________
From: John Miller iii <miller3@us.ibm.com>
To: ids@iiug.org
Sent: Wednesday, October 17, 2012 5:09 PM
Subject: Re: Question on HPL [28552]
Here is the syntax for unloading the customer table to 2 files.
CREATE EXTERNAL TABLE 'informix'.EXTcustomer
SAMEAS
'informix'.customer
USING
(
DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),
FORMAT 'DELIMITED',
DELIMITER '|',
RECORDEND '',
ESCAPE
);
INSERT INTO 'informix'.customer
SELECT * FROM 'informix'.EXTcustomer;
John F. Miller III
STSM, Embedability Architect
miller3@us.ibm.com
503-578-5645
IBM Informix Dynamic Server (IDS)
ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:
> From: "Art Kagel" <art.kagel@gmail.com>
> To: ids@iiug.org,
> Date: 10/17/2012 11:55 AM
> Subject: Re: Question on HPL [28551]
> Sent by: ids-bounces@iiug.org
>
> Note, this is typed off the cuff, so I may have missed a quote or comma
> somewhere.
>
> create external table sometable_ext like sometable using
> (datafiles("disk:/some/path/file","disk:/other/path/file"));
>
> select * from sometable insert into sometable_ext;>
> VOILA!
>
> For import, when you create the external table you can add the EXPRESS
mode
> attribute and it will load the data the same way that HPL in express mode
> does. You can change the data format from DELIMITED, to INFORMIX, or
> FIXED. You can change the delimiter for the default delimited format - no
> you can't get rid of the trailing delimiter 8-( - etc. You can write to a
> pipe so the data can be compressed. Check out the description of CREATE
> EXTERNAL TABLE in the online or PDF manuals for full details.
>
> Art
>
> Art S. Kagel
> Advanced DataTools (http://www.advancedatatools.com/)
> Blog: http://informix-myview.blogspot.com/
>
> Disclaimer: Please keep in mind that my own opinions are my own opinions
> and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
> other organization with which I am associated either explicitly,
> implicitly, or by inference. Neither do those opinions reflect those of
> other individuals affiliated with any entity with which I am affiliated
nor
> those of the entities themselves.
>
> On Wed, Oct 17, 2012 at 2:44 PM, Kern Doe <kern_doe@yahoo.com> wrote:
>
> > This is getting more interesting. Do you have a simple sample codes
> > involved
> > unload/load with external tables? I tried HPL unload yesterday on 63
mil
> > rows
> > tables, it took 1hr15min and already happy about it, anything else I
can
> > do to
> > improve further the speed and the flexibility, I'm all for it.
> > Thanks Art.
> >
> > ________________________________
> > From: Art Kagel <art.kagel@gmail.com>
> > To: ids@iiug.org
> > Sent: Wednesday, October 17, 2012 1:19 PM
> > Subject: Re: Question on HPL [28546]
> >
> > FYI, if you have 11.50 or later, you can use external tables for the
unload
> > and it is at least as fast as HPL. Then the select to filter the data
> > being written into the external table would be trivial.
> >
> > Art
> >
> > Art S. Kagel
> > Advanced DataTools (http://www.advancedatatools.com/)
> > Blog: http://informix-myview.blogspot.com/
> >
> > Disclaimer: Please keep in mind that my own opinions are my own
opinions
> > and do not reflect on my employer, Advanced DataTools, the IIUG, nor
any
> > other organization with which I am associated either explicitly,
> > implicitly, or by inference. Neither do those opinions reflect those of
> > other individuals affiliated with any entity with which I am affiliated
nor
> > those of the entities themselves.
> >
> > On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> >
> > > Dear HPL experts,
> > > I create a simple HPL unload, it works fast, and it basically dumps
the
> > > entire
> > > table. Is there way I can customize HPL unload for selected data, for
> > > example,
> > > "customer_id < 2000000" ?
> > > Thanks in advance.
> > > Kern --
> > >
> > >
> > >
> > >
> >
> >
> >
>
*******************************************************************************
> > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > >
> > >
> >
> > --e89a8f923ba0ddf2be04cc454df1
> >
> >
> >
> >
>
*******************************************************************************
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
> >
> >
> >
>
*******************************************************************************
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
> >
>
> --14dae93404b93508a004cc45cbb6
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
*******************************************************************************
Forum Note: Use "Reply" to post a response in the discussion forum.
You can load using external tables also. Say you have a delimited file,
mydata.unl, that you want to load into a table named mydata. So you define
an external table defined over the file mydata.unl and insert into the
normal table select from the external table. So:
create external table mydata_unl sameas mydata using (datafiles(
"disk:/some/path/mydata.unl"), format "delimited", delimiter "|" );
insert into mydata
select * from mydata_unl;
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/
Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.
On Wed, Oct 17, 2012 at 6:51 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> This is great! How would you guys load?
> Would you use dbload or HPL, I know I don't want to use "load from".
>
> Any way, thank you John/Art, we'll try this tomorrow.
> Kern --
>
> ________________________________
> From: John Miller iii <miller3@us.ibm.com>
> To: ids@iiug.org
> Sent: Wednesday, October 17, 2012 5:09 PM
> Subject: Re: Question on HPL [28552]
>
> Here is the syntax for unloading the customer table to 2 files.
>
> CREATE EXTERNAL TABLE 'informix'.EXTcustomer
> SAMEAS
> 'informix'.customer
> USING
> (
> DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),
> FORMAT 'DELIMITED',
> DELIMITER '|',
> RECORDEND '',
> ESCAPE
> );
>
> INSERT INTO 'informix'.customer
> SELECT * FROM 'informix'.EXTcustomer;>
> John F. Miller III
> STSM, Embedability Architect
> miller3@us.ibm.com
> 503-578-5645
> IBM Informix Dynamic Server (IDS)
>
> ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:
>
> > From: "Art Kagel" <art.kagel@gmail.com>
> > To: ids@iiug.org,
> > Date: 10/17/2012 11:55 AM
> > Subject: Re: Question on HPL [28551]
> > Sent by: ids-bounces@iiug.org
> >
> > Note, this is typed off the cuff, so I may have missed a quote or comma
> > somewhere.
> >
> > create external table sometable_ext like sometable using
> > (datafiles("disk:/some/path/file","disk:/other/path/file"));
> >
> > select * from sometable insert into sometable_ext;> >
> > VOILA!
> >
> > For import, when you create the external table you can add the EXPRESS
> mode
> > attribute and it will load the data the same way that HPL in express mode
>
> > does. You can change the data format from DELIMITED, to INFORMIX, or
> > FIXED. You can change the delimiter for the default delimited format - no
>
> > you can't get rid of the trailing delimiter 8-( - etc. You can write to a
>
> > pipe so the data can be compressed. Check out the description of CREATE
> > EXTERNAL TABLE in the online or PDF manuals for full details.
> >
> > Art
> >
> > Art S. Kagel
> > Advanced DataTools (http://www.advancedatatools.com/)
> > Blog: http://informix-myview.blogspot.com/
> >
> > Disclaimer: Please keep in mind that my own opinions are my own opinions
> > and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
> > other organization with which I am associated either explicitly,
> > implicitly, or by inference. Neither do those opinions reflect those of
> > other individuals affiliated with any entity with which I am affiliated
> nor
> > those of the entities themselves.
> >
> > On Wed, Oct 17, 2012 at 2:44 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> >
> > > This is getting more interesting. Do you have a simple sample codes
> > > involved
> > > unload/load with external tables? I tried HPL unload yesterday on 63
> mil
> > > rows
> > > tables, it took 1hr15min and already happy about it, anything else I
> can
> > > do to
> > > improve further the speed and the flexibility, I'm all for it.
> > > Thanks Art.
> > >
> > > ________________________________
> > > From: Art Kagel <art.kagel@gmail.com>
> > > To: ids@iiug.org
> > > Sent: Wednesday, October 17, 2012 1:19 PM
> > > Subject: Re: Question on HPL [28546]
> > >
> > > FYI, if you have 11.50 or later, you can use external tables for the
> unload
> > > and it is at least as fast as HPL. Then the select to filter the data
> > > being written into the external table would be trivial.
> > >
> > > Art
> > >
> > > Art S. Kagel
> > > Advanced DataTools (http://www.advancedatatools.com/)
> > > Blog: http://informix-myview.blogspot.com/
> > >
> > > Disclaimer: Please keep in mind that my own opinions are my own
> opinions
> > > and do not reflect on my employer, Advanced DataTools, the IIUG, nor
> any
> > > other organization with which I am associated either explicitly,
> > > implicitly, or by inference. Neither do those opinions reflect those of
>
> > > other individuals affiliated with any entity with which I am affiliated
> nor
> > > those of the entities themselves.
> > >
> > > On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> > >
> > > > Dear HPL experts,
> > > > I create a simple HPL unload, it works fast, and it basically dumps
> the
> > > > entire
> > > > table. Is there way I can customize HPL unload for selected data, for
>
> > > > example,
> > > > "customer_id < 2000000" ?
> > > > Thanks in advance.
> > > > Kern --
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
>
>
>
>
*******************************************************************************
>
> > > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > > >
> > > >
> > >
> > > --e89a8f923ba0ddf2be04cc454df1
> > >
> > >
> > >
> > >
> >
>
>
>
>
*******************************************************************************
>
> > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > >
> > >
> > >
> > >
> >
>
>
>
>
*******************************************************************************
>
> > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > >
> > >
> >
> > --14dae93404b93508a004cc45cbb6
> >
> >
> >
>
>
>
>
*******************************************************************************
>
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--90e6ba614c8042c2e504c
If you have multiple CPUs and multiple disks underneath, then HPL will =
blow dbload away in terms of performance. If you have external tables, =
then that has the same (if not better) performance as HPL and is a h*ll =
of a lot simpler. Even if you only have one cpu and one disk, these two =
should be twice as fast as dbload. You should consider dbload only as a =
last resort.
j.
On Oct 17, 2012, at 6:51 PM, Kern Doe wrote:
> This is great! How would you guys load?=20
> Would you use dbload or HPL, I know I don't want to use "load from".=20=
>=20
> Any way, thank you John/Art, we'll try this tomorrow.=20
> Kern --=20
>=20
> ________________________________=20
> From: John Miller iii <miller3@us.ibm.com>=20
> To: ids@iiug.org=20
> Sent: Wednesday, October 17, 2012 5:09 PM=20
> Subject: Re: Question on HPL [28552]=20
>=20
> Here is the syntax for unloading the customer table to 2 files.=20
>=20
> CREATE EXTERNAL TABLE 'informix'.EXTcustomer=20
> SAMEAS=20
> 'informix'.customer=20
> USING=20
> (=20
> DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),=20
> FORMAT 'DELIMITED',=20
> DELIMITER '|',=20
> RECORDEND '',=20
> ESCAPE=20
> );=20
>=20
> INSERT INTO 'informix'.customer=20
> SELECT * FROM 'informix'.EXTcustomer;=20>=20
> John F. Miller III=20
> STSM, Embedability Architect=20
> miller3@us.ibm.com=20
> 503-578-5645=20
> IBM Informix Dynamic Server (IDS)=20
>=20
> ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:=20
>=20
>> From: "Art Kagel" <art.kagel@gmail.com>=20
>> To: ids@iiug.org,=20
>> Date: 10/17/2012 11:55 AM=20
>> Subject: Re: Question on HPL [28551]=20
>> Sent by: ids-bounces@iiug.org=20
>>=20
>> Note, this is typed off the cuff, so I may have missed a quote or =
comma=20
>> somewhere.=20
>>=20
>> create external table sometable_ext like sometable using=20
>> (datafiles("disk:/some/path/file","disk:/other/path/file"));=20
>>=20
>> select * from sometable insert into sometable_ext;=20>>=20
>> VOILA!=20
>>=20
>> For import, when you create the external table you can add the =
EXPRESS=20
> mode=20
>> attribute and it will load the data the same way that HPL in express =
mode=20
>=20
>> does. You can change the data format from DELIMITED, to INFORMIX, or=20=
>> FIXED. You can change the delimiter for the default delimited format =
- no=20
>=20
>> you can't get rid of the trailing delimiter 8-( - etc. You can write =
to a=20
>=20
>> pipe so the data can be compressed. Check out the description of =
CREATE=20
>> EXTERNAL TABLE in the online or PDF manuals for full details.=20
>>=20
>> Art=20
>>=20
>> Art S. Kagel=20
>> Advanced DataTools (http://www.advancedatatools.com/)=20
>> Blog: http://informix-myview.blogspot.com/=20
>>=20
>> Disclaimer: Please keep in mind that my own opinions are my own =
opinions=20
>> and do not reflect on my employer, Advanced DataTools, the IIUG, nor =
any=20
>> other organization with which I am associated either explicitly,=20
>> implicitly, or by inference. Neither do those opinions reflect those =
of=20
>> other individuals affiliated with any entity with which I am =
affiliated=20
> nor=20
>> those of the entities themselves.=20
>>=20
>> On Wed, Oct 17, 2012 at 2:44 PM, Kern Doe <kern_doe@yahoo.com> wrote:=20=
>>=20
>>> This is getting more interesting. Do you have a simple sample codes=20=
>>> involved=20
>>> unload/load with external tables? I tried HPL unload yesterday on 63=20=
> mil=20
>>> rows=20
>>> tables, it took 1hr15min and already happy about it, anything else I=20=
> can=20
>>> do to=20
>>> improve further the speed and the flexibility, I'm all for it.=20
>>> Thanks Art.=20
>>>=20
>>> ________________________________=20
>>> From: Art Kagel <art.kagel@gmail.com>=20
>>> To: ids@iiug.org=20
>>> Sent: Wednesday, October 17, 2012 1:19 PM=20
>>> Subject: Re: Question on HPL [28546]=20
>>>=20
>>> FYI, if you have 11.50 or later, you can use external tables for the=20=
> unload=20
>>> and it is at least as fast as HPL. Then the select to filter the =
data=20
>>> being written into the external table would be trivial.=20
>>>=20
>>> Art=20
>>>=20
>>> Art S. Kagel=20
>>> Advanced DataTools (http://www.advancedatatools.com/)=20
>>> Blog: http://informix-myview.blogspot.com/=20
>>>=20
>>> Disclaimer: Please keep in mind that my own opinions are my own=20
> opinions=20
>>> and do not reflect on my employer, Advanced DataTools, the IIUG, nor=20=
> any=20
>>> other organization with which I am associated either explicitly,=20
>>> implicitly, or by inference. Neither do those opinions reflect those =
of=20
>=20
>>> other individuals affiliated with any entity with which I am =
affiliated=20
> nor=20
>>> those of the entities themselves.=20
>>>=20
>>> On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com> =
wrote:=20
>>>=20
>>>> Dear HPL experts,=20
>>>> I create a simple HPL unload, it works fast, and it basically dumps=20=
> the=20
>>>> entire=20
>>>> table. Is there way I can customize HPL unload for selected data, =
for=20
>=20
>>>> example,=20
>>>> "customer_id < 2000000" ?=20
>>>> Thanks in advance.=20
>>>> Kern --=20
>>>>=20
>>>>=20
>>>>=20
>>>>=20
>>>=20
>>>=20
>>>=20
>>=20
>=20
>=20
> =
**************************************************************************=
*****=20
>=20
>>>> Forum Note: Use "Reply" to post a response in the discussion forum.=20=
>>>>=20
>>>>=20
>>>=20
>>> --e89a8f923ba0ddf2be04cc454df1=20
>>>=20
>>>=20
>>>=20
>>>=20
>>=20
>=20
>=20
> =
**************************************************************************=
*****=20
>=20
>>> Forum Note: Use "Reply" to post a response in the discussion forum.=20=
>>>=20
>>>=20
>>>=20
>>>=20
>>=20
>=20
>=20
> =
**************************************************************************=
*****=20
>=20
>>> Forum Note: Use "Reply" to post a response in the discussion forum.=20=
>>>=20
>>>=20
>>=20
>> --14dae93404b93508a004cc45cbb6=20
>>=20
>>=20
>>=20
>=20
>=20
> =
**************************************************************************=
*****=20
>=20
>> Forum Note: Use "Reply" to post a response in the discussion forum.=20=
>>=20
>=20
>=20
> =
**************************************************************************=
*****=20
> Forum Note: Use "Reply" to post a response in the discussion forum.=20
>=20
>=20
> =
**************************************************************************=
*****=20
> Forum Note: Use "Reply" to post a response in the discussion forum.=20=
>=20
Hmm, I definitely see a need for suppressing the trailing delimiter at the end of each line for importing/exporting Informix data. Believe it, or not, I've actually used ACE reports to create customized UNLOAD files. :) There's also a huge need for reviving compliance with the different import/export formats, so as to make electronic data interchange easier!
If the tables resp. the unload files will grow too big you may even
unload and load using external tables and pipes with no need of storage
space:
Solaris 10, Informix 11.70.FC5
Example shell script:
#!/usr/bin/bash
# Target table was created in target database and has same schema as
source table
# Two Informix Server: source_server and target_server, may also work if
source_server and target_server and source_database and target_database
are the same
# FORMAT 'informix' may not work for tables with byte or text columns
# Target table in target database set to type raw due to express mode:
dbaccess target_database@target_server - << EOF
alter table target_table type (raw);EOF
# Create pipe for loading:
mkfifo /tmp/target_table.lo
# Create pipe for unloading:
mkfifo /tmp/target_table.un
# Create external table in target database:
dbaccess target_database@target_server - << EOF
CREATE EXTERNAL TABLE ext_target_table sameas target_table
USING (DATAFILES ('PIPE:/tmp/target_table.lo'),
FORMAT 'informix',
REJECTFILE 'target_database_target_table.log',
EXPRESS);
EOF
# Create external table in source database:
dbaccess source_database@source_server - << EOF
CREATE EXTERNAL TABLE ext_source_table SAMEAS source_table
USING (DATAFILES ('PIPE:/tmp/source_table.un'),
FORMAT 'informix');
EOF
# Open pipe in background:
cat > /tmp/$tabelle.lo < /tmp/$tabelle.un &
# Insert Import Command in background:
dbaccess target_database@target_Server - <<EOF &
insert into target_table select * from ext_target_table;EOF
# Sleep 3 seconds
sleep 3
# Insert Export Command:
dbaccess source_database@source_server - <<EOF
insert into ext_source_table select * from source_table;EOF
echo EXPORT/IMPORT done!
# Sleep 5 seconds
sleep 5
# Clean up
dbaccess source_database@source_server - <<EOF
drop table ext_source_table;EOF
dbaccess target_database@target_Server - <<EOF
drop table ext_target_table;EOF
echo "drop PIPE:"
rm /tmp/ target_table.lo
rm /tmp/source_table.un
# Set Target Table to type standard
dbaccess target_database@target_Server - <<EOF
alter table $tabelle type (standard);
EOF
I scipped the error handling in due of clarity.
HTH
Reinhard
> -----Original Message-----
> From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
Art
> Kagel
> Sent: Thursday, October 18, 2012 2:25 AM
> To: ids@iiug.org
> Subject: Re: Question on HPL [28556]
>
> You can load using external tables also. Say you have a delimited
file, mydata.unl,
> that you want to load into a table named mydata. So you define an
external table
> defined over the file mydata.unl and insert into the normal table
select from the
> external table. So:
>
> create external table mydata_unl sameas mydata using (datafiles(
> "disk:/some/path/mydata.unl"), format "delimited", delimiter "|" );
>
> insert into mydata
> select * from mydata_unl;>
> Art
>
> Art S. Kagel
> Advanced DataTools (www.advancedatatools.com)
> Blog: http://informix-myview.blogspot.com/
>
> Disclaimer: Please keep in mind that my own opinions are my own
opinions and
> do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other
> organization with which I am associated either explicitly, implicitly,
or by
> inference. Neither do those opinions reflect those of other
individuals affiliated with
> any entity with which I am affiliated nor those of the entities
themselves.
>
> On Wed, Oct 17, 2012 at 6:51 PM, Kern Doe <kern_doe@yahoo.com> wrote:
>
> > This is great! How would you guys load?
> > Would you use dbload or HPL, I know I don't want to use "load from".
> >
> > Any way, thank you John/Art, we'll try this tomorrow.
> > Kern --
> >
> > ________________________________
> > From: John Miller iii <miller3@us.ibm.com>
> > To: ids@iiug.org
> > Sent: Wednesday, October 17, 2012 5:09 PM
> > Subject: Re: Question on HPL [28552]
> >
> > Here is the syntax for unloading the customer table to 2 files.
> >
> > CREATE EXTERNAL TABLE 'informix'.EXTcustomer SAMEAS
> > 'informix'.customer USING (
> > DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),
> > FORMAT 'DELIMITED',
> > DELIMITER '|',
> > RECORDEND '',
> > ESCAPE
> > );
> >
> > INSERT INTO 'informix'.customer
> > SELECT * FROM 'informix'.EXTcustomer;> >
> > John F. Miller III
> > STSM, Embedability Architect
> > miller3@us.ibm.com
> > 503-578-5645
> > IBM Informix Dynamic Server (IDS)
> >
> > ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:
> >
> > > From: "Art Kagel" <art.kagel@gmail.com>
> > > To: ids@iiug.org,
> > > Date: 10/17/2012 11:55 AM
> > > Subject: Re: Question on HPL [28551] Sent by: ids-bounces@iiug.org
> > >
> > > Note, this is typed off the cuff, so I may have missed a quote or
> > > comma somewhere.
> > >
> > > create external table sometable_ext like sometable using
> > > (datafiles("disk:/some/path/file","disk:/other/path/file"));
> > >
> > > select * from sometable insert into sometable_ext;> > >
> > > VOILA!
> > >
> > > For import, when you create the external table you can add the
> > > EXPRESS
> > mode
> > > attribute and it will load the data the same way that HPL in
express
> > > mode
> >
> > > does. You can change the data format from DELIMITED, to INFORMIX,
or
> > > FIXED. You can change the delimiter for the default delimited
format
> > > - no
> >
> > > you can't get rid of the trailing delimiter 8-( - etc. You can
write
> > > to a
> >
> > > pipe so the data can be compressed. Check out the description of
> > > CREATE EXTERNAL TABLE in the online or PDF manuals for full
details.
> > >
> > > Art
> > >
> > > Art S. Kagel
> > > Advanced DataTools (http://www.advancedatatools.com/)
> > > Blog: http://informix-myview.blogspot.com/
> > >
> > > Disclaimer: Please keep in mind that my own opinions are my own
> > > opinions and do not reflect on my employer, Advanced DataTools,
the
> > > IIUG, nor any other organization with which I am associated either
> > > explicitly, implicitly, or by inference. Neither do those opinions
> > > reflect those of other individuals affiliated with any entity with
> > > which I am affiliated
> > nor
> > > those of the entities themselves.
> > >
> > > On Wed, Oct 17, 2012 at 2:44 PM, Kern Doe <kern_doe@yahoo.com>
wrote:
> > >
> > > > This is getting more interesting. Do you have a simple sample
> > > > codes involved unload/load with external tables? I tried HPL
> > > > unload yesterday on 63
> > mil
> > > > rows
> > > > tables, it took 1hr15min and already happy about it, anything
else
> > > > I
> > can
> > > > do to
> > > > improve further the speed and the flexibility, I'm all for it.
> > > > Thanks Art.
> > > >
> > > > ________________________________
> > > > From: Art Kagel <art.kagel@gmail.com
Art:
One think I would point out is to add the "ESCAPE" keyword. I am requsting
a change to make this
the default and add something like NOESCAPE, but currently it assume the
data is clean does
not contain delimiters for performance reasons.
From your point of view, which would be your perference for the default
setting.
John F. Miller III
STSM, Embedability Architect
miller3@us.ibm.com
503-578-5645
IBM Informix Dynamic Server (IDS)
ids-bounces@iiug.org wrote on 10/17/2012 05:24:38 PM:
> From: "Art Kagel" <art.kagel@gmail.com>
> To: ids@iiug.org,
> Date: 10/17/2012 05:26 PM
> Subject: Re: Question on HPL [28556]
> Sent by: ids-bounces@iiug.org
>
> You can load using external tables also. Say you have a delimited file,
> mydata.unl, that you want to load into a table named mydata. So you
define
> an external table defined over the file mydata.unl and insert into the
> normal table select from the external table. So:
>
> create external table mydata_unl sameas mydata using (datafiles(
> "disk:/some/path/mydata.unl"), format "delimited", delimiter "|" );
>
> insert into mydata
> select * from mydata_unl;>
> Art
>
> Art S. Kagel
> Advanced DataTools (www.advancedatatools.com)
> Blog: http://informix-myview.blogspot.com/
>
> Disclaimer: Please keep in mind that my own opinions are my own opinions
> and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
> other organization with which I am associated either explicitly,
> implicitly, or by inference. Neither do those opinions reflect those of
> other individuals affiliated with any entity with which I am affiliated
nor
> those of the entities themselves.
>
> On Wed, Oct 17, 2012 at 6:51 PM, Kern Doe <kern_doe@yahoo.com> wrote:
>
> > This is great! How would you guys load?
> > Would you use dbload or HPL, I know I don't want to use "load from".
> >
> > Any way, thank you John/Art, we'll try this tomorrow.
> > Kern --
> >
> > ________________________________
> > From: John Miller iii <miller3@us.ibm.com>
> > To: ids@iiug.org
> > Sent: Wednesday, October 17, 2012 5:09 PM
> > Subject: Re: Question on HPL [28552]
> >
> > Here is the syntax for unloading the customer table to 2 files.
> >
> > CREATE EXTERNAL TABLE 'informix'.EXTcustomer
> > SAMEAS
> > 'informix'.customer
> > USING
> > (
> > DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),
> > FORMAT 'DELIMITED',
> > DELIMITER '|',
> > RECORDEND '',
> > ESCAPE
> > );
> >
> > INSERT INTO 'informix'.customer
> > SELECT * FROM 'informix'.EXTcustomer;> >
> > John F. Miller III
> > STSM, Embedability Architect
> > miller3@us.ibm.com
> > 503-578-5645
> > IBM Informix Dynamic Server (IDS)
> >
> > ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:
> >
> > > From: "Art Kagel" <art.kagel@gmail.com>
> > > To: ids@iiug.org,
> > > Date: 10/17/2012 11:55 AM
> > > Subject: Re: Question on HPL [28551]
> > > Sent by: ids-bounces@iiug.org
> > >
> > > Note, this is typed off the cuff, so I may have missed a quote or
comma
> > > somewhere.
> > >
> > > create external table sometable_ext like sometable using
> > > (datafiles("disk:/some/path/file","disk:/other/path/file"));
> > >
> > > select * from sometable insert into sometable_ext;> > >
> > > VOILA!
> > >
> > > For import, when you create the external table you can add the
EXPRESS
> > mode
> > > attribute and it will load the data the same way that HPL in express
mode
> >
> > > does. You can change the data format from DELIMITED, to INFORMIX, or
> > > FIXED. You can change the delimiter for the default delimited format
- no
> >
> > > you can't get rid of the trailing delimiter 8-( - etc. You can write
to a
> >
> > > pipe so the data can be compressed. Check out the description of
CREATE
> > > EXTERNAL TABLE in the online or PDF manuals for full details.
> > >
> > > Art
> > >
> > > Art S. Kagel
> > > Advanced DataTools (http://www.advancedatatools.com/)
> > > Blog: http://informix-myview.blogspot.com/
> > >
> > > Disclaimer: Please keep in mind that my own opinions are my own
opinions
> > > and do not reflect on my employer, Advanced DataTools, the IIUG, nor
any
> > > other organization with which I am associated either explicitly,
> > > implicitly, or by inference. Neither do those opinions reflect those
of
> > > other individuals affiliated with any entity with which I am
affiliated
> > nor
> > > those of the entities themselves.
> > >
> > > On Wed, Oct 17, 2012 at 2:44 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> > >
> > > > This is getting more interesting. Do you have a simple sample codes
> > > > involved
> > > > unload/load with external tables? I tried HPL unload yesterday on
63
> > mil
> > > > rows
> > > > tables, it took 1hr15min and already happy about it, anything else
I
> > can
> > > > do to
> > > > improve further the speed and the flexibility, I'm all for it.
> > > > Thanks Art.
> > > >
> > > > ________________________________
> > > > From: Art Kagel <art.kagel@gmail.com>
> > > > To: ids@iiug.org
> > > > Sent: Wednesday, October 17, 2012 1:19 PM
> > > > Subject: Re: Question on HPL [28546]
> > > >
> > > > FYI, if you have 11.50 or later, you can use external tables for
the
> > unload
> > > > and it is at least as fast as HPL. Then the select to filter the
data
> > > > being written into the external table would be trivial.
> > > >
> > > > Art
> > > >
> > > > Art S. Kagel
> > > > Advanced DataTools (http://www.advancedatatools.com/)
> > > > Blog: http://informix-myview.blogspot.com/
> > > >
> > > > Disclaimer: Please keep in mind that my own opinions are my own
> > opinions
> > > > and do not reflect on my employer, Advanced DataTools, the IIUG,
nor
> > any
> > > > other organization with which I am associated either explicitly,
> > > > implicitly, or by inference. Neither do those opinions reflectthose
of
> >
> > > > other individuals affiliated with any entity with which I am
affiliated
> > nor
> > > > those of the entities themselves.
> > > >
> > > > On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com>
wrote:
> > > >
> > > > > Dear HPL experts,
> > > > > I create a simple HPL unload, it works fast, and it basically
dumps
> > the
> > > > > entire
> > > > > table. Is there way I can customize HPL unload for selected data,
for
> >
> > > > > example,
> > > > > "customer_id < 2000000" ?
> > > > > Thanks in advance.
> > > > > Kern --
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > >
> >
> >
> >
> >
>
*******************************************************************************
> >
> > > > > Forum Note: Use "Reply" to post a response in the discussion
forum.
> > > > >
> > > > >
> > > >
> > > > --e89a8f923ba0ddf2be04cc4
The direction of the "INSERT/SELECT" controls if you run a load/unload.
If you INSERT into the external table SELECT from the real table it is an
unload
If you INSERT into the real table SELECT from the external table is a load
John F. Miller III
STSM, Embedability Architect
miller3@us.ibm.com
503-578-5645
IBM Informix Dynamic Server (IDS)
ids-bounces@iiug.org wrote on 10/17/2012 03:51:19 PM:
> From: "Kern Doe" <kern_doe@yahoo.com>
> To: ids@iiug.org,
> Date: 10/17/2012 03:52 PM
> Subject: Re: Question on HPL [28554]
> Sent by: ids-bounces@iiug.org
>
> This is great! How would you guys load?
> Would you use dbload or HPL, I know I don't want to use "load from".
>
> Any way, thank you John/Art, we'll try this tomorrow.
> Kern --
>
> ________________________________
> From: John Miller iii <miller3@us.ibm.com>
> To: ids@iiug.org
> Sent: Wednesday, October 17, 2012 5:09 PM
> Subject: Re: Question on HPL [28552]
>
> Here is the syntax for unloading the customer table to 2 files.
>
> CREATE EXTERNAL TABLE 'informix'.EXTcustomer
> SAMEAS
> 'informix'.customer
> USING
> (
> DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),
> FORMAT 'DELIMITED',
> DELIMITER '|',
> RECORDEND '',
> ESCAPE
> );
>
> INSERT INTO 'informix'.customer
> SELECT * FROM 'informix'.EXTcustomer;>
> John F. Miller III
> STSM, Embedability Architect
> miller3@us.ibm.com
> 503-578-5645
> IBM Informix Dynamic Server (IDS)
>
> ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:
>
> > From: "Art Kagel" <art.kagel@gmail.com>
> > To: ids@iiug.org,
> > Date: 10/17/2012 11:55 AM
> > Subject: Re: Question on HPL [28551]
> > Sent by: ids-bounces@iiug.org
> >
> > Note, this is typed off the cuff, so I may have missed a quote or comma
> > somewhere.
> >
> > create external table sometable_ext like sometable using
> > (datafiles("disk:/some/path/file","disk:/other/path/file"));
> >
> > select * from sometable insert into sometable_ext;> >
> > VOILA!
> >
> > For import, when you create the external table you can add the EXPRESS
> mode
> > attribute and it will load the data the same way that HPL in express
mode
>
> > does. You can change the data format from DELIMITED, to INFORMIX, or
> > FIXED. You can change the delimiter for the default delimited format -
no
>
> > you can't get rid of the trailing delimiter 8-( - etc. You can write to
a
>
> > pipe so the data can be compressed. Check out the description of CREATE
> > EXTERNAL TABLE in the online or PDF manuals for full details.
> >
> > Art
> >
> > Art S. Kagel
> > Advanced DataTools (http://www.advancedatatools.com/)
> > Blog: http://informix-myview.blogspot.com/
> >
> > Disclaimer: Please keep in mind that my own opinions are my own
opinions
> > and do not reflect on my employer, Advanced DataTools, the IIUG, nor
any
> > other organization with which I am associated either explicitly,
> > implicitly, or by inference. Neither do those opinions reflect those of
> > other individuals affiliated with any entity with which I am affiliated
> nor
> > those of the entities themselves.
> >
> > On Wed, Oct 17, 2012 at 2:44 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> >
> > > This is getting more interesting. Do you have a simple sample codes
> > > involved
> > > unload/load with external tables? I tried HPL unload yesterday on 63
> mil
> > > rows
> > > tables, it took 1hr15min and already happy about it, anything else I
> can
> > > do to
> > > improve further the speed and the flexibility, I'm all for it.
> > > Thanks Art.
> > >
> > > ________________________________
> > > From: Art Kagel <art.kagel@gmail.com>
> > > To: ids@iiug.org
> > > Sent: Wednesday, October 17, 2012 1:19 PM
> > > Subject: Re: Question on HPL [28546]
> > >
> > > FYI, if you have 11.50 or later, you can use external tables for the
> unload
> > > and it is at least as fast as HPL. Then the select to filter the data
> > > being written into the external table would be trivial.
> > >
> > > Art
> > >
> > > Art S. Kagel
> > > Advanced DataTools (http://www.advancedatatools.com/)
> > > Blog: http://informix-myview.blogspot.com/
> > >
> > > Disclaimer: Please keep in mind that my own opinions are my own
> opinions
> > > and do not reflect on my employer, Advanced DataTools, the IIUG, nor
> any
> > > other organization with which I am associated either explicitly,
> > > implicitly, or by inference. Neither do those opinions reflect those
of
>
> > > other individuals affiliated with any entity with which I am
affiliated
> nor
> > > those of the entities themselves.
> > >
> > > On Wed, Oct 17, 2012 at 1:32 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> > >
> > > > Dear HPL experts,
> > > > I create a simple HPL unload, it works fast, and it basically dumps
> the
> > > > entire
> > > > table. Is there way I can customize HPL unload for selected data,
for
>
> > > > example,
> > > > "customer_id < 2000000" ?
> > > > Thanks in advance.
> > > > Kern --
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
>
>
>
*******************************************************************************
>
> > > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > > >
> > > >
> > >
> > > --e89a8f923ba0ddf2be04cc454df1
> > >
> > >
> > >
> > >
> >
>
>
>
*******************************************************************************
>
> > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > >
> > >
> > >
> > >
> >
>
>
>
*******************************************************************************
>
> > > Forum Note: Use "Reply" to post a response in the discussion forum.
> > >
> > >
> >
> > --14dae93404b93508a004cc45cbb6
> >
> >
> >
>
>
>
*******************************************************************************
>
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
Good point, and I agree that ESCAPE should be the default.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/
Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.
On Thu, Oct 18, 2012 at 1:01 PM, John Miller iii <miller3@us.ibm.com> wrote:
> Art:
>
> One think I would point out is to add the "ESCAPE" keyword. I am requsting
> a change to make this
> the default and add something like NOESCAPE, but currently it assume the
> data is clean does
> not contain delimiters for performance reasons.
>
> >From your point of view, which would be your perference for the default
> setting.
>
> John F. Miller III
> STSM, Embedability Architect
> miller3@us.ibm.com
> 503-578-5645
> IBM Informix Dynamic Server (IDS)
>
> ids-bounces@iiug.org wrote on 10/17/2012 05:24:38 PM:
>
> > From: "Art Kagel" <art.kagel@gmail.com>
> > To: ids@iiug.org,
> > Date: 10/17/2012 05:26 PM
> > Subject: Re: Question on HPL [28556]
> > Sent by: ids-bounces@iiug.org
> >
> > You can load using external tables also. Say you have a delimited file,
> > mydata.unl, that you want to load into a table named mydata. So you
> define
> > an external table defined over the file mydata.unl and insert into the
> > normal table select from the external table. So:
> >
> > create external table mydata_unl sameas mydata using (datafiles(
> > "disk:/some/path/mydata.unl"), format "delimited", delimiter "|" );
> >
> > insert into mydata
> > select * from mydata_unl;> >
> > Art
> >
> > Art S. Kagel
> > Advanced DataTools (www.advancedatatools.com)
> > Blog: http://informix-myview.blogspot.com/
> >
> > Disclaimer: Please keep in mind that my own opinions are my own opinions
> > and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
> > other organization with which I am associated either explicitly,
> > implicitly, or by inference. Neither do those opinions reflect those of
> > other individuals affiliated with any entity with which I am affiliated
> nor
> > those of the entities themselves.
> >
> > On Wed, Oct 17, 2012 at 6:51 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> >
> > > This is great! How would you guys load?
> > > Would you use dbload or HPL, I know I don't want to use "load from".
> > >
> > > Any way, thank you John/Art, we'll try this tomorrow.
> > > Kern --
> > >
> > > ________________________________
> > > From: John Miller iii <miller3@us.ibm.com>
> > > To: ids@iiug.org
> > > Sent: Wednesday, October 17, 2012 5:09 PM
> > > Subject: Re: Question on HPL [28552]
> > >
> > > Here is the syntax for unloading the customer table to 2 files.
> > >
> > > CREATE EXTERNAL TABLE 'informix'.EXTcustomer
> > > SAMEAS
> > > 'informix'.customer
> > > USING
> > > (
> > > DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),
> > > FORMAT 'DELIMITED',
> > > DELIMITER '|',
> > > RECORDEND '',
> > > ESCAPE
> > > );
> > >
> > > INSERT INTO 'informix'.customer
> > > SELECT * FROM 'informix'.EXTcustomer;> > >
> > > John F. Miller III
> > > STSM, Embedability Architect
> > > miller3@us.ibm.com
> > > 503-578-5645
> > > IBM Informix Dynamic Server (IDS)
> > >
> > > ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:
> > >
> > > > From: "Art Kagel" <art.kagel@gmail.com>
> > > > To: ids@iiug.org,
> > > > Date: 10/17/2012 11:55 AM
> > > > Subject: Re: Question on HPL [28551]
> > > > Sent by: ids-bounces@iiug.org
> > > >
> > > > Note, this is typed off the cuff, so I may have missed a quote or
> comma
> > > > somewhere.
> > > >
> > > > create external table sometable_ext like sometable using
> > > > (datafiles("disk:/some/path/file","disk:/other/path/file"));
> > > >
> > > > select * from sometable insert into sometable_ext;> > > >
> > > > VOILA!
> > > >
> > > > For import, when you create the external table you can add the
> EXPRESS
> > > mode
> > > > attribute and it will load the data the same way that HPL in express
> mode
> > >
> > > > does. You can change the data format from DELIMITED, to INFORMIX, or
> > > > FIXED. You can change the delimiter for the default delimited format
> - no
> > >
> > > > you can't get rid of the trailing delimiter 8-( - etc. You can write
> to a
> > >
> > > > pipe so the data can be compressed. Check out the description of
> CREATE
> > > > EXTERNAL TABLE in the online or PDF manuals for full details.
> > > >
> > > > Art
> > > >
> > > > Art S. Kagel
> > > > Advanced DataTools (http://www.advancedatatools.com/)
> > > > Blog: http://informix-myview.blogspot.com/
> > > >
> > > > Disclaimer: Please keep in mind that my own opinions are my own
> opinions
> > > > and do not reflect on my employer, Advanced DataTools, the IIUG, nor
> any
> > > > other organization with which I am associated either explicitly,
> > > > implicitly, or by inference. Neither do those opinions reflect those
> of
> > > > other individuals affiliated with any entity with which I am
> affiliated
> > > nor
> > > > those of the entities themselves.
> > > >
> > > > On Wed, Oct 17, 2012 at 2:44 PM, Kern Doe <kern_doe@yahoo.com>
> wrote:
>
> > > >
> > > > > This is getting more interesting. Do you have a simple sample codes
>
> > > > > involved
> > > > > unload/load with external tables? I tried HPL unload yesterday on
> 63
> > > mil
> > > > > rows
> > > > > tables, it took 1hr15min and already happy about it, anything else
> I
> > > can
> > > > > do to
> > > > > improve further the speed and the flexibility, I'm all for it.
> > > > > Thanks Art.
> > > > >
> > > > > ________________________________
> > > > > From: Art Kagel <art.kagel@gmail.com>
> > > > > To: ids@iiug.org
> > > > > Sent: Wednesday, October 17, 2012 1:19 PM
> > > > > Subject: Re: Question on HPL [28546]
> > > > >
> > > > > FYI, if you have 11.50 or later, you can use external tables for
> the
> > > unload
> > > > > and it is at least as fast as HPL. Then the select to filter the
> data
> > > > > being written into the external table would be trivial.
> > > > >
> > > > > Art
> > > > >
> > > > > Art S. Kagel
> > > > > Advanced DataTools (http://www.advancedatatools.com/)
> > > > > Blog: http://informix-myview.blogspot.com/
> > > > >
> > > > > Disclaimer: Please keep in mind that my own opinions are my own
> > > opinions
> > > > > and do not reflect on my employer, Advanced DataTools, the IIUG,
> nor
> > > any
> > > > > other organization with which I am associated either explicitly,
> > > > > implicitly, or by inference. Neither do those opinions reflectthose@@NL@
I've tried this unloading involved "raw table" -- the result has blown my mind
away.
My first test result was 9 minutes to unload 63 mil rows while hpl took about
1 hour.
My 2nd test was 38 min for 250mil rows, amazing!! I will test the load soon.
Reinhard, thank you for the script, I haven't tried it, there are some parts I
believe you meant differently, please see my comments.
Thank you Reinhard.
________________________________
From: "Habichtsberg, Reinhard" <RHabichtsberg@arz-emmendingen.de>
To: ids@iiug.org
Sent: Thursday, October 18, 2012 2:47 AM
Subject: RE: Question on HPL [28562]
If the tables resp. the unload files will grow too big you may even
unload and load using external tables and pipes with no need of storage
space:
Solaris 10, Informix 11.70.FC5
Example shell script:
#!/usr/bin/bash
# Target table was created in target database and has same schema as
source table
# Two Informix Server: source_server and target_server, may also work if
source_server and target_server and source_database and target_database
are the same
# FORMAT 'informix' may not work for tables with byte or text columns
# Target table in target database set to type raw due to express mode:
dbaccess target_database@target_server - << EOF
alter table target_table type (raw);EOF
# Create pipe for loading:
mkfifo /tmp/target_table.lo
# Create pipe for unloading:
mkfifo /tmp/target_table.un
# Create external table in target database:
dbaccess target_database@target_server - << EOF
CREATE EXTERNAL TABLE ext_target_table sameas target_table
USING (DATAFILES ('PIPE:/tmp/target_table.lo'),
FORMAT 'informix',
REJECTFILE 'target_database_target_table.log',
EXPRESS);
EOF
# Create external table in source database:
dbaccess source_database@source_server - << EOF
CREATE EXTERNAL TABLE ext_source_table SAMEAS source_table
USING (DATAFILES ('PIPE:/tmp/source_table.un'),
FORMAT 'informix');
EOF
# Open pipe in background:
cat > /tmp/$tabelle.lo < /tmp/$tabelle.un &
(you probably meant cat > /tmp/target_table.lo < /tmp/target_table.un &)
# Insert Import Command in background:
dbaccess target_database@target_Server - <<EOF &
insert into target_table select * from ext_target_table;EOF
# Sleep 3 seconds
sleep 3
# Insert Export Command:
dbaccess source_database@source_server - <<EOF
insert into ext_source_table select * from source_table;EOF
echo EXPORT/IMPORT done!
# Sleep 5 seconds
sleep 5
# Clean up
dbaccess source_database@source_server - <<EOF
drop table ext_source_table;EOF
dbaccess target_database@target_Server - <<EOF
drop table ext_target_table;EOF
echo "drop PIPE:"
rm /tmp/ target_table.lo
rm /tmp/source_table.un
# Set Target Table to type standard
dbaccess target_database@target_Server - <<EOF
alter table $tabelle type (standard); (you meant target_table?)
EOF
I scipped the error handling in due of clarity.
HTH
Reinhard
> -----Original Message-----
> From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
Art
> Kagel
> Sent: Thursday, October 18, 2012 2:25 AM
> To: ids@iiug.org
> Subject: Re: Question on HPL [28556]
>
> You can load using external tables also. Say you have a delimited
file, mydata.unl,
> that you want to load into a table named mydata. So you define an
external table
> defined over the file mydata.unl and insert into the normal table
select from the
> external table. So:
>
> create external table mydata_unl sameas mydata using (datafiles(
> "disk:/some/path/mydata.unl"), format "delimited", delimiter "|" );
>
> insert into mydata
> select * from mydata_unl;>
> Art
>
> Art S. Kagel
> Advanced DataTools (http://www.advancedatatools.com/)
> Blog: http://informix-myview.blogspot.com/
>
> Disclaimer: Please keep in mind that my own opinions are my own
opinions and
> do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other
> organization with which I am associated either explicitly, implicitly,
or by
> inference. Neither do those opinions reflect those of other
individuals affiliated with
> any entity with which I am affiliated nor those of the entities
themselves.
>
> On Wed, Oct 17, 2012 at 6:51 PM, Kern Doe <kern_doe@yahoo.com> wrote:
>
> > This is great! How would you guys load?
> > Would you use dbload or HPL, I know I don't want to use "load from".
> >
> > Any way, thank you John/Art, we'll try this tomorrow.
> > Kern --
> >
> > ________________________________
> > From: John Miller iii <miller3@us.ibm.com>
> > To: ids@iiug.org
> > Sent: Wednesday, October 17, 2012 5:09 PM
> > Subject: Re: Question on HPL [28552]
> >
> > Here is the syntax for unloading the customer table to 2 files.
> >
> > CREATE EXTERNAL TABLE 'informix'.EXTcustomer SAMEAS
> > 'informix'.customer USING (
> > DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),
> > FORMAT 'DELIMITED',
> > DELIMITER '|',
> > RECORDEND '',
> > ESCAPE
> > );
> >
> > INSERT INTO 'informix'.customer
> > SELECT * FROM 'informix'.EXTcustomer;> >
> > John F. Miller III
> > STSM, Embedability Architect
> > miller3@us.ibm.com
> > 503-578-5645
> > IBM Informix Dynamic Server (IDS)
> >
> > ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:
> >
> > > From: "Art Kagel" <art.kagel@gmail.com>
> > > To: ids@iiug.org,
> > > Date: 10/17/2012 11:55 AM
> > > Subject: Re: Question on HPL [28551] Sent by: ids-bounces@iiug.org
> > >
> > > Note, this is typed off the cuff, so I may have missed a quote or
> > > comma somewhere.
> > >
> > > create external table sometable_ext like sometable using
> > > (datafiles("disk:/some/path/file","disk:/other/path/file"));
> > >
> > > select * from sometable insert into sometable_ext;> > >
> > > VOILA!
> > >
> > > For import, when you create the external table you can add the
> > > EXPRESS
> > mode
> > > attribute and it will load the data the same way that HPL in
express
> > > mode
> >
> > > does. You can change the data format from DELIMITED, to INFORMIX,
or
> > > FIXED. You can change the delimiter for the default delimited
format
> > > - no
> >
> > > you can't get rid of the trailing delimiter 8-( - etc. You can
write
> > > to a
> >
> > > pipe so the data can be compressed. Check out the description of
> > > CREATE EXTERNAL TABLE in the online or PDF manuals for full
details.
> > >
> > > Art
> > >
> > > Art S. Kagel
> > > Advanced DataTools (http://www.advancedatatools.com/)
> > > Blog: http://informix-myview.blogspot.com/
> > >
> > > Disclaimer: Please keep in mind that my own opinions are my own
> > > opinions and do not reflect on my employer, Advanced DataTools,
the
> > > IIUG, nor any other organization with which I am associated either
> > > explicitly, implicitly, or by inference. Neither do those opinions
> > > reflec
Kern:
Very important to keep in mind when working with RAW tables:
1. RAW mode tables do not support PRIMARY or UNIQUE key constraints.
1. You will have to drop those and recreate them after altering the
table's mode back to "STANDARD".
2. If those constraints rely on "hidden" indexes (ones whose names
begin with a space) the indexes will have to be rebuild also so this may
add runtime.
3. If there are foreign keys on other tables that reference the
dropped constraints, those foreign key constraints will drop as well and
will have to be recreated which may mean rebuilding the
supporting indexes
on those keys (if the indexes are hidden) and will require that
all of the
keys in the dependent table be re-validated against the table you were
loading.
4. This means that the total runtime of a load may actually be longer
if you alter it to "RAW" and back to "STANDARD" before you can put the
database back into service.
2. If you load into a table in "RAW" mode, you have to take a level
zero archive after altering the table back to "STANDARD" mode so that you
can recover after a hard crash without having to repeat the data load.
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/
Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.
On Thu, Oct 18, 2012 at 8:58 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> I've tried this unloading involved "raw table" -- the result has blown my
> mind
> away.
> My first test result was 9 minutes to unload 63 mil rows while hpl took
> about
> 1 hour.
> My 2nd test was 38 min for 250mil rows, amazing!! I will test the load
> soon.
>
> Reinhard, thank you for the script, I haven't tried it, there are some
> parts I
> believe you meant differently, please see my comments.
> Thank you Reinhard.
>
> ________________________________
> From: "Habichtsberg, Reinhard" <RHabichtsberg@arz-emmendingen.de>
> To: ids@iiug.org
> Sent: Thursday, October 18, 2012 2:47 AM
> Subject: RE: Question on HPL [28562]
>
> If the tables resp. the unload files will grow too big you may even
> unload and load using external tables and pipes with no need of storage
> space:
>
> Solaris 10, Informix 11.70.FC5
> Example shell script:
> #!/usr/bin/bash
> # Target table was created in target database and has same schema as
> source table
> # Two Informix Server: source_server and target_server, may also work if
> source_server and target_server and source_database and target_database
> are the same
> # FORMAT 'informix' may not work for tables with byte or text columns
>
> # Target table in target database set to type raw due to express mode:
> dbaccess target_database@target_server - << EOF
> alter table target_table type (raw);> EOF
>
> # Create pipe for loading:
> mkfifo /tmp/target_table.lo
>
> # Create pipe for unloading:
> mkfifo /tmp/target_table.un
>
> # Create external table in target database:
> dbaccess target_database@target_server - << EOF
> CREATE EXTERNAL TABLE ext_target_table sameas target_table
> USING (DATAFILES ('PIPE:/tmp/target_table.lo'),
> FORMAT 'informix',
> REJECTFILE 'target_database_target_table.log',
> EXPRESS);
> EOF
>
> # Create external table in source database:
> dbaccess source_database@source_server - << EOF
> CREATE EXTERNAL TABLE ext_source_table SAMEAS source_table
> USING (DATAFILES ('PIPE:/tmp/source_table.un'),
> FORMAT 'informix');
> EOF
>
> # Open pipe in background:
> cat > /tmp/$tabelle.lo < /tmp/$tabelle.un &
>
> (you probably meant cat > /tmp/target_table.lo < /tmp/target_table.un &)
>
> # Insert Import Command in background:
> dbaccess target_database@target_Server - <<EOF &
> insert into target_table select * from ext_target_table;> EOF
>
> # Sleep 3 seconds
> sleep 3
>
> # Insert Export Command:
> dbaccess source_database@source_server - <<EOF
> insert into ext_source_table select * from source_table;> EOF
>
> echo EXPORT/IMPORT done!
> # Sleep 5 seconds
> sleep 5
>
> # Clean up
> dbaccess source_database@source_server - <<EOF
> drop table ext_source_table;> EOF
> dbaccess target_database@target_Server - <<EOF
> drop table ext_target_table;> EOF
>
> echo "drop PIPE:"
> rm /tmp/ target_table.lo
> rm /tmp/source_table.un
>
> # Set Target Table to type standard
> dbaccess target_database@target_Server - <<EOF
> alter table $tabelle type (standard); (you meant target_table?)
> EOF
>
> I scipped the error handling in due of clarity.
>
> HTH
> Reinhard
>
> > -----Original Message-----
> > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
> Art
> > Kagel
> > Sent: Thursday, October 18, 2012 2:25 AM
> > To: ids@iiug.org
> > Subject: Re: Question on HPL [28556]
> >
> > You can load using external tables also. Say you have a delimited
> file, mydata.unl,
> > that you want to load into a table named mydata. So you define an
> external table
> > defined over the file mydata.unl and insert into the normal table
> select from the
> > external table. So:
> >
> > create external table mydata_unl sameas mydata using (datafiles(
> > "disk:/some/path/mydata.unl"), format "delimited", delimiter "|" );
> >
> > insert into mydata
> > select * from mydata_unl;> >
> > Art
> >
> > Art S. Kagel
> > Advanced DataTools (http://www.advancedatatools.com/)
> > Blog: http://informix-myview.blogspot.com/
> >
> > Disclaimer: Please keep in mind that my own opinions are my own
> opinions and
> > do not reflect on my employer, Advanced DataTools, the IIUG, nor any
> other
> > organization with which I am associated either explicitly, implicitly,
> or by
> > inference. Neither do those opinions reflect those of other
> individuals affiliated with
> > any entity with which I am affiliated nor those of the entities
> themselves.
> >
> > On Wed, Oct 17, 2012 at 6:51 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> >
> > > This is great! How would you guys load?
> > > Would you use dbload or HPL, I know I don't want to use "load from".
> > >
> > > Any way, thank you John/Art, we'll try this tomorrow.
> > > Kern --
> > >
> > > ________________________________
> > > From: John Miller iii <miller3@us.ibm.com>
> > > To: ids@iiug.org
> > > Sent: Wednesday, October 17, 2012 5:09 PM
> > > Subject: Re: Question on HPL [28552]
> > >
> > > Here is the syntax for unloading the customer table to 2 files.
> > >
> > > CREATE EXTERNAL TABLE 'informix'.EXTcustom
> (you probably meant cat > /tmp/target_table.lo < /tmp/target_table.un
&)
> (you meant target_table?)
You are right. I copied some lines from an existing shell scripts where
the tables are defined by parameters and forgot to change the values.
> -----Original Message-----
> From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
Kern
> Doe
> Sent: Friday, October 19, 2012 2:58 AM
> To: ids@iiug.org
> Subject: Re: Question on HPL [28572]
>
> I've tried this unloading involved "raw table" -- the result has blown
my mind away.
> My first test result was 9 minutes to unload 63 mil rows while hpl
took about
> 1 hour.
> My 2nd test was 38 min for 250mil rows, amazing!! I will test the load
soon.
>
> Reinhard, thank you for the script, I haven't tried it, there are some
parts I believe
> you meant differently, please see my comments.
> Thank you Reinhard.
>
> ________________________________
> From: "Habichtsberg, Reinhard" <RHabichtsberg@arz-emmendingen.de>
> To: ids@iiug.org
> Sent: Thursday, October 18, 2012 2:47 AM
> Subject: RE: Question on HPL [28562]
>
> If the tables resp. the unload files will grow too big you may even
unload and load
> using external tables and pipes with no need of storage
> space:
>
> Solaris 10, Informix 11.70.FC5
> Example shell script:
> #!/usr/bin/bash
> # Target table was created in target database and has same schema as
source
> table # Two Informix Server: source_server and target_server, may also
work if
> source_server and target_server and source_database and
target_database are
> the same # FORMAT 'informix' may not work for tables with byte or text
columns
>
> # Target table in target database set to type raw due to express mode:
> dbaccess target_database@target_server - << EOF alter table
target_table type
> (raw); EOF
>
> # Create pipe for loading:
> mkfifo /tmp/target_table.lo
>
> # Create pipe for unloading:
> mkfifo /tmp/target_table.un
>
> # Create external table in target database:
> dbaccess target_database@target_server - << EOF CREATE EXTERNAL TABLE
> ext_target_table sameas target_table USING (DATAFILES
> ('PIPE:/tmp/target_table.lo'), FORMAT 'informix', REJECTFILE
> 'target_database_target_table.log',
> EXPRESS);
> EOF
>
> # Create external table in source database:
> dbaccess source_database@source_server - << EOF CREATE EXTERNAL
> TABLE ext_source_table SAMEAS source_table USING (DATAFILES
> ('PIPE:/tmp/source_table.un'), FORMAT 'informix'); EOF
>
> # Open pipe in background:
> cat > /tmp/$tabelle.lo < /tmp/$tabelle.un &
>
> (you probably meant cat > /tmp/target_table.lo < /tmp/target_table.un
&)
>
> # Insert Import Command in background:
> dbaccess target_database@target_Server - <<EOF & insert into
target_table
> select * from ext_target_table; EOF>
> # Sleep 3 seconds
> sleep 3
>
> # Insert Export Command:
> dbaccess source_database@source_server - <<EOF insert into
ext_source_table
> select * from source_table; EOF>
> echo EXPORT/IMPORT done!
> # Sleep 5 seconds
> sleep 5
>
> # Clean up
> dbaccess source_database@source_server - <<EOF drop table
ext_source_table;
> EOF dbaccess target_database@target_Server - <<EOF drop table
> ext_target_table; EOF
>
> echo "drop PIPE:"
> rm /tmp/ target_table.lo
> rm /tmp/source_table.un
>
> # Set Target Table to type standard
> dbaccess target_database@target_Server - <<EOF alter table $tabelle
type
> (standard); (you meant target_table?) EOF
>
> I scipped the error handling in due of clarity.
>
> HTH
> Reinhard
>
> > -----Original Message-----
> > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf
Of
> Art
> > Kagel
> > Sent: Thursday, October 18, 2012 2:25 AM
> > To: ids@iiug.org
> > Subject: Re: Question on HPL [28556]
> >
> > You can load using external tables also. Say you have a delimited
> file, mydata.unl,
> > that you want to load into a table named mydata. So you define an
> external table
> > defined over the file mydata.unl and insert into the normal table
> select from the
> > external table. So:
> >
> > create external table mydata_unl sameas mydata using (datafiles(
> > "disk:/some/path/mydata.unl"), format "delimited", delimiter "|" );
> >
> > insert into mydata
> > select * from mydata_unl;> >
> > Art
> >
> > Art S. Kagel
> > Advanced DataTools (http://www.advancedatatools.com/)
> > Blog: http://informix-myview.blogspot.com/
> >
> > Disclaimer: Please keep in mind that my own opinions are my own
> opinions and
> > do not reflect on my employer, Advanced DataTools, the IIUG, nor any
> other
> > organization with which I am associated either explicitly,
implicitly,
> or by
> > inference. Neither do those opinions reflect those of other
> individuals affiliated with
> > any entity with which I am affiliated nor those of the entities
> themselves.
> >
> > On Wed, Oct 17, 2012 at 6:51 PM, Kern Doe <kern_doe@yahoo.com>
wrote:
> >
> > > This is great! How would you guys load?
> > > Would you use dbload or HPL, I know I don't want to use "load
from".
> > >
> > > Any way, thank you John/Art, we'll try this tomorrow.
> > > Kern --
> > >
> > > ________________________________
> > > From: John Miller iii <miller3@us.ibm.com>
> > > To: ids@iiug.org
> > > Sent: Wednesday, October 17, 2012 5:09 PM
> > > Subject: Re: Question on HPL [28552]
> > >
> > > Here is the syntax for unloading the customer table to 2 files.
> > >
> > > CREATE EXTERNAL TABLE 'informix'.EXTcustomer SAMEAS
> > > 'informix'.customer USING (
> > > DATAFILES('DISK:/tmp/customer_1.unl','DISK:/tmp/customer_2.unl'),
> > > FORMAT 'DELIMITED',
> > > DELIMITER '|',
> > > RECORDEND '',
> > > ESCAPE
> > > );
> > >
> > > INSERT INTO 'informix'.customer
> > > SELECT * FROM 'informix'.EXTcustomer;> > >
> > > John F. Miller III
> > > STSM, Embedability Architect
> > > miller3@us.ibm.com
> > > 503-578-5645
> > > IBM Informix Dynamic Server (IDS)
> > >
> > > ids-bounces@iiug.org wrote on 10/17/2012 11:54:06 AM:
> > >
> > > > From: "Art Kagel" <art.kagel@gmail.com>
> > > > To: ids@iiug.org,
> > > > Date: 10/17/2012 11:55 AM
> > > > Subject: Re: Question on HPL [28551] Sent by:
ids-bounces@iiug.org
> > > >
> > > > Note, this is typed off the cuff, so I may have missed a quote
or
> > > > comma somewhere.
> > > >
> > > > create external table sometable_ext like sometable using
> > > > (datafiles("disk:/some/path/file","disk:/other/path/file"));
> > > >
> > > > select * from sometable insert into sometable_ext;> > > >
> > > > VOILA!
> > > >
> > > > For import, when you create the external table you can add the
> > > > EXPRESS
> > > mode
> > > > attribute and it will load the data the same way that HPL in
> express
> > > > mode
> > >
> > > > does. You can change the data format from DELI
Art,
Your detail notes and experience on RAW TABLE to share are certainly
appreciated.
My original topic was "HPL", has become an experiment on raw, and then now I
have to ask a question on unrelated or somewhat related topic.
OK, so yesterday I tried to load those 250 mil rows (from an external table)
into the target table of different instance but in the same host, and I ran
into error 908, I even tried tcp protocol (which I should not since both
instances are in the same box), it crashed the target instance. Any idea?
SQL: New Run Modify Use-editor Output Choose Save Info Drop Exit
Modify the current SQL statements using the SQL editor.
----------------------- target_db@target_instance --------- Press CTRL-W for
Help --------
INSERT INTO target_table SELECT * FROMsource_db@source_instance:external_source_table
908: Attempt to connect to database server (source_instance) failed.
________________________________
From: Art Kagel <art.kagel@gmail.com>
To: ids@iiug.org
Sent: Thursday, October 18, 2012 8:19 PM
Subject: Re: Question on HPL [28573]
Kern:
Very important to keep in mind when working with RAW tables:
1. RAW mode tables do not support PRIMARY or UNIQUE key constraints.
1. You will have to drop those and recreate them after altering the
table's mode back to "STANDARD".
2. If those constraints rely on "hidden" indexes (ones whose names
begin with a space) the indexes will have to be rebuild also so this may
add runtime.
3. If there are foreign keys on other tables that reference the
dropped constraints, those foreign key constraints will drop as well and
will have to be recreated which may mean rebuilding the
supporting indexes
on those keys (if the indexes are hidden) and will require that
all of the
keys in the dependent table be re-validated against the table you were
loading.
4. This means that the total runtime of a load may actually be longer
if you alter it to "RAW" and back to "STANDARD" before you can put the
database back into service.
2. If you load into a table in "RAW" mode, you have to take a level
zero archive after altering the table back to "STANDARD" mode so that you
can recover after a hard crash without having to repeat the data load.
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/
Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.
On Thu, Oct 18, 2012 at 8:58 PM, Kern Doe <kern_doe@yahoo.com> wrote:
> I've tried this unloading involved "raw table" -- the result has blown my
> mind
> away.
> My first test result was 9 minutes to unload 63 mil rows while hpl took
> about
> 1 hour.
> My 2nd test was 38 min for 250mil rows, amazing!! I will test the load
> soon.
>
> Reinhard, thank you for the script, I haven't tried it, there are some
> parts I
> believe you meant differently, please see my comments.
> Thank you Reinhard.
>
> ________________________________
> From: "Habichtsberg, Reinhard" <RHabichtsberg@arz-emmendingen.de>
> To: ids@iiug.org
> Sent: Thursday, October 18, 2012 2:47 AM
> Subject: RE: Question on HPL [28562]
>
> If the tables resp. the unload files will grow too big you may even
> unload and load using external tables and pipes with no need of storage
> space:
>
> Solaris 10, Informix 11.70.FC5
> Example shell script:
> #!/usr/bin/bash
> # Target table was created in target database and has same schema as
> source table
> # Two Informix Server: source_server and target_server, may also work if
> source_server and target_server and source_database and target_database
> are the same
> # FORMAT 'informix' may not work for tables with byte or text columns
>
> # Target table in target database set to type raw due to express mode:
> dbaccess target_database@target_server - << EOF
> alter table target_table type (raw);> EOF
>
> # Create pipe for loading:
> mkfifo /tmp/target_table.lo
>
> # Create pipe for unloading:
> mkfifo /tmp/target_table.un
>
> # Create external table in target database:
> dbaccess target_database@target_server - << EOF
> CREATE EXTERNAL TABLE ext_target_table sameas target_table
> USING (DATAFILES ('PIPE:/tmp/target_table.lo'),
> FORMAT 'informix',
> REJECTFILE 'target_database_target_table.log',
> EXPRESS);
> EOF
>
> # Create external table in source database:
> dbaccess source_database@source_server - << EOF
> CREATE EXTERNAL TABLE ext_source_table SAMEAS source_table
> USING (DATAFILES ('PIPE:/tmp/source_table.un'),
> FORMAT 'informix');
> EOF
>
> # Open pipe in background:
> cat > /tmp/$tabelle.lo < /tmp/$tabelle.un &
>
> (you probably meant cat > /tmp/target_table.lo < /tmp/target_table.un &)
>
> # Insert Import Command in background:
> dbaccess target_database@target_Server - <<EOF &
> insert into target_table select * from ext_target_table;> EOF
>
> # Sleep 3 seconds
> sleep 3
>
> # Insert Export Command:
> dbaccess source_database@source_server - <<EOF
> insert into ext_source_table select * from source_table;> EOF
>
> echo EXPORT/IMPORT done!
> # Sleep 5 seconds
> sleep 5
>
> # Clean up
> dbaccess source_database@source_server - <<EOF
> drop table ext_source_table;> EOF
> dbaccess target_database@target_Server - <<EOF
> drop table ext_target_table;> EOF
>
> echo "drop PIPE:"
> rm /tmp/ target_table.lo
> rm /tmp/source_table.un
>
> # Set Target Table to type standard
> dbaccess target_database@target_Server - <<EOF
> alter table $tabelle type (standard); (you meant target_table?)
> EOF
>
> I scipped the error handling in due of clarity.
>
> HTH
> Reinhard
>
> > -----Original Message-----
> > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
> Art
> > Kagel
> > Sent: Thursday, October 18, 2012 2:25 AM
> > To: ids@iiug.org
> > Subject: Re: Question on HPL [28556]
> >
> > You can load using external tables also. Say you have a delimited
> file, mydata.unl,
> > that you want to load into a table named mydata. So you define an
> external table
> > defined over the file mydata.unl and insert into the normal table
> select from the
> > external table. So:
> >
> > create external table mydata_unl sameas mydata using (datafiles(
> > "disk:/some/path/mydata.unl"), format "delimited", delimiter "|" );
> >
> > insert into mydata
> > select * from mydata_unl;> >
> > Art
> >
> > Art S. Kagel
> > Advanced DataTools (http://www.advancedatatools.com/)
> > Blog: http://informix-myview.blogspot.com/@@NL
Two informix instances, even on the same machine, cannot talk to each other
through shared memory connections. You MUST use a network or streams
connection to the 'other' instance. You can connect to the instance where
you are running the SQL using shared memory, but the remote server alias
that you use in the remote insert (or remote select) must be a non-shared
memory connection.
BTW, if you are copying data from a table in one instance into a table in
another instance, use my dbcopy utility. It is about 2X as fast as INSERT
INTO ... SELECT ... FROM when the tables reside in different instances
(even faster if the other instance is on another machine). Dbcopy also
avoids the long transaction problem if you are loading into a 'standard'
table (as opposed to RAW). Also, if you can break the ranges of keys down,
you can run several copies of dbcopy, each copying a distinct range of
keys, then you can multiply the speed gain almost linearly until you run
out of resources (become IO or CPU bound). Normally I will copy a big
table with from four to ten copies of dbcopy running (I use the dbschema
-hd output to select ranges of keys that are roughly equal in size and pass
appropriate WHERE clauses or full SELECTs to each copy).
Copying between instances on separate machines, running dbcopy on a third
machine to get access to additional CPU resources, I've run up to 40 copies
of dbcopy in parallel on a 32 core machine - WOOSH!
Dbcopy is included in the package utils2_ak in the IIUG Software Repository.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/
Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.
On Fri, Oct 19, 2012 at 10:43 AM, Kern Doe <kern_doe@yahoo.com> wrote:
> Art,
> Your detail notes and experience on RAW TABLE to share are certainly
> appreciated.
> My original topic was "HPL", has become an experiment on raw, and then now
> I
> have to ask a question on unrelated or somewhat related topic.
> OK, so yesterday I tried to load those 250 mil rows (from an external
> table)
> into the target table of different instance but in the same host, and I ran
> into error 908, I even tried tcp protocol (which I should not since both
> instances are in the same box), it crashed the target instance. Any idea?
>
> SQL: New Run Modify Use-editor Output Choose Save Info Drop Exit
> Modify the current SQL statements using the SQL editor.
> ----------------------- target_db@target_instance --------- Press CTRL-W
> for
> Help --------
> INSERT INTO target_table SELECT * FROM> source_db@source_instance:external_source_table
>
> 908: Attempt to connect to database server (source_instance) failed.>
> ________________________________
> From: Art Kagel <art.kagel@gmail.com>
> To: ids@iiug.org
> Sent: Thursday, October 18, 2012 8:19 PM
> Subject: Re: Question on HPL [28573]
>
> Kern:
>
> Very important to keep in mind when working with RAW tables:
>
> 1. RAW mode tables do not support PRIMARY or UNIQUE key constraints.
>
> 1. You will have to drop those and recreate them after altering the
>
> table's mode back to "STANDARD".
>
> 2. If those constraints rely on "hidden" indexes (ones whose names
>
> begin with a space) the indexes will have to be rebuild also so this may
>
> add runtime.
>
> 3. If there are foreign keys on other tables that reference the
>
> dropped constraints, those foreign key constraints will drop as well and
>
> will have to be recreated which may mean rebuilding the
> supporting indexes
>
> on those keys (if the indexes are hidden) and will require that
> all of the
>
> keys in the dependent table be re-validated against the table you were
>
> loading.
>
> 4. This means that the total runtime of a load may actually be longer
>
> if you alter it to "RAW" and back to "STANDARD" before you can put the
>
> database back into service.
>
> 2. If you load into a table in "RAW" mode, you have to take a level
>
> zero archive after altering the table back to "STANDARD" mode so that you
>
> can recover after a hard crash without having to repeat the data load.
>
> Art S. Kagel
> Advanced DataTools (www.advancedatatools.com)
> Blog: http://informix-myview.blogspot.com/
>
> Disclaimer: Please keep in mind that my own opinions are my own opinions
> and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
> other organization with which I am associated either explicitly,
> implicitly, or by inference. Neither do those opinions reflect those of
> other individuals affiliated with any entity with which I am affiliated nor
> those of the entities themselves.
>
> On Thu, Oct 18, 2012 at 8:58 PM, Kern Doe <kern_doe@yahoo.com> wrote:
>
> > I've tried this unloading involved "raw table" -- the result has blown my
> > mind
> > away.
> > My first test result was 9 minutes to unload 63 mil rows while hpl took
> > about
> > 1 hour.
> > My 2nd test was 38 min for 250mil rows, amazing!! I will test the load
> > soon.
> >
> > Reinhard, thank you for the script, I haven't tried it, there are some
> > parts I
> > believe you meant differently, please see my comments.
> > Thank you Reinhard.
> >
> > ________________________________
> > From: "Habichtsberg, Reinhard" <RHabichtsberg@arz-emmendingen.de>
> > To: ids@iiug.org
> > Sent: Thursday, October 18, 2012 2:47 AM
> > Subject: RE: Question on HPL [28562]
> >
> > If the tables resp. the unload files will grow too big you may even
> > unload and load using external tables and pipes with no need of storage
> > space:
> >
> > Solaris 10, Informix 11.70.FC5
> > Example shell script:
> > #!/usr/bin/bash
> > # Target table was created in target database and has same schema as
> > source table
> > # Two Informix Server: source_server and target_server, may also work if
> > source_server and target_server and source_database and target_database
> > are the same
> > # FORMAT 'informix' may not work for tables with byte or text columns
> >
> > # Target table in target database set to type raw due to express mode:
> > dbaccess target_database@target_server - << EOF
> > alter table target_table type (raw);> > EOF
> >
> > # Create pipe for loading:
> > mkfifo /tmp/target_table.lo
> >
> > # Create pipe for unloading:
> > mkfifo /tmp/target_table.un
> >
> > # Create external table in target database:
> > dbaccess target_database@target_server - << EOF
> > CREATE EXTERNAL TABLE ext_target_table sameas target_table
> > USING (DATAFILES ('PIPE:/tmp/target_table.lo'),
> > FORMAT 'informix',
> > REJECTFILE 'target_database_target_table.log',
> > EXPRESS);
> > EOF
> >
I'm not Art, but I will try to answer anyway.
It seems that you want to load from an external table that is defined on
a remote database that resides on a remote server. In this scenario it
doesn't matter that you are on the same host.
You have inserted the rows into the external table which is defined on
the source server and database? Then you have created an (unload)-file
in the filesystem.
Create the equivalent external table on the target server and database
that uses that (unload)-file. In that case you have no need refer to the
source server and database in the insert statement. Just write:
INSERT INTO target_table SELECT * FROMexternal_target_table
Reinhard.
> -----Original Message-----
> From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
Kern
> Doe
> Sent: Friday, October 19, 2012 4:44 PM
> To: ids@iiug.org
> Subject: Re: Question on HPL --- FAILURE IN LOADING TO .... [28583]
>
> Art,
> Your detail notes and experience on RAW TABLE to share are certainly
> appreciated.
> My original topic was "HPL", has become an experiment on raw, and then
now I
> have to ask a question on unrelated or somewhat related topic.
> OK, so yesterday I tried to load those 250 mil rows (from an external
table) into
> the target table of different instance but in the same host, and I ran
into error 908,
> I even tried tcp protocol (which I should not since both instances are
in the same
> box), it crashed the target instance. Any idea?
>
> SQL: New Run Modify Use-editor Output Choose Save Info Drop Exit
Modify the
> current SQL statements using the SQL editor.
> ----------------------- target_db@target_instance --------- Press
CTRL-W for Help ---
> ----- INSERT INTO target_table SELECT * FROM
> source_db@source_instance:external_source_table
>
> 908: Attempt to connect to database server (source_instance) failed.>
> ________________________________
> From: Art Kagel <art.kagel@gmail.com>
> To: ids@iiug.org
> Sent: Thursday, October 18, 2012 8:19 PM
> Subject: Re: Question on HPL [28573]
>
> Kern:
>
> Very important to keep in mind when working with RAW tables:
>
> 1. RAW mode tables do not support PRIMARY or UNIQUE key constraints.
>
> 1. You will have to drop those and recreate them after altering the
>
> table's mode back to "STANDARD".
>
> 2. If those constraints rely on "hidden" indexes (ones whose names
>
> begin with a space) the indexes will have to be rebuild also so this
may
>
> add runtime.
>
> 3. If there are foreign keys on other tables that reference the
>
> dropped constraints, those foreign key constraints will drop as well
and
>
> will have to be recreated which may mean rebuilding the supporting
indexes
>
> on those keys (if the indexes are hidden) and will require that all of
the
>
> keys in the dependent table be re-validated against the table you were
>
> loading.
>
> 4. This means that the total runtime of a load may actually be longer
>
> if you alter it to "RAW" and back to "STANDARD" before you can put the
>
> database back into service.
>
> 2. If you load into a table in "RAW" mode, you have to take a level
>
> zero archive after altering the table back to "STANDARD" mode so that
you
>
> can recover after a hard crash without having to repeat the data load.
>
> Art S. Kagel
> Advanced DataTools (www.advancedatatools.com)
> Blog: http://informix-myview.blogspot.com/
>
> Disclaimer: Please keep in mind that my own opinions are my own
opinions and
> do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other
> organization with which I am associated either explicitly, implicitly,
or by
> inference. Neither do those opinions reflect those of other
individuals affiliated with
> any entity with which I am affiliated nor those of the entities
themselves.
>
> On Thu, Oct 18, 2012 at 8:58 PM, Kern Doe <kern_doe@yahoo.com> wrote:
>
> > I've tried this unloading involved "raw table" -- the result has
blown
> > my mind away.
> > My first test result was 9 minutes to unload 63 mil rows while hpl
> > took about
> > 1 hour.
> > My 2nd test was 38 min for 250mil rows, amazing!! I will test the
load
> > soon.
> >
> > Reinhard, thank you for the script, I haven't tried it, there are
some
> > parts I believe you meant differently, please see my comments.
> > Thank you Reinhard.
> >
> > ________________________________
> > From: "Habichtsberg, Reinhard" <RHabichtsberg@arz-emmendingen.de>
> > To: ids@iiug.org
> > Sent: Thursday, October 18, 2012 2:47 AM
> > Subject: RE: Question on HPL [28562]
> >
> > If the tables resp. the unload files will grow too big you may even
> > unload and load using external tables and pipes with no need of
> > storage
> > space:
> >
> > Solaris 10, Informix 11.70.FC5
> > Example shell script:
> > #!/usr/bin/bash
> > # Target table was created in target database and has same schema as
> > source table # Two Informix Server: source_server and target_server,
> > may also work if source_server and target_server and source_database
> > and target_database are the same # FORMAT 'informix' may not work
for
> > tables with byte or text columns
> >
> > # Target table in target database set to type raw due to express
mode:
> > dbaccess target_database@target_server - << EOF alter table
> > target_table type (raw); EOF
> >
> > # Create pipe for loading:
> > mkfifo /tmp/target_table.lo
> >
> > # Create pipe for unloading:
> > mkfifo /tmp/target_table.un
> >
> > # Create external table in target database:
> > dbaccess target_database@target_server - << EOF CREATE EXTERNAL
> TABLE
> > ext_target_table sameas target_table USING (DATAFILES
> > ('PIPE:/tmp/target_table.lo'), FORMAT 'informix', REJECTFILE
> > 'target_database_target_table.log',
> > EXPRESS);
> > EOF
> >
> > # Create external table in source database:
> > dbaccess source_database@source_server - << EOF CREATE EXTERNAL
> TABLE
> > ext_source_table SAMEAS source_table USING (DATAFILES
> > ('PIPE:/tmp/source_table.un'), FORMAT 'informix'); EOF
> >
> > # Open pipe in background:
> > cat > /tmp/$tabelle.lo < /tmp/$tabelle.un &
> >
> > (you probably meant cat > /tmp/target_table.lo <
/tmp/target_table.un
> > &)
> >
> > # Insert Import Command in background:
> > dbaccess target_database@target_Server - <<EOF & insert into
> > target_table select * from ext_target_table; EOF
> >
> > # Sleep 3 seconds
> > sleep 3
> >
> > # Insert Export Command:
> > dbaccess source_database@source_server - <<EOF insert into
> > ext_source_table select * from source_table; EOF
> >
> > echo EXPORT/IMPORT done!
> > # Sleep 5 seconds
> > sleep 5
> >
> > # Clean up
> > dbaccess source_database@source_server - <<EOF drop table
> > ext_source_table; EOF dbaccess target_database@target_Server - <<EOF
> > drop table ext_target_table; EOF> >
> > echo "drop PIPE:@@D
Ah, you have a good point, if I didn't understand you wrong, let me make sure:
1) create an equivalent external table on the target server that uses the
already unloaded files from the other source server.
2) run your insert statement, voila?
Got to try on Monday, I'm outta here.
Have a great weekend,
Kern --
________________________________
From: "Habichtsberg, Reinhard" <RHabichtsberg@arz-emmendingen.de>
To: ids@iiug.org
Sent: Friday, October 19, 2012 10:12 AM
Subject: RE: Question on HPL --- FAILURE IN LOADING TO .... [28586]
I'm not Art, but I will try to answer anyway.
It seems that you want to load from an external table that is defined on
a remote database that resides on a remote server. In this scenario it
doesn't matter that you are on the same host.
You have inserted the rows into the external table which is defined on
the source server and database? Then you have created an (unload)-file
in the filesystem.
Create the equivalent external table on the target server and database
that uses that (unload)-file. In that case you have no need refer to the
source server and database in the insert statement. Just write:
INSERT INTO target_table SELECT * FROMexternal_target_table
Reinhard.
> -----Original Message-----
> From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
Kern
> Doe
> Sent: Friday, October 19, 2012 4:44 PM
> To: ids@iiug.org
> Subject: Re: Question on HPL --- FAILURE IN LOADING TO .... [28583]
>
> Art,
> Your detail notes and experience on RAW TABLE to share are certainly
> appreciated.
> My original topic was "HPL", has become an experiment on raw, and then
now I
> have to ask a question on unrelated or somewhat related topic.
> OK, so yesterday I tried to load those 250 mil rows (from an external
table) into
> the target table of different instance but in the same host, and I ran
into error 908,
> I even tried tcp protocol (which I should not since both instances are
in the same
> box), it crashed the target instance. Any idea?
>
> SQL: New Run Modify Use-editor Output Choose Save Info Drop Exit
Modify the
> current SQL statements using the SQL editor.
> ----------------------- target_db@target_instance --------- Press
CTRL-W for Help ---
> ----- INSERT INTO target_table SELECT * FROM
> source_db@source_instance:external_source_table
>
> 908: Attempt to connect to database server (source_instance) failed.>
> ________________________________
> From: Art Kagel <art.kagel@gmail.com>
> To: ids@iiug.org
> Sent: Thursday, October 18, 2012 8:19 PM
> Subject: Re: Question on HPL [28573]
>
> Kern:
>
> Very important to keep in mind when working with RAW tables:
>
> 1. RAW mode tables do not support PRIMARY or UNIQUE key constraints.
>
> 1. You will have to drop those and recreate them after altering the
>
> table's mode back to "STANDARD".
>
> 2. If those constraints rely on "hidden" indexes (ones whose names
>
> begin with a space) the indexes will have to be rebuild also so this
may
>
> add runtime.
>
> 3. If there are foreign keys on other tables that reference the
>
> dropped constraints, those foreign key constraints will drop as well
and
>
> will have to be recreated which may mean rebuilding the supporting
indexes
>
> on those keys (if the indexes are hidden) and will require that all of
the
>
> keys in the dependent table be re-validated against the table you were
>
> loading.
>
> 4. This means that the total runtime of a load may actually be longer
>
> if you alter it to "RAW" and back to "STANDARD" before you can put the
>
> database back into service.
>
> 2. If you load into a table in "RAW" mode, you have to take a level
>
> zero archive after altering the table back to "STANDARD" mode so that
you
>
> can recover after a hard crash without having to repeat the data load.
>
> Art S. Kagel
> Advanced DataTools (www.advancedatatools.com)
> Blog: http://informix-myview.blogspot.com/
>
> Disclaimer: Please keep in mind that my own opinions are my own
opinions and
> do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other
> organization with which I am associated either explicitly, implicitly,
or by
> inference. Neither do those opinions reflect those of other
individuals affiliated with
> any entity with which I am affiliated nor those of the entities
themselves.
>
> On Thu, Oct 18, 2012 at 8:58 PM, Kern Doe <kern_doe@yahoo.com> wrote:
>
> > I've tried this unloading involved "raw table" -- the result has
blown
> > my mind away.
> > My first test result was 9 minutes to unload 63 mil rows while hpl
> > took about
> > 1 hour.
> > My 2nd test was 38 min for 250mil rows, amazing!! I will test the
load
> > soon.
> >
> > Reinhard, thank you for the script, I haven't tried it, there are
some
> > parts I believe you meant differently, please see my comments.
> > Thank you Reinhard.
> >
> > ________________________________
> > From: "Habichtsberg, Reinhard" <RHabichtsberg@arz-emmendingen.de>
> > To: ids@iiug.org
> > Sent: Thursday, October 18, 2012 2:47 AM
> > Subject: RE: Question on HPL [28562]
> >
> > If the tables resp. the unload files will grow too big you may even
> > unload and load using external tables and pipes with no need of
> > storage
> > space:
> >
> > Solaris 10, Informix 11.70.FC5
> > Example shell script:
> > #!/usr/bin/bash
> > # Target table was created in target database and has same schema as
> > source table # Two Informix Server: source_server and target_server,
> > may also work if source_server and target_server and source_database
> > and target_database are the same # FORMAT 'informix' may not work
for
> > tables with byte or text columns
> >
> > # Target table in target database set to type raw due to express
mode:
> > dbaccess target_database@target_server - << EOF alter table
> > target_table type (raw); EOF
> >
> > # Create pipe for loading:
> > mkfifo /tmp/target_table.lo
> >
> > # Create pipe for unloading:
> > mkfifo /tmp/target_table.un
> >
> > # Create external table in target database:
> > dbaccess target_database@target_server - << EOF CREATE EXTERNAL
> TABLE
> > ext_target_table sameas target_table USING (DATAFILES
> > ('PIPE:/tmp/target_table.lo'), FORMAT 'informix', REJECTFILE
> > 'target_database_target_table.log',
> > EXPRESS);
> > EOF
> >
> > # Create external table in source database:
> > dbaccess source_database@source_server - << EOF CREATE EXTERNAL
> TABLE
> > ext_source_table SAMEAS source_table USING (DATAFILES
> > ('PIPE:/tmp/source_table.un'), FORMAT 'informix'); EOF
> >
> > # Open pipe in background:
> > cat > /tmp/$tabelle.lo < /tmp/$tabelle.un &
> >
> > (you probably meant cat > /tmp/target_table.lo <
/tmp/target_table.un
> > &)
> >
> > # Insert Import Command in background:
> > dbaccess target_database@target_Server - <<EOF & insert into
> >