DBAtlas · Veritabanı operasyon atlası

Veriyi dışa aktar (CSV / dosyaya)

Oracle

-- SQL*Plus ile CSV (spool)
SET MARKUP CSV ON
SPOOL musteri.csv
SELECT id, ad, email FROM musteri;
SPOOL OFF

-- Data Pump ile mantıksal yedek (kabuktan)
expdp kullanici/parola tables=musteri directory=dir_dmp dumpfile=musteri.dmp

CSV için SQL*Plus SET MARKUP CSV ON + SPOOL kullanılır (12.2+). Şema/tablo taşımak için Data Pump (expdp) ikili .dmp üretir; başka Oracle'a impdp ile alınır.

PostgreSQL

-- Sunucu tarafı
COPY (SELECT id, ad, email FROM musteri) TO '/veri/musteri.csv' WITH (FORMAT csv, HEADER true);

-- İstemci tarafı (psql)
\copy (SELECT id, ad, email FROM musteri) TO 'musteri.csv' WITH (FORMAT csv, HEADER true)

COPY ... TO sorgu sonucunu dosyaya yazar (sunucu tarafı, yetki ister); psql \copy istemci dosyasına yazar. HEADER true başlık satırı ekler.

MySQL

-- Sunucu tarafı dosyaya
SELECT id, ad, email FROM musteri
INTO OUTFILE '/veri/musteri.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

-- İstemciye: mysql -e ... > dosya (sekme ayraçlı)
-- mysql -e "SELECT * FROM musteri" magaza > musteri.tsv

SELECT ... INTO OUTFILE dosyayı sunucuda oluşturur (secure_file_priv yolu ve FILE yetkisi gerekir, üzerine yazamaz). İstemci tarafına çıktı için mysql -e ile yönlendirme kullanılır.

SQL Server

-- bcp ile dışa aktar (kabuktan)
bcp "SELECT id, ad, email FROM magaza.dbo.musteri" queryout musteri.csv -c -t, -S sunucu -T

-- veya tüm tablo
bcp magaza.dbo.musteri out musteri.dat -n -S sunucu -T

bcp out/queryout ile veri dosyaya yazılır: -c karakter modu, -t, alan ayırıcı, -n native ikili biçim. Sorgu sonucu için queryout kullanılır. SSMS'de 'Results to File' da bir seçenektir.

MongoDB

# CSV dışa aktar (alanları belirtmek gerekir)
mongoexport --db=magaza --collection=musteri --type=csv --fields=id,ad,email --out=musteri.csv

# JSON olarak
mongoexport --db=magaza --collection=musteri --out=musteri.json

mongoexport CSV/JSON üretir; CSV'de --fields ile kolonlar açıkça verilmelidir. Sorguyla filtreleme için --query kullanılır. İkili tam yedek için mongodump tercih edilir.

Redis

# Anahtarları tara (üretimde KEYS yerine SCAN)
redis-cli --scan --pattern 'musteri:*' > anahtarlar.txt

# Tam veri yedeği için RDB snapshot'ını istemci tarafına indir (bloklamaz)
redis-cli --rdb ./dump.rdb

Yapılandırılmış CSV dışa aktarımı yerleşik değildir. Anahtar listesi için --scan (bloklamayan), tam veri için RDB dosyası kullanılır: redis-cli --rdb sunucudan arka planda üretilen snapshot'ı yerel dosyaya indirir; sunucuda dosya istiyorsanız BGSAVE kullanın. SAVE ana thread'i bloklar, üretimde kullanmayın. Değerleri de almak için scan sonucu döngüyle okunur.

Elasticsearch

# elasticdump ile dışa aktar
elasticdump --input=http://localhost:9200/musteri --output=musteri.json --type=data

# Büyük veride scroll / point-in-time ile sayfalı okuma
GET musteri/_search?scroll=1m
{ "size": 1000, "query": { "match_all": {} } }

Doğrudan CSV export yoktur. Tüm veriyi almak için elasticdump ya da scroll/PIT (point-in-time) ile sayfalayarak _search kullanılır. CSV'ye çevirmek için Logstash csv output veya harici araç gerekir.

DBAtlas'ta aç →