0

私はかなりエキサイティングなプロジェクトを開始しました。私は、組織内の人々が CSV ファイルを読み込みフォルダーにドロップし、Web インターフェイスでローダーをセットアップできるという考えを持っていました。

これはそれほど特別なことではないように思えますが、すばらしいのは、CSV から抽出する必要がある特定の列のみをユーザーが選択できる Web アプリであることです。一度セットアップすると、このローダーを定期的に実行できます。

次に、ユーザー定義のクエリを介してデータを変換し、場合によってはデータの場所にロードできます

私が直面している問題は、ステージングされた CSV データのテーブル構造です。変換できるようにするためです。

CSV ファイルの構造は、多数の列または非常に少数の列によって異なります。

CLIENT    SALES COST 
Mr Smith  234   45
Mr Blogs  256   35

私が現在持っている構造は

ID COLUMNID VALUE    FILELOADDATE
1  1        Mr Smith 2012-12-25
2  2        234      2012-12-25
3  3        45       2012-12-25
4  1        Mr Blogs 2012-12-25
5  2        256      2012-12-25
6  3        35       2012-12-25

したがって、必要に応じてデータは「アンピボット」され、さまざまな CSV 形式を保存できます

私が直面している問題は、データが転置されていることです。そのデータのリンクを効果的に壊したので、売上高が誰に関連していたのかわかりません

日付ごとの売上や日付ごとのコストなどを集計したい場合、私が取ったアプローチは問題ありません

そのリンクを失わないように、これにアプローチできる別の方法はありますか? 行または何かを含む別の列を作成できますか?

4

2 に答える 2

2

行を追加すると(そしておそらくデータセットID?、異なるcsvファイル間で異なる場合があります)、あなた自身の質問に答えると思います。次に、FILELOADDATE フィールドをデータセット テーブルに移動することもできます。

ID DATASETID ROWID COLUMNID VALUE    
1  1         1     1        Mr Smith 
2  1         1     2        234      
3  1         1     3        45       
4  1         2     1        Mr Blogs 
5  1         2     2        256      
6  1         2     3        35      

データセット テーブル:

ID FILELOADDATE
1  2012-12-25
于 2013-01-09T23:54:33.413 に答える
1

最近、同様の問題の解決策を見ました。ありました:

  • データセットを説明する 1 つのテーブル
  • 列を説明する 1 つのテーブル (CSV ファイルの列)
  • データのストレージ テーブル

データセット説明テーブルの列:

ID
FileName
Load_TimeStamp
Name
User

列の説明表の列:

ID
dataset_id
ColumnName (csv column name)
ColumnDescription (optional)
StorageColumn (pointing to storage table column name, e.g. "varchar_1"

データ テーブルの列:

ID
dataset_id
varchar_1
...
varchar_20
numeric_1
...
numeric_20

要点は、データの転置を回避できることです (ロード イベントとすべての操作イベントで、何度か実行する必要があります)。

于 2013-01-10T10:01:20.877 に答える