首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >帮助理解编程时间/困难- SQL数据转储与SSIS打包报告

帮助理解编程时间/困难- SQL数据转储与SSIS打包报告
EN

Database Administration用户
提问于 2017-04-04 22:52:26
回答 1查看 73关注 0票数 3

我管理着一个数据报告分析员团队。我们的主要数据来源之一是由另一个部分运行的。它是一个SQL数据库,但它们不允许直接访问数据。

我们有3个csv文件,每天晚上都会自动运行,这些文件为我们提供了运行报告所需的大部分数据。最近,数据库中添加了新的字段,我们需要访问这些字段中的信息。

最初的计划是将新字段添加到现有的数据转储文件中,或者向我们提供一个附加的数据转储文件,其中包含新的信息。

今天,我被告知他们没有能力创建或修改数据转储文件,但是他们可以提供SSIS报告,允许我们打开数据库的前端并导出数据。

我需要知道,创建一个从数据库前端导出的SSIS报告包是否真的比修改或添加将文件转储到文件夹的包更容易、更节省时间。

我的问题是,我们正试图使我们所有的工作自动化。直接访问将是实现报告自动化的最简单方法,csv文件会导致一些自动化问题,但可以自动化。必须打开前端数据库应用程序并登录,然后将数据导出到excel,这削弱了我自动化进程的能力。

我的经验是,一种自动化或另一种自动化并没有真正发挥作用,但我已经很久没有管理数据收集应用程序了。我希望听到任何目前从事数据收集系统工作的人的意见,他们可以为我提供所需的知识,以接受这一解决方案,或者提供事实和确凿的信息,说明在创建自动报告或自动数据转储方面存在的差异。

创建此摘要的团队明确表示,他们有能力构建"SSIS“报告包,以便可以从数据库的前端导出数据,但他们没有能力用新数据构建新的数据转储,也没有能力将新数据附加到现有的数据转储中。新字段都与用户ID相关联。

它们将不允许我访问,但是如果我创建一个具有规范化表的数据库,这将是与主管表连接的用户数据的直接转储--提供历史监督员的生效日期和结束日期。当您创建一个数据转储或从数据库前端执行的摘录时,您会使用相同的SSIS包吗?不同的是,其中一个是计划好的,另一个是按需运行的。

EN

回答 1

Database Administration用户

发布于 2017-04-04 23:49:42

我已经使用SQL Server大约17年了。如果我需要在重复的基础上提取数据,我几乎总是使用SSIS包进行提取。

冒着与SQL伙伴滴答作响的风险:

  1. SSIS包可以按计划执行(如果需要,可以使用Server作业,也可以使用Windows调度程序)。它们是我自动数据提取的首选。
  2. SSIS可以将数据输出到CSV文件、Excel文件,甚至可以将其直接移动到其他数据库。
  3. SSIS包可以配置,允许更改某些参数,而不必更改实际包。
  4. 因此,SSIS包文件(*.dtsx)实际上是XML文件,允许使用文本编辑器进行某些更改(例如,更改包中任何地方的变量的名称);并不是说这是一个可能对您有帮助的特性,而是.

显然,我不能告诉您为什么在现有的导出例程中添加一些额外的字段现在超出了它们的能力。在大多数情况下,我不会期望在现有的提取过程中添加几个额外的字段会成为一个主要问题,也不会花费很多时间。但是,如果(由于提取过程的性质或其他字段的性质)涉及到对数据格式的更改,或者如果数据需要特殊处理(例如,带有嵌入式制表符、回车或换行符的"notes“字段),则可能需要比您预期的时间和精力。

问题不在于你所需要的改变的复杂性,而在于他们已经完成的工作量,以及其优先级。如果让你自己获取数据让他们继续工作,那么它可能被视为一个可以接受的折衷方案。

您提到了您一直使用的摘录来自数据库的“前端”。通常,这是某种应用程序(无论是编译的.exe、某种类型的脚本,还是某种基于web的应用程序)。修改应用程序确实需要时间,而且通常需要进行某种程度的测试,而不仅仅是更改的直接区域(以确保新代码不会无意中更改该区域以外的任何内容,从而导致某些东西中断)。

如果该应用程序上的其他开发工作正在进行中,那么通过一个小的更新来修改报告可能是困难和耗时的。SSIS包是一个独立的实体,不太可能破坏其他任何东西(只要您不更改数据),因此可以在不中断或干扰其他工作的情况下进行开发和支持。

注意:我把“数据转储”和“报告”之间的区别解释为格式化问题。有些事情(导出到预先格式化的Excel模板)允许一定数量的格式化,还有一些更复杂的事情(向数据中添加适当的HTML标记以实际创建HTML文件,而不是CSV文件之类的)。然而,在短时间甚至中期内,可能更容易(而且更快)在事后应用格式设置。

另一个注意事项:虽然在SSIS的以后版本中,这一点可能有所改进,但在使用Excel文件时存在一些问题。从它们导入数据时,这种情况往往是最糟糕的,但是一些问题(例如,每个单元格的默认限制为255个字符(除非前八行中的一行大于此))确实适用于导出。我一直试图通过使用.CSV文件而不是实际的.XLS文件来进行输入或输出,从而使我的生活更简单。

对于一个简单的一次性数据提取,我可能会将查询放在中,并将结果复制到一个电子表格中保存到CSV文件中。对于将定期重复的任何内容,我将将其转换为SSIS包。不管是哪种情况,我都会点击“现场”数据。

还可以从命令行(dtexec.exe)或使用简单的直接用户界面(dtexecui.exe)运行SSIS包,而不必在Server数据工具(或,取决于您的Server版本)中打开它。因此,可以安排SSIS包或“按需”。数据是否处于活动状态取决于您正在查询的数据库,而不是SSIS本身。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/169145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档