Postgresql Copy komutu ile import

Postgresql Copy komutu ile import,COPY komutu yardımı ile tablolarımızı dizine aktarabilir ve dizinden tablolara aktarabiliriz. Bunu yaparken farklı programlar kullanabilir veya  istenilen kolonları seçebiliriz.

Postgrseql import işlemleri yaparken belirtilen dizindeki dosyamızı tablomuza ekleyebiliriz.

POSTGRESQL de tablolarımıza text,csv,data gibi dosyaları import edebiliriz.  İmport ederken farklı  parametreler kullanarak işletim sisteminde komutları kullanabiliriz.

Aşağıdaki örneğimizde csv uzantısında ki dosyayı tablomuza insert edeceğiz.

İlk olarak aşağıdaki gibi tablomuzu oluşturuyoruz.


CREATE TYPE public.mpaa_rating AS ENUM
    ('G', 'PG', 'PG-13', 'R', 'NC-17');
CREATE DOMAIN public.year
    AS integer;
ALTER DOMAIN public.year                   
    ADD CONSTRAINT year_check CHECK (VALUE >= 1901 AND VALUE <= 2155);
CREATE TABLE public.filmcopy
(
    film_id integer,
    title text COLLATE pg_catalog."default",
    description text COLLATE pg_catalog."default",
    release_year year,
    language_id integer,
    original_language_id integer,
    rental_duration smallint,
    rental_rate numeric(4,2),
    length smallint,
    replacement_cost numeric(5,2),
    rating mpaa_rating,
    last_update timestamp with time zone,
    special_features text[] COLLATE pg_catalog."default",
    fulltext tsvector
)

Tablomuzu oluşturduktan sonra  aşağıdaki gibi copy komutunu çalıştırarak yukarıda oluşturduğumuz tabloya verileri ekliyoruz.

COPY filmcopy FROM '/var/lib/pgsql/13/backups/filmtable.csv' DELIMITER '|';

Yukarıdaki örnekte Delimeter olarak “|” kullanılmıştır ve başarılı şekilde tabloya  import edilmiştir.

COPY komutu yardımı ile web servisten istek yapabilir ve bunun sonucunu  tabloya yazdırabiliriz.

İlk olarak tablomuzu oluşturuyoruz.

create table curlwebsite(body text );

Tablomuza aşağıdaki şekilde insert yapıyoruz.

COPY curlwebsite FROM PROGRAM ‘curl https://jsonplaceholder.typicode.com/posts’;

Yukarıda tablomuza web servisten gelen sonucu yazdırdık  bu örnek te  COPY komutu ile işletim sistemi üzerinde çalıştırabileceğimiz disk boyutunu alıyor ve oluşturduğumuz tabloya yazdırıyoruz.

İlk olarak tablo location_size isminde tablomuzu oluşturalım.

CREATE TABLE location_size(file_name text);

Tablomuzu oluşturduktan sonra aşağıdaki gibi sorgumuz çalıştırarak sorgu  sonucunu tabloya insert edebiliriz.

COPY location_size FROM PROGRAM 'du -sh  /var/lib/pgsql/13/backups/' WITH (format 'csv');

Postgresql’in error loglarını  tabloya yazdırmak aşağıdaki komutu kullanabilirsiniz.

COPY errorlog FROM PROGRAM 'cat /var/lib/pgsql/13/data/log/postgresql-Sat.log |grep ERROR'  DELIMITER '\' CSV HEADER;

Loading