2013-05-02 38 views
0

我正在为我的团队开发一个指标项目。我必须将几个不同的报告加载到中央存储库中,然后创建表格并报告这些数据。将多个CSV文件加载到MySQL中

数据源有:

  1. CSV文件
  2. 的PDF
  3. 特设/手动数据。

我在玩Talend和MySQL。我对如何加载CSV文件有点困惑。我应该拥有一组目录和一个或多个加载文件的计划任务吗?

另一个想法是编写一个自定义文件处理器,它将根据命名约定加载文件。你怎么看?

+0

也许我很简单,但是......为什么不使用'load data infile'? – Barranka 2013-05-02 20:19:10

回答

1

“PDF”是复杂的。因为它是pdf ...“特设/手动数据”需要更多的细节。
但是,如果我们专注于csv,并且只有我是正确的,那么您的问题才与这些人有关,我会通过编写一个应用程序来调用mySQL DB中的SP,将完整路径移交给csv以及任何其他数据,例如表格的“用户友好名称”(如果需要)或您希望存储的任何其他元数据),它使用mySQL Load Data执行导入。
原因是,在导入csv后,“业务逻辑”中可能有很多规则,并且根据不断变化的业务要求维护应用程序比始终更改数据库行为更容易,而且,如果某些事情变得非常糟糕错误的我的数据库将是安全的,只有“导入管理器应用程序”失败 - 因为我不需要在我的数据库所在的同一个系统上既不存储也不存储csvs。
DB,关系 DB基本上是关于存储数据,并基于'集合论'快速检索数据,而不是关心数据如何进入系统。

所以,想想这些问题,你开始实施任何事情之前:

  • 它被处理后发生了什么CSV?可以删除?应移至例如一个“已处理”的文件夹?应该保持/保持原样吗?
  • 如果应该留在原来的位置,那么我应该怎么做才能知道我已经处理了该文件? (例如设置“准备归档”标志?触摸“最后修改”日期并将其设置为1950.01.01?向该文件添加额外属性?
  • 如果csv导入失败,我应该怎么做(例如,无效数据在文件中,或NULL值,它不应该有空值)?显示错误?将csv标记为不可用?发送电子邮件?移至“processing_failed”文件夹?
  • 如果文件数量在输入中变大文件夹吗?
  • 我如何可以轻松地更改导入/流程/等,如果业务逻辑变化,或CSV格式的变化?

等。想通过你的所有决定的选项。

我希望我能回答你的问题;)

+0

感谢您的回复。你提出了一些好的观点。 CSV将用于数据库中的不同表格。我的问题更多的是用于加载文件的方法。 – user2344442 2013-05-03 00:41:36

+0

为此,请按照我的答案中的链接 - 使用mysql加载数据;) – 2013-05-03 07:54:37