私はRDBMSの経験がかなり豊富なPython開発者です。かなり大量のデータ(約500GB)を処理する必要があります。データは、s3バケット内の約1200のcsvファイルに保存されています。私はPythonでスクリプトを作成し、サーバー上で実行できます。ただし、遅すぎます。現在の速度とデータ量に基づくと、すべてのファイルを処理するのに約50日かかります(もちろん、締め切りはそれよりかなり前です)。
注:処理は、基本的なETLタイプのものの一種であり、ひどいものではありません。PostgreSQLの一時スキーマに簡単にポンプで送り、スクリプトを実行することができます。しかし、繰り返しになりますが、私の最初のテストから、これは遅くなる方法です。
注:新しいPostgreSQL9.1データベースが最終的な宛先になります。
そのため、EC2インスタンスの束をスピンアップして、それらをバッチで(並行して)実行しようと考えていました。でも、こんなことをしたことがないので、アイデアなどを探していました。
繰り返しになりますが、私はPython開発者なので、Fabric+botoが有望であるように思われます。私は時々botoを使用しましたが、Fabricの使用経験はありません。
読書/調査から、これはおそらくHadoopにとって素晴らしい仕事だと思いますが、私はそれを知らず、それを採用する余裕がなく、タイムラインでは学習曲線や誰かを採用することができません。私もそうすべきではありません、それは一種の一度限りの取引です。したがって、本当にエレガントなソリューションを構築する必要はありません。私はそれが機能し、年末までにすべてのデータを取得できるようにする必要があります。
また、これは単純なスタックオーバーフローではないことを私は知っています-一種の質問(「Pythonでリストを逆にする方法」のようなもの)。しかし、私が望んでいるのは、誰かがこれを読んで、「たとえば、私は似たようなことをしてXYZを使用する...それは素晴らしいことです!」ということです。
私が求めているのは、このタスクを実行するために使用できることを誰かが知っていることだと思います(私がPython開発者であり、HadoopまたはJavaを知らない場合、 Hadoopのような新しいテクノロジーを学んだり、新しい言語を学んだりします)
読んでくれてありがとう。ご提案をお待ちしております。