3

私は紺碧のプロジェクトの研究を担当するインターンです。
現在、私はプロジェクトの一部のアーキテクチャを考案しています。

目標は、複数のcsvファイルをクラウド内のSQLデータベースに変換することです。これらのcsvは国内のランダムな場所から送信され、最終的にWebサービスを使用してデータベースにアクセスできるように処理する必要があります。

私は紺碧のシーンにまったく慣れておらず、自分で学校に通っていますが、頭の中で少し曖昧です。

いくつかの情報:

csvは小さなファイルですが、毎日約20.000が受信されます。データを簡単に集約する必要があるため、SQLストレージである必要があります。

csvには何が含まれ、保存する必要がありますか?
一意のキー値(文字列)
消費値(double)
日時スタンプ(日時/文字列)
品質値(int)

私が念頭に置いていたアーキテクチャは次のとおりです。
クラウドへのHttpリクエスト(クラウドにはリスナーサービスが必要ですか?)
処理される前にcsvを保持するキューサービス
SQLドライブストレージ(直接インポート?または何らかの種類の必要が​​ありますか?)間にワーカーの役割がありますか?)
sqlDB内のデータのクエリを使用して、外部AOSまたはクライアントアプリケーションから要求を取得するWebサービス。

この問題は標準コンポーネントで解決できると思い込んでいますか、それともvmロールを実装する必要がありますか?これをどのように設定しますか?

私は本当に雲の中で迷子になっていると感じているので、どんな入力でも大歓迎です:)
要件の概要を明確に示したと思います...
自分自身を完全に理解していないことを説明するのは簡単ではありません

4

2 に答える 2

3

VMの役割はまったく必要ありません。ストローマンのアイデアは次のとおりです。

  • csvファイルをプッシュできるWebサービスをセットアップします(svcを使用してWebロールで簡単に実行できます)。そのサービスメソッドに、各csvを特定のコンテナー(「uploads」など)のAzure Blobに、「guid.csv」などの名前で格納させます。Guid.NewGuid()。ToString()を呼び出すだけで、その場でguidが生成されます。 。それが完了したら、そのファイル名を参照するキューメッセージを作成します。
  • svcをホストしている同じロールインスタンスのRun()メソッド(Run()をオーバーライドするだけ)または別のワーカーロールで、キューから読み取るだけのwhile(true)ループを設定して、インポートが必要なcsvを取得します。 BLOBをメモリストリームに読み込み、ディスク上の一時ファイルにダンプしてから、ローカルヘルパーメソッドを呼び出してcsvを解析し、S​​QL挿入を呼び出します。
  • データを取得するための別のWebサービスをセットアップします。繰り返しますが、これは同じWebロールまたは別のWebロールでホストできます。

VMの役割はまったく必要ありません。

于 2011-04-07T18:01:28.387 に答える
0

BCP(バルクコピー)を使用してデータをSQL Azureに直接インポートできない理由はありますか?BCPはCSVファイルをサポートしており、このツールを使用して毎日データをインポートする非常に簡単なプロセスを作成できると思います。これを行う場合は、データの負荷を最適化できるいくつかの方法を必ず読んでください。大規模なデータセットがある場合、これは実際に違いを生む可能性があります。

于 2011-04-07T21:53:51.207 に答える