Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSIS每天从XML文件导入_Xml_Ssis_Replication - Fatal编程技术网

SSIS每天从XML文件导入

SSIS每天从XML文件导入,xml,ssis,replication,Xml,Ssis,Replication,我正在寻找从XML文件将数据导入SQL的最佳方法。其中一个要求是在目标服务器上提供整个数据库,这意味着最初应传输大型XML文件,之后只传输新的和更新的文件。 我的问题是如何处理文件名。我的猜测是,xml文件应该是递增的,比如tablename1.xml、tablename2.xml等。如果是这样,那么从新文件中自动读取数据的最佳情况是什么 也许我的逻辑完全“错误”,有更好的解决方案吗?我通常的做法: 选择1 文件被放在指定的目录中。我们更改已处理文件的名称,以便下次忽略它 创建ForEach循环

我正在寻找从XML文件将数据导入SQL的最佳方法。其中一个要求是在目标服务器上提供整个数据库,这意味着最初应传输大型XML文件,之后只传输新的和更新的文件。 我的问题是如何处理文件名。我的猜测是,xml文件应该是递增的,比如tablename1.xml、tablename2.xml等。如果是这样,那么从新文件中自动读取数据的最佳情况是什么


也许我的逻辑完全“错误”,有更好的解决方案吗?

我通常的做法:

选择1 文件被放在指定的目录中。我们更改已处理文件的名称,以便下次忽略它

创建
ForEach循环容器
并在
枚举器配置
-
文件
*.
下完全限定。内部:

  • 虚拟脚本任务,不执行以下操作:
  • 连接
    求值操作:表达式
    ,表达式:
    查找字符串(@FileName,“processed”,1)=0
  • 数据流或任何其他要执行的任务
  • 最后:
    文件系统任务
    ,操作:
    将文件
    重命名为
    “已处理”+@Filename
    ,这将生成一个
    已处理的tablename.xml
    文件
  • 选择2 处理所选位置的所有文件,但稍后将其移动到其他位置。步骤非常相似,事实上它只在步骤4有所不同,也不需要虚拟脚本


    两者都是独立于名称的,这就是为什么我们在全面和增量数据设计中都喜欢这种方法。

    我们使用您的选项2。如果包中的某些内容失败,它们将转到“已拒绝”文件夹,否则将转到“已接受”文件夹。