非常に大きな 3.5 GB の CSV ファイルがあり、さまざまな入力に基づいて結果を読み取り、並べ替え、フィルター処理できるようにしたいと考えています。それをMySQLデータベースにインポートしてそこから移動できると確信していますが、CSVをアップロードするだけで残りが自動的に実行されるプログラムまたはオンラインツールはありますか?
10 に答える
PostgreSQL 9.1+ とそのfile_fdw (File Foreign Data Wrapper) を試すことができます。これは、CSV ファイルがテーブルであるふりをします。CSV ファイルを同じ名前の別の CSV ファイルに置き換えた場合、新しい情報がデータベースにすぐに表示されます。
基本的に CSV データから実際のデータベース テーブルを作成するマテリアライズド ビュー(PG 9.3+) を使用することで、パフォーマンスを向上させることができます。pgAgentを使用して、スケジュールに従って具体化されたビューを更新できます。
もう 1 つの方法は、COPYステートメントを使用することです。
/* the columns in this table are the same as the columns in your csv: */
create table if not exists my_csv (
some_field text, ...
);
/* COPY appends, so truncate the table if loading fresh data again: */
truncate table my_csv;
/*
you need to be a postgres superuser to use COPY
use psql \copy if you can't be superuser
put the csv file in /srv/vendor-name/
*/
copy
my_csv
from
'/srv/vendor-name/my.csv'
with (
format csv
);
300万行を超えるcsvファイルでも同じ問題がありました。OpenOffice Calc、Writer、または Notepad++ で開くことができませんでした。
次に、csvにリンクできるOpenOffice 4ベースを貧弱なソリューションとして使用しました。簡単な説明 (ドイツ語の OpenOffice を使用しているため、言葉遣いが正しくない場合があります)。
- 準備: ファイルには .csv 拡張子が必要です。最初の行にはフィールド名が必要です。混乱を避けるために、ファイルを新しいディレクトリに唯一のファイルとして置きます。そうしないと、すべてのファイルがインポートされます。
- ファイル - 新規 - データベース。アシスタントが立ち上がるはずです。
- 既存のデータベースに接続し、TEXT 形式にします (ファイルの拡張子は .csv である必要があります)。
- 次。ファイルへのパスを選択します (奇妙なことに、ファイル自体ではありません)。csv を選択します。正しいフィールド区切り文字を選択してください。
- 次と終了。
- 新しく作成したデータベースの名前を選択します。
すべてが正しければ、新しく作成されたテーブルを含むテーブル ビューが表示されます。
gVim を使用して、メモ帳のようにファイルを表示することもできます。たとえば、最初の列の説明行を追加できます。
このテーブルでクエリを作成できます。テーブルにはインデックスがないため、非常に低速です。OpenOffice は砂時計を使用しないため、システムがクラッシュしたように見える場合があります。
ベースは非常に限られており、初期のベータ版のように感じます. その DB に新しいテーブルを作成することはできません (したがって、テキスト ファイルから選択する挿入クエリはありません)。
csv へのエクスポートはできません。妥当なサイズのクエリ結果は、(時間がかかる) コピーして calc に貼り付けることができます。
〜1億レコードのファイルがあり、Linuxコマンドラインを使用してファイルを表示しました(見てみました)。
$ 以上の myBigFile.CSV
また
$ nano myBigFile.CSV
6 GBのファイルで動作しました
アチョを試すことができます。これはオンライン ツールであり、無料の試用版も提供しています。そのインターフェースはかなり素晴らしく直感的に見えるので、私はそれをお勧めします. また、値の並べ替えやフィルタリングなど、あなたが言及したすべての機能があります。基本的に、これを使用してデータセットのサイズを縮小し、Python にエクスポートしてさらに分析を行います。