我想知道社区对于从 OData API 提取数据到 SQL 2008 R2 有何建议。我需要创建一个将数据导入 SQL 的夜间作业。我是否应该创建一个简单的控制台应用程序来迭代 OData API 并导入到 SQL?或者我可以创建某种类型的 SQL Server BI 应用程序吗?或者有更好的方法来做到这一点吗?
这会非常慢。OData 不是用于批量操作的 API。它旨在让客户端访问各个实体并导航它们之间的关系,最多对一些过滤列表进行分页。
通过 OData 提取整个转储不会让任何人满意。OData API 所有者必须调查是谁在他的 API 上进行所有这些夜间爬行,并发现是您,并且可能会切断您的联系。另一方面,您会发现 OData 不是一种有效的批量传输格式,并且来回封送 HTTP 编码实体并不是消耗带宽的最佳方式。每次爬行整个数据库,而不是仅仅发现上次爬行的增量图,只有在数据库达到临界大小 S 时才有效,此时更新所需的时间比池化的频率长!
此外,如果不是您的数据,OData API 的使用条款很可能明确阻止此类批量爬网。
获取数据转储、存档并使用 FTP 进行复制。