外部表

 

vim tab3.dat
Alvin,Tolliver,1976
Kenneth,Baer,1963
Mary,Dube,1973

drop table tab3;
CREATE TABLE tab3 (first_name CHAR(15), last_name CHAR(20), year_of_birth CHAR(4))
ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY ORA_DIR
ACCESS PARAMETERS (RECORDS DELIMITED BY '\n' FIELDS TERMINATED BY ','
(first_name CHAR(7),
last_name CHAR(8),
year_of_birth CHAR(4)))
LOCATION ('tab3.dat'));

select * from tab3;

 

CSVストレージエンジン
http://nippondanji.blogspot.com/2010/03/innodb.html

SELECT * INTO OUTFILE '/tmp/tab1.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM tab1;

CREATE TABLE `tab1csv` (
`col1` int(11) not NULL,
`col2` varchar(100) not NULL
) ENGINE=CSV
;

cd /var/lib/mysql/test
cp /tmp/tab1.csv tab1csv.CSV

select * from tab1csv;

 

https://lets.postgresql.jp/documents/technical/contrib/file_fdw


CREATE EXTENSION file_fdw;
CREATE SERVER fs FOREIGN DATA WRAPPER file_fdw;

\dx
\dx+
\des+

vim /tmp/file.csv
123,test1
aaa,test2


drop foreign table external_csv;

CREATE FOREIGN TABLE external_csv
(id varchar(10), name text)
SERVER fs
OPTIONS (filename '/tmp/file.csv', format 'csv', encoding 'utf8');

SELECT * FROM external_csv;

\det

oracleと同じで、csvファイルに空行があるとエラーとなる

Hadoop クラスターまたは Azure Blob Storage であれば作成できる模様。
CSVを用いた外部表はサポートされていない模様