CSV’nin gücüyle Postgres verilerinizi yedekleyin, başka bir yere aktarın ve gerektiğinde içe aktarın.
CSV dosyaları, veri depolama sürecini basitleştirir. Biçim satır ve sütun tabanlı olduğundan, CSV ilişkisel bir veritabanına iyi bir şekilde çevrilir.
Bir CSV dosyasını bir veritabanına almak ve bir veritabanından bir CSV dosyasına aktarmak kolaydır. PostgreSQL ile bunu yapmak için kullanabileceğiniz birkaç farklı teknik vardır.
CSV Dosyası Oluşturun
Kendi CSV dosyanızı oluşturmak için kullanabileceğiniz bazı örnek CSV verileri :
id,firstname,lastname,email
1,Riannon,Pulsifer,Riannon.Pulsifer@example.com
2,Moyna,Palocz,Moyna.Palocz@example.com
3,Roslyn,Bearnard,Roslyn.Bearnard@example.com
4,Gloria,Aldric,Gloria.Aldric@example.com
5,Felice,Greenwald,Felice.Greenwald@example.com
CSV dosyasını PostgreSQL veritabanına aktarmadan önce, CSV dosya biçimiyle eşleşen bir tablo oluşturmanız gerekecektir. Postgres tablosu oluşturmak için aşağıdaki kodu kullanın.
CREATE TABLE employees(id int NOT NULL,
firstname char(20),
lastname char(20),
email char(50));
CSV Dosyalarını PostgreSQL’e Aktarın
CSV dosyalarını sunucudaki veya istemci makinedeki bir Postgres tablosuna aktarabilirsiniz.
Sunucu Tarafında CSV Dosyalarını İçe Aktarın
Bir CSV dosyasını bir PostgreSQL sunucusuna aktarmak için PostgreSQL COPY komutunu ve FROM anahtar sözcüğünü kullanın. Bu, yapının eşleşmesi koşuluyla, bir CSV dosyasındaki verileri bir Postgres tablosuna kopyalamanıza olanak tanır. Örnek CSV dosyasını çalışanlar tablosuna kopyalamak için aşağıdaki kodu kullanın:
COPY employees(id,firstname,lastname,email)
FROM ‘/tmp/sample.csv’
DELIMITER ‘,’
CSV HEADER;
Yukarıdaki örnekteki yol mutlaktır. İsterseniz Postgres veri dizininize göre bir yol kullanabilirsiniz.
Verileri başlıklarla veya başlıklar olmadan kopyalayabilirsiniz, bu nedenle ihtiyacınız yoksa son kod satırını atlamaktan çekinmeyin.
İstemci Tarafında CSV Dosyalarını İçe Aktarın
Bir istemci makinede, CSV dosyasını içe aktarmak için psql copy komutunu kullanın. Örnek CSV dosyasını çalışanlar tablosuna kopyalamak için psql komut isteminde aşağıdaki kodu çalıştırın.
copy employees FROM ‘/tmp/sample.csv’ DELIMITER ‘,’ CSV HEADER;
PostgreSQL’den CSV Dosyalarını Dışa Aktarma
İçe aktarmada olduğu gibi, bir CSV dosyasını sunucu tarafında veya istemci tarafında da dışa aktarabilirsiniz.
Sunucu Tarafında CSV Dosyalarını Dışa Aktarma
Verileri bir CSV dosyasına aktarmak için COPY komutunu ve TO anahtar sözcüğünü kullanın. Kaynak tabloyu ve hedef dosyanın yolunu belirtmeniz gerekir. Bu sefer, yol mutlak olmalıdır:
COPY employees TO ‘/tmp/employees.csv’ CSV HEADER;
Veritabanından yalnızca bazı satırları dışa aktarmanız gerekiyorsa, SELECT komutunu aşağıdaki gibi kullanın:
COPY (SELECT * FROM employees where firstname=’Moyna’) TO ‘/tmp/employees-moyna.csv’ CSV HEADER;
CSV Dosyalarını İstemci Tarafında Dışa Aktarın
Verileri istemci tarafında dışa aktarmak için psql komut isteminde copy komutunu ve TO anahtar sözcüğünü kullanın:
copy employees TO ‘path-to-file.csv’ CSV header;
Veritabanı Bağdaştırıcısı Kullanma
Bir CSV dosyasını içe aktarmak için terminali kullanmanız gerekmez. Tercih ettiğiniz programlama dilini kullanarak verileri bir imleç nesnesi aracılığıyla içe aktarabilirsiniz. Örneğin Python ile çalışıyorsanız PostgreSQL sunucusuna bağlanıp COPY komutunu çalıştırabilirsiniz.
Bunun için psycopg2 gibi bir veritabanı bağdaştırıcısı aracılığıyla Python’u Postgres’e bağlamanız gerekir.
pip install psycopg2
Aşağıdaki kodu kullanarak veritabanına bağlanın:
import psycopg2;
connection = psycopg.connect(
database=”employee_db”,
host=”localhost”
user=”postgres”,
password=”password”,
)
Ardından bir imleç nesnesi oluşturun ve bunu COPY komutunu yürütmek için kullanın:
cursor = connection.cursor()
cursor.execute(
“COPY employees(id,firstname,lastname,email)
FROM ‘/tmp/sample.csv’
DELIMITER ‘,’
CSV HEADER;”
)
connection.close()
PostgreSQL Verilerinizi CSV Kolaylığıyla Yönetin
PostgreSQL ve CSV dosyalarını kullanarak verileri içe ve dışa aktarmak basit bir işlemdir. İstemcide veya sunucuda psql komutlarını kullanabilir veya programlı olarak bir veritabanı bağdaştırıcısı kullanabilirsiniz.
Daha çok bir GUI kullanıcısıysanız, pgAdmin aracını kullanmayı düşünün. Verileri daha da kolay içe ve dışa aktarmanıza yardımcı olabilecek açık kaynaklı bir GUI uygulamasıdır.