背景:我的州政府有一个网站以“政府透明度”的名义提供财务数据,但我对它的呈现方式非常不满意。这是一个尴尬的老式网站,没有 API,没有办法下载数据,网站本身也没有提供聚合分析。您可以通过姓名找到任何国家雇员的工资和差旅报销记录,但这需要一些协调一致的努力。而且肯定没有简单的方法来回答“高中教师的平均工资是多少?”等有用的问题。所以,作为第一步,我只是截取了大部分信息,这些信息现在以 json 格式保存在 GitHub 存储库中。
所以我的下一步是以有用的方式呈现这些数据。当然我会尝试自己做一些分析和绘图,提供一个 RESTful API,并提供一个包含整个数据集的 tarball。但是还有一件事我想要但不确定...
问题:如果我将这些数据放入关系数据库中,我如何“安全地”公开该数据库系统以进行通用公共查询?我无法想象简单地编写一个执行任意 SQL 选择的 Web 服务是一个好主意,因为这是公开邀请任何人将我的处理器与长时间运行的查询(无论是否恶意)捆绑在一起。
是否存在诸如 SQL 子集或完全不同的查询语言之类的东西,可以保证查询评估复杂性的上限?还是我想太多了-也许正确的答案就像在 DBMS 上设置较低的最大查询时间一样微不足道?