Выгрузить данные (CSV / в файл)
Oracle
-- CSV with SQL*Plus (spool)
SET MARKUP CSV ON
SPOOL customer.csv
SELECT id, name, email FROM customer;
SPOOL OFF
-- Logical export with Data Pump (from the shell)
expdp app_user/password tables=customer directory=dir_dmp dumpfile=customer.dmpДля CSV используйте SQL*Plus SET MARKUP CSV ON + SPOOL (12.2+). Для переноса схем/таблиц Data Pump (expdp) создаёт бинарный .dmp, который импортируется в другую базу Oracle через impdp.
PostgreSQL
-- Server side
COPY (SELECT id, name, email FROM customer) TO '/data/customer.csv' WITH (FORMAT csv, HEADER true);
-- Client side (psql)
\copy (SELECT id, name, email FROM customer) TO 'customer.csv' WITH (FORMAT csv, HEADER true)COPY ... TO записывает результат запроса в файл (на сервере, требует привилегий); psql \copy пишет в файл клиента. HEADER true добавляет строку заголовка.
MySQL
-- To a file on the server
SELECT id, name, email FROM customer
INTO OUTFILE '/data/customer.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
-- To the client: mysql -e ... > file (tab-separated)
-- mysql -e "SELECT * FROM customer" shop > customer.tsvSELECT ... INTO OUTFILE создаёт файл на сервере (требуются путь secure_file_priv и привилегия FILE; перезаписывать не может). Для вывода на стороне клиента перенаправляйте через mysql -e.
SQL Server
-- Export with bcp (from the shell)
bcp "SELECT id, name, email FROM shop.dbo.customer" queryout customer.csv -c -t, -S server -T
-- or the whole table
bcp shop.dbo.customer out customer.dat -n -S server -Tbcp out/queryout записывает данные в файл: -c — символьный режим, -t, — разделитель полей, -n — нативный бинарный формат. Для результата запроса используйте queryout. Также можно использовать «Results to File» в SSMS.
MongoDB
# Export CSV (fields must be specified)
mongoexport --db=shop --collection=customer --type=csv --fields=id,name,email --out=customer.csv
# As JSON
mongoexport --db=shop --collection=customer --out=customer.jsonmongoexport создаёт CSV/JSON; для CSV столбцы нужно явно указать через --fields. Для фильтрации используйте --query. Для полного бинарного бэкапа предпочтителен mongodump.
Redis
# Scan keys (SCAN instead of KEYS in production)
redis-cli --scan --pattern 'customer:*' > keys.txt
# For a full data backup, download an RDB snapshot to the client side (non-blocking)
redis-cli --rdb ./dump.rdbВстроенной структурированной выгрузки в CSV нет. Для списка ключей используйте --scan (неблокирующий), для полных данных — файл RDB: redis-cli --rdb скачивает в локальный файл снимок, сгенерированный в фоне на сервере; если файл нужен на сервере, используйте BGSAVE. SAVE блокирует основной поток; не используйте в продакшене. Чтобы получить и значения, читайте результат сканирования в цикле.
Elasticsearch
# Export with elasticdump
elasticdump --input=http://localhost:9200/customer --output=customer.json --type=data
# For large data, paged reads with scroll / point-in-time
GET customer/_search?scroll=1m
{ "size": 1000, "query": { "match_all": {} } }Прямой выгрузки в CSV нет. Чтобы получить все данные, используйте elasticdump или постранично читайте _search через scroll/PIT (point-in-time). Для преобразования в CSV нужен вывод csv в Logstash или внешний инструмент.