【问题标题】:Importing directory of SAS7BDAT files into SQL Server将 SAS7BDAT 文件目录导入 SQL Server
【发布时间】:2016-09-15 04:03:27
【问题描述】:

我有一个 SAS7BDAT 文件目录 - 我需要将其中大约 300 个文件导入到 SQL Server 表中。不幸的是,日期字段不是数据集的一部分,而是在文件名中。所以我需要在导入时解析文件名,获取日期并附加到每个数据集。

SSIS 是一个很好的候选人吗?如果是这样,我是否对此使用 For-each 循环?如何解析文件名并附加日期?

对于单个文件,我可以轻松使用 SQL Server Management Studio 并将其导入。我也可以为这个练习做同样的事情,然后在加载到决赛桌时处理日期,但我希望有一个更简洁的解决方案。

在没有安装 SAS 的情况下,还有其他后端方式来处理这个问题吗? Python还是其他?

TIA

【问题讨论】:

  • 您根本没有访问 SAS 的权限吗? SSIS 没有导入 SAS 数据集 AFAIK 的机制,并且有 Python 包,但它们可能会出现问题。如果您有 SAS,您可以直接连接到 SQL 服务器并上传表格。
  • 您在您的网站上使用 CozyRoc 吗?我相信他们有一个 .sas7bdat 扩展名......
  • AFAIK 可靠读取 .sas7bdat 的唯一方法是使用 SAS。 Python 的东西是非官方的,有点狡猾。

标签: sql-server ssis sas


【解决方案1】:

[已解决]

看到一篇提到 R 的 SAS7BDAT 库的文章。 因此,使用它,我可以使用“ldply”成功地将所有文件以及文件名加载到 R 列表中。

经过一些数据框操作后,我可以使用 SQLSave 将所有文件加载到 SQL Server 中。

文件非常小。因此,性能并不是什么大问题,尽管我怀疑它可能适用于更大的容量。

【讨论】:

  • 您是否能够以某种方式验证数据的准确性?
  • 是的@Reeza - 一旦加载到表中,我就会验证每个月的计数。数据是这样的,它们应该随着年份的推移而相同或增加,这就是我发现的。同样公平地说,数据本身非常简单。只有 4 列 - 3 个数字和 1 个字符。不涉及日期。我猜测更复杂的数据包含日期和更大的列基,在最终加载后我会看到一些异常情况。
猜你喜欢
  • 1970-01-01
  • 2010-10-27
  • 2013-02-20
  • 2014-04-05
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多