Re: raw data into table process - Mailing list pgsql-general

From Russell Smith
Subject Re: raw data into table process
Date
Msg-id 46CC1C9D.4080304@pws.com.au
Whole thread Raw
In response to raw data into table process  (novice <user.postgresql@gmail.com>)
List pgsql-general
novice wrote:
> I am trying to record the following entries into a table.  I'm curious
> to know if there's an efficient/effective way of doing this?  This
> entries come from an ancient datalogger (note: separated by space and
> uses YY/MM/DD format to record date)
>
> Plain file sample.dat
>
> 3665   OK           BS 07/08/16 07:28
> 3665   CC           BS 07/08/16 07:29
> 3665   CS           BS 07/08/16 07:29
> 3665   CS           BS 07/08/16 07:29
> 4532   OK           BS 07/08/16 07:34
> 4004   OK           BS 07/08/16 07:51
> 3991   OK           BS 07/08/16 07:54
>
>
> This is the table that I'm adding the entries to
>
> CREATE TABLE maintenance
> (
>   maintenance_id SERIAL PRIMARY KEY,
>   meter_id integer,
>   status text,
>   inspector text,
>   inspection_date timestamp with time zone,
> )
>

If your on unix, why not use those tools first?
awk '{print $1 "\t" $2 "\t" $3 "\t" $4 " " $5}' sample.dat > sample.tab

-- Begin SQL script
CREATE TEMP TABLE maintenance_tmp (
   meter_id integer,
   status text,
   inspector text,
   inspection_date timestamp with time zone
);

SET datestyle='ymd';
\copy maintenance_tmp FROM sample.tab
INSERT INTO maintenance (meter_id, status, inspector, inspection_date)
   SELECT DISTINCT meter_id, status, inspector, inspection_date FROM
          maintenance_tmp ORDER BY inpsection_date;

ANALYZE maintenance;

-- End SQL Script
[snip]

> Any thoughts and suggestions welcome.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
>


pgsql-general by date:

Previous
From: "Asko Oja"
Date:
Subject: Re: Auto-partitioning?
Next
From: Bill Thoen
Date:
Subject: Re: PG Seg Faults Performing a Query