2016-12-29 32 views
1

我有一個30 GB製表符分隔的文本文件與11列。我想將它導入到單列PostgreSQL表中。我怎樣才能做到這一點?如何將多個列標籤分離的文本文件導入單列PostgreSQL表?

我應該在\ copy命令中爲分隔符變量放置什麼?每個字符都可能存在於文本文件中。我如何強制PostgreSQL將文件視爲單列文件?

下面是第5行的數據,有些行不是英文,可以是任何語言。

01B27BE8 Evaluating Polarity for Verbal Phraseological Units evaluating polarity for verbal phraseological units 2014 2014/11/16 10.1007/978-3-319-13647-9_19 mexican international conference on artificial intelligence micai  42D7146F 19517 
027D0030 Automatic Monitoring the Content of Audio Broadcasted by Internet Radio Stations automatic monitoring the content of audio broadcasted by internet radio stations 2012 2012/10/27 10.1007/978-3-642-37807-2_11 mexican international conference on artificial intelligence micai 42D7146F 19444 
7CFE299E Towards a set of Measures for Evaluating Software Agent Autonomytowards a set of measures for evaluating software agent autonomy 2009 2009/11 10.1109/MICAI.2009.15 mexican international conference on artificial intelligence micai  42D7146F 18870 
59BEBE1C Learning Probability Densities of Optimization Problems with Constraints and Uncertainty learning probability densities of optimization problems with constraints and uncertainty 2008 2008/10/27 10.1007/978-3-540-88636-5_25 mexican international conference on artificial intelligence micai  42D7146F 19444 
5873C011 Towards a Model for an Immune System towards a model for an immune system 2002 2002/04/22 10.1007/3-540-46016-0_42 mexican international conference on artificial intelligence micai  42D7146F19177 
+0

首先,在表中有11列成單列不是一個好主意。爲了給你一個解決方案,請嘗試使用\ n作爲分隔符。 – Viki888

+0

更改文件,將列合併爲只包含一列的大CSV。 (使用bash http://stackoverflow.com/questions/19602181/bash-extract-one-column-of-a-csv-file),然後使用複製。 – PeterRing

+0

@ Viki888我需要首先將數據導入到單列臨時表中,然後我將更改它。關於'\ n'分隔符,我認爲這會導致整個文件成爲一個具有1億列的單行文件。 (我的文本文件有1億行) –

回答

1

使用例如\x01作爲分隔符適用於我:

\copy the_table from 'data.txt' with (delimiter E'\x01') 
相關問題