Toplu veri yükle (CSV / dosyadan)
Oracle
-- SQL*Loader (kabuktan)
sqlldr kullanici/parola control=musteri.ctl log=yukle.log
-- musteri.ctl içeriği:
-- LOAD DATA INFILE 'musteri.csv'
-- INTO TABLE musteri FIELDS TERMINATED BY ','
-- (id, ad, email)
-- Alternatif: external table ile
CREATE TABLE ext_musteri (id NUMBER, ad VARCHAR2(100))
ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY dir_csv
ACCESS PARAMETERS (FIELDS TERMINATED BY ',') LOCATION ('musteri.csv'));En yaygın araç SQL*Loader'dır (control dosyasıyla). Dosyayı sorgu gibi okumak için external table kullanılır. Büyük hacimde direct path load (DIRECT=TRUE) hızlıdır.
PostgreSQL
-- Sunucu tarafı (dosya sunucuda, superuser/pg_read_server_files gerekir)
COPY musteri (id, ad, email) FROM '/veri/musteri.csv' WITH (FORMAT csv, HEADER true);
-- İstemci tarafı (psql, dosya istemcide)
\copy musteri (id, ad, email) FROM 'musteri.csv' WITH (FORMAT csv, HEADER true)COPY sunucudaki dosyayı okur ve yetki ister; psql \copy ise istemci dosyasını okur, ek yetki gerekmez. CSV yüklemenin en hızlı yoludur.
MySQL
-- Sunucu tarafı
LOAD DATA INFILE '/veri/musteri.csv' INTO TABLE musteri
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES;
-- İstemci dosyasından
LOAD DATA LOCAL INFILE 'musteri.csv' INTO TABLE musteri
FIELDS TERMINATED BY ',' IGNORE 1 LINES;LOAD DATA INFILE toplu yüklemenin en hızlı yoludur. LOCAL istemci dosyasını okur ve hem sunucuda (local_infile=ON) hem istemcide etkinleştirilmelidir. secure_file_priv sunucu yolunu kısıtlar.
SQL Server
-- T-SQL BULK INSERT
BULK INSERT musteri FROM 'C:\veri\musteri.csv'
WITH (FORMAT='CSV', FIRSTROW=2, FIELDTERMINATOR=',', ROWTERMINATOR='0x0a');
-- Kabuktan bcp
bcp veritabani.dbo.musteri in musteri.csv -c -t, -S sunucu -TBULK INSERT dosyayı SQL Server servis hesabının erişebildiği yoldan okur. bcp komut satırı aracıdır; -c karakter modu, -t alan ayırıcı. En hızlısı için TABLOCK ile minimal logging hedeflenir.
MongoDB
# CSV / JSON içe aktar (kabuktan)
mongoimport --db=magaza --collection=musteri --type=csv --headerline --file=musteri.csv
# JSON dizisi için
mongoimport --db=magaza --collection=musteri --file=musteri.json --jsonArraymongoimport CSV/TSV/JSON yükler; --headerline ilk satırı alan adı sayar. Var olan kayıtları güncellemek için --mode=upsert --upsertFields kullanılır. Büyük veride --numInsertionWorkers hızlandırır.
Redis
# En hızlı: protokol biçiminde besleyip pipe et
cat komutlar.txt | redis-cli --pipe
# komutlar.txt satırları örn:
# SET musteri:1 "Ali"
# SET musteri:2 "Veli"Toplu yükleme için redis-cli --pipe (mass insert) kullanılır; RESP protokol biçimindeki komutları tek bağlantıdan akıtarak çok hızlıdır. Alternatif olarak pipeline ile komutlar gruplanır.
Elasticsearch
# _bulk API (NDJSON: her doküman için işlem + kaynak satırı)
curl -s -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/musteri/_bulk' --data-binary @veri.ndjson
# veri.ndjson içeriği:
# { "index": {} }
# { "id": 1, "ad": "Ali" }
# { "index": {} }
# { "id": 2, "ad": "Veli" }_bulk API NDJSON alır (her belge için işlem satırı + veri satırı, dosya \n ile bitmeli). CSV için Logstash, Filebeat veya elasticdump kullanılır. Yükleme sırasında refresh_interval'i kapatmak hızlandırır.