私は大量のデータをアップロードする複数のユーザーを持つシステムを設計しています。私の最初の例は毎日100Mbをアップロードする100人のユーザーです。多くの用途と大量のデータ(MSMQ?)のためのスケーラブルなアーキテクチャ
データを取得し、データベースに挿入し、データベース(ETL)内のデータを処理し、分析用に「研磨済み」データを使用する必要があります。
アップロードされたファイルは、65kチャンク(初期設計)で受信されます。
MSMQを使用してこの問題を回避するには、データをMQに格納し、それを別の「プログラム/ツール」に渡してデータを処理し、それを介してETLツールに信号を送りますMSMQはそのことをやり始めます。
「リニア」アプローチの代わりにイム思考:より良い1であるように見えるアプローチ
--> receive data
--> save data to sql
--> wait for upload finish (run the two above until no more chunks)
--> signal the ETL to do its thing
--> When ETL is done report "Done" to callee
?調べるべき選択肢はありますか?私はこのアプローチを見る限り、クライアント/ダウンローダーをロックします。
大きなファイルに対してはメッセージを使用せず、特定のシンク(db、ファイルシステムなど)にストリームするだけです。それぞれのファイルごとに、またはバッチのようなモードで(毎晩、毎時など)ETLプロセスを個別に起動する必要がありますか? – home