2017-02-09 1 views
0

私はMySQLにインポートする1​​3GBの.txtファイルを持っていますが、すべてのデータをインポートしたくありません。例えば、完全に空であるか無関係の情報を含む多くの列があります - 私は〜100/360をインポートしたいだけです。私が必要とする列のヘッダーのみを作成する場合、アップロードする.txtファイルから特定の対応するデータを選択できますか?テキストファイルからMySQLにデータを選択的にインポートすることはできますか?

通常、私は余分なデータを削除するためにテキストエディタを使用しますが、私はこのサイズのファイルを扱うことができるテキストエディタを持っていません。

+0

表示されている行と表示されていない行を表示します。 grep、awk、またはsedでフィルタリングし、このフィルタ処理されたデータを直接インポートすることができます –

+1

[スレッド]の2番目の答えを参照してください(http://stackoverflow.com/questions/4202564/how-to-insert-selected-columns- from-a-csv-file-to-a-mysql-database-using-load-da) –

答えて

0

入力ファイルの特定の列は、データベース列ではなくユーザー定義の変数に割り当てることで無視できます。

load data infile '/tmp/so42140337.csv' 
into table so42140337 
fields terminated by ',' 
lines terminated by '\n' 
(c1,@dummy,@dummy,c2); 

それを提出あなたの入力の大きさも考える。例えば

あなたは4列のCSVファイルを持っていた場合

はちょうどあなたがこのような何かを行うことができ、あなたのテーブルにカラム1と4をインポートしたいです1つのコマンドでファイル全体をインポートするのではなく、チャンクでインポートする方が効率的です。この blog postのパターンに従って、 pt-fifo-splitツールを使用できます。

関連する問題