我已经开始了一个相当令人兴奋的项目。我有这样的想法,我组织中的人可以将CSV文件放入加载文件夹,然后在Web界面中设置加载器。
这听起来不那么特别 - 但是,美妙的是网络应用程序可以让用户只选择从CSV中提取所需的某些列 - 一旦设置,这个加载器就可以定期运行。 / p>
然后可以通过用户定义的查询转换数据,并可能将数据加载到wherehouse
中我遇到的问题是我的分阶段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格式
现在的问题是数据已被转置我已经有效地破坏了该数据中的链接,所以我不知道销售数字与谁有关
如果我想根据日期或按日期或类似的方式汇总说销售
,我采取的方法很好我有什么不同的态度可以解决这个问题吗?我可以在列中添加另一列吗?
答案 0 :(得分: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
答案 1 :(得分:1)
最近我见过类似问题的解决方案。有:
数据集描述表的列:
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
关键是你可以避免数据转置(你必须多次这样做 - 在加载事件和每个操作事件上)。