2017-01-26 4 views
1

私が取り組んでいるプロジェクトのガイダンスを探しています。参考までに、私はHTML、CSSに精通していて、JavaScriptに精通していて、コーディングの知識がなくなっています。 私は無作為に2つの群データセットを分割するWebアプリケーションの構築に関する助言を求める

  • に次のようにハイレベルのワークフローにウェブUIを介し

    1. ユーザーのアップロードCSVファイルファイルの

    2. アプリケーションの分割データを可能にするWebアプリケーションを作成しようとしていますアプリケーションは2つのCSVファイルを作成し、それぞれに2つの データセットのいずれかが含まれます

    3. アプリケーションのサーフェスは、データセット「1、2、3、4、5、6次、7と

      1. ユーザーアップロードCSVファイル:ERは

        ここ

      は、より具体的な例であるファイルのそれぞれを をダウンロードします、8,9,10 '。

    4. アプリケーションは、これを2、3、5、6、9、および1,4,7,8,10のような2つの同じサイズのランダムデータセットに変換します。
    5. アプリケーションは2つのファイルを作成します。 '1,2,3,5,6,9'を含む最初のものと '1,4,7,8,10'
    6. を含むものの2つのリンク 'Dataset 1'と 'Dataset 2'が表示されます。クリックするとファイルのダウンロードが開始されます。

    私はこのフロントエンドを構築するのが快適ですが、バックエンドを設計する方法についてのアドバイスを探しています。ここで最も抵抗の少ない道を探して、どんな指導も高く評価されます。 ありがとうございました!

  • 答えて

    0

    jQuery-csvは、ブラウザでファイルを読み取り、JSONとしてサーバーにPOSTします。ファイルを5000行以下にしておくとよいでしょう。ブラウザが作業を行うためです。それについての素敵な点は、ファイルを分割する方法のロジックがJavaScriptで快適にできることです。欠点は、JavaScriptから転送が完了したことを示すフラグが取得されるまで、データを格納するデータベースが必要になることです。次に、そのデータからファイルを作成します。オンデマンドでリンクをクリックすると、サーバー上で遅くて重くなります。

    jQuery File Uploadもあり、ファイルは<input type = "file"/>として送信されます。これで、より大きなファイルを手に入れることができ、おそらくデータベースがなくても、ファイルが2つ以上のMBでない場合は消えてしまいます。ファイルがサーバーのどこかに書き込まれると、ファイルIDを送り返すことができます。欠点は、アプリ内にファイルを格納していることと、その潜在的なセキュリティの影響です。

    第3の選択肢は、ファイルが巨大であるか、またはFTPまたはAmazon AWSなどの記憶媒体にアップロードを誘導することである、多くの人がアップロードする場合です。次に、別の別のプロセスがファイルを読み取り、データに必要なものを実行してから、ファイルを記憶媒体に書き戻します。別のプロセスでは、ファイルへのリンクを返すのは、そのユーザーのデータベースに入れたり、電子メールを送信したりすることです。ここでの利点は、ファイルをギガバイトにすることができます。より多くのユーザーがいる場合。欠点は、サーバー側で深刻なことをしていることです。

    編集:それはあなたが見ている方向なので、私はそれに追加します。確かに2つの別々のアプリケーション、つまりファイルをオフロードするWebサイト、そしてロジックの中でファイルを新しいファイルに追加する2つのストリームにストリームするワーカーアプリケーションが必要になります。シンプルなバージョンは、新しいファイルを頻繁にチェックしてから移動または削除し、リンクをユーザーに電子メールで送信する予定のものです。 Amazonキューイングを使用するなど、インクリメンタルにすることができます。そのため、Webサイトでは、ファイルが準備できていることをワーカーに知らせるメッセージが表示され、特定のスケジュールされた時間を待つのではなく、もう一つは、SignalRを使用することで、作業者は「あなたのファイルは準備ができています。ダウンロードするにはここをクリックしてください」というWebサイト上のユーザにリアルタイムで通知することができます。

    どのようなアプローチをとっても、ファイルへのリンクが、数字やタイムスタンプのようなものではなくランダムで長いことを確認してください。そうでないと、他のユーザーのファイル

    恐らくあなたの最善の解決策は、賛否両論を計量した上で、上記のいくつかの組み合わせになるでしょう。

    +0

    詳細な回答はありがとうございます。本当に有益。残念ながら、これらのファイルは100万行以上のデータである可能性があるため、オプション#3を選択する必要があると思います。私はユーザーがS3にファイルをアップロードすることを可能にする簡単なフォント・エンドを作成するのは心地よいと思うが、私の「解析データ、分割データ、および新しいファイルの作成」要件を達成するサービスを作成することは、そのアプローチにどのような推奨事項がありますか?ラムダ関数を使うのは良い方法でしょうか?それは私にとって初めてのことです。私はダイビングのための試合ですが、抵抗が最も少ない道についてのガイダンスを探しています。 – user2603286

    +0

    私はさらにこれを調べており、次のことを考えています: - S3バケットにルーティングされる、ファイルをアップロードするための単純なフロントエンドの構築 - Javaでラムダ関数を作成してデータを解析するCSVに含まれているセットを作成し、それぞれにランダムなデータセットの2つの別々のファイルを作成し、それらの新しいファイルをS3に戻します。 私は仮定しています私は、そのプロセスのドットのいくつかをSNSの話題などと結びつけることができますが、それでもやや不鮮明です。思考? – user2603286

    +0

    それは右のように聞こえる。その場合私は私の答えに加えました。 –

    関連する問題