我的目标是使用Drupal 7 产生一种快速,可靠和自动化的方法,以访问包含在多个非常大的平面文件数据源(CSV,固定宽度和XML文档)中的只读数据,可以使用Views 3来查询该数据。模块。我希望使用已经可用的模块,但是构建自定义模块也是一种选择。
为了帮助排除不适合该任务的模块和方法,以下是我正在使用的文件的统计信息:
- 每年导入:850万行CSV文件。(每年清除和重新加载。具有主键。)
- 每周导入:350,000行固定宽度的文件。(每周清除和重新加载。无主键。)
- 每小时导入:3,400行CSV文件。(希望尽可能频繁地更新和同步,但不超过每20分钟一次。具有主键)
- 每日导入:200个项目的XML文件。(每天清除并重新加载。具有主键)
三种格式之间的转换不是问题,如果可以提高导入性能或允许使用更好的工具,则可以进行转换。(将AWK用于将固定宽度转换为CSV等)。通过cron和sh脚本可以很容易地进行检索和转换自动化,但是仍然需要使Drupal 7集成自动化。只要vews可以使用关系引用数据,也可以使用自定义表。
用Drupal 7完成此类数据集成的最佳实践是什么?另外,我是否遗漏了有关数据或要完成的工作的任何重要细节?
这是我目前正在寻找一些解决方案的项目。我想对此进行扩展,以帮助其他人决定在处理较大数据导入时应采取的路线。
将数据导入节点:
- 供稿(当前D7为Alpha)
Feed将可靠地导入数据。对于较小的数据源,速度是合理的,但对于300k +的表来说速度太慢。
可使用cron和Job Scheduler(当前为D7 使用Alpha)进行自动化。
源数据中没有可用的索引或唯一键,这使得此操作难以使用。它比提要快,但导入非常大的表仍然很慢。
可以通过drush和cron实现自动化。
自定义表而不是节点
- 数据模块(当前为D7为Alpha)
该数据模块看起来非常有前途,但对于D7非常错误的时刻。使用数据很容易满足自动化和导入速度的要求,但是缺乏可靠性。该意见整合(链接是D6)看起来非常有前途。
- 表格向导(不适用于D7)
添加此以供参考。目前没有D7候选者,但可以用作自定义模块的起点。
- 视图架构(已废弃,仅D6)
添加此以供参考。这似乎已经被Drupal 6中的Table Wizard吸收了。再次添加,仅供参考。
- 进口商(D2的RC2)
似乎需要使用表向导(仅D6)进行View集成。已添加以供参考,但不符合“视图”要求。
@MPD-添加了“自定义表”作为可能的解决方案,并扩展了模块。谢谢您的补充。