我正在尝试使用Pentaho(ETL,商业智能,报告等)整合LimeSurvey(用于开发和收集在线调查的PHP Web应用程序),但我面临一些严重的问题。
LimeSurvey自动生成一个新表,用于存储在我的应用程序中创建的每个调查的答案,我需要使用Pentaho根据调查的答案动态生成报告。
我如何处理将未知数量的表作为Pentaho的数据源的问题,其中表的名称及其字段的名称由LimeSurvey自动生成?我可以在Pentaho中使用哪些策略,想法或机制来加载来自这种不可预测的数据源的信息,并从中生成报告?
或者,有没有办法告诉LimeSurvey将所有调查答案存储在一个表中,以便从Pentaho等商业智能工具中轻松提取?
提前致谢!
答案 0 :(得分:1)
如果您知道或可以预测LimeSurvey如何命名表以及如何连接表的架构,那么您可以使用“高级SQL数据源”以及表达式来计算查询。它可能是一个BeanShell或Bean-Scripting-Host表达式,因为AFAIK弄乱这些表在早期会很复杂。
如果您想了解有关Advanced SQL数据源和计算查询的更多信息,请查看Mike Tarrallo的“Guided Adhoc”录制
答案 1 :(得分:0)
正确:鞭打LimeSurvey成型,每个调查一张桌子,来吧。虽然有点超出了范围。
可行:创建一个包含所有表格的视图+一个Pentaho可以使用的'survey-id'列。在调查添加/删除时重新创建,祈祷Limesurvey中有一些钩子可以轻松添加这些SQL语句。