标签: etl

SSIS数据流任务依赖于超前阶段的执行

我有一个暂停执行的数据流任务.
流程很简单,对不同的表进行两次查询(两者都有几个连接),然后通过公共id对输出进行排序和合并,为所有记录添加静态列,将行计数保存在用户变量中以供日后使用使用并最终插入到另一个DB上的表中.我们正在使用OLE DB源和目标.源是MSSQL 2000,目标是MSSQL 2012

症状:

  • 在执行时,数据流获得通常的黄色"运行"图标.但是,当您双击以查看数据流时,非元素具有任何黄色,红色或绿色标记.
  • 这种情况持续很长一段时间,最初持续了大约20分钟,之后开始变长或根本没有返回.
  • 输出显示:
    信息:Load Sandbox Table中的0x40043006,SSIS.Pipeline:准备执行阶段正在开始.
    信息:Load Sandbox表中的0x40043007,SSIS.Pipeline:预执行阶段正在开始.

    除了停止执行之外别无其他.
  • 是的,这已经奏效了.是的,我们使用单个查询(在存储过程中)来执行此ETL,但我们希望将所有步骤迁移到SSIS.
  • 解决方案失败:

  • 没有查找.
  • 任务流的默认缓冲区大小增加到40485760,然后增加到80971520.
  • 任务的默认缓冲区最大行数设置为1000000.
  • 对于该任务,延迟验证设置为True.
  • 任务中的所有元素都将Validate External Data设置为False.
  • 两个查询都有:
    SET FMTONLY OFF;
    设置NOCOUNT ON;

    在开始时加入.
  • 两个查询都将MAXDOP设置为1.
  • 将项目的运行64位运行时设置为False.
  • 将目标负载从表或视图更改为表或视图 - 快速加载,没有锁或约束.
  • 将每批次的行设置为1000以便快速加载.
  • 一些解决方案建议将任务流分成两个或更多任务流.但这是不可能的,因为我们需要做的是合并两个源查询中的信息.
  • 额外的一点: 我真的希望有人可以帮助我.我是SSIS的新手,这是我第一次使用它.我通常与Pentaho合作开发我的ETL,但客户需要在SSIS上实施解决方案.我已经和这个问题争斗了好几天了,而且我已经开始没有想法来解决这个问题了.


    当通过命令行运行时,它也会卡住,我得到以下输出:

    Progress: 2013-03-19 14:36:26.21
       Source: Load Sandbox Table
       Validating: 0% complete
    End Progress
    Progress: 2013-03-19 14:36:26.21
       Source: Load Sandbox Table
       Validating: 12% complete
    End Progress
    Progress: 2013-03-19 14:36:26.22
       Source: Load Sandbox Table
       Validating: 25% …
    Run Code Online (Sandbox Code Playgroud)

    sql-server ssis etl

    27
    推荐指数
    3
    解决办法
    5万
    查看次数

    如何对SSIS包进行单元测试和集成测试?

    这个问题提到了两个库,这两个库都没有维护,一个已经断开了源和文档的链接.

    SSISUnit最后一次更新于2008年,SSIStester在文档中断开了链接,自2013年以来一直没有更新.

    social.msdn.microsoft.com上的答案通常也指向这两个库中的一个,或某种自定义解决方案.

    还有其他选择吗?


    2018-10-09赏金更新

    是否有任何与较新版本的SSIS(2015+)相关的​​更新?

    我已经检查了类似的问题:

    sql-server integration-testing unit-testing ssis etl

    25
    推荐指数
    1
    解决办法
    6358
    查看次数

    Java ETL:很难找到合适的一个

    我正在寻找一个可嵌入的Java ETL,即可以从Java代码调用的Extract Transform Load引擎.

    我发现很难找到合适的产品.

    我主要看的是将分隔的文本文件加载到数据库表中,并在此过程中进行一些小的转换.

    我想要以下功能:

    • 能够在外部指定简单映射,例如,文本列5到数据库列foo,指定了一些xml映射文件
    • 能够为数据库节点提供javax.sql.Datasource

    CloverETL允许在XML中指定映射,但数据库连接必须是JNDI名称或指定driverClass,url,dbusername,password等的属性文件.因为我已经javax.sql.Datasource通过我的依赖注入框架设置了,所以属性文件看起来很痛苦,不健壮的,特别是如果我想在多个环境(dev,test,prod)中工作.

    KETL告诉我"我们目前正在全面检修KETL™的文档.因此,只有安装指南已经更新." 诚实,但没有帮助.

    八达通现在是"http://www.together.at/prod/database/tdt",正在"正在建设中".

    Pentaho 似乎使用与CloverETL相同的"指定driverClass"样式,而不是使用数据源,但Pentaho的文档用于从java代码调用它们的引擎很难找到.

    基本上我真的很想能够做这个伪代码:

    extractTransformLoad(         
            getInputFile( "input.csv" ) , 
            getXMLMapping( "myMappingFile.xml") ,
            new DatabaseWriter( getDatasource() );
    
    Run Code Online (Sandbox Code Playgroud)

    有什么建议?

    java etl embeddable

    23
    推荐指数
    2
    解决办法
    2万
    查看次数

    SSIS - 由于潜在的数据丢失,无法转换该值

    我对SSIS比较陌生.我正在尝试使用Microsoft OLEDB for Oracle从Oracle数据库中提取信息,我正在使用此查询:

    SELECT ID FROM Test
    
    Run Code Online (Sandbox Code Playgroud)

    我收到一条错误消息:the value cannot be converted because of a potential loss of data.如果我将查询更改为以下,则它可以正常工作:

    SELECT '1' FROM Test
    
    Run Code Online (Sandbox Code Playgroud)

    我认为它失败了,因为ID不是整数.但是,平面文件连接管理器显示OutputColumnWidth是50.我做错了什么?

    格林尼治标准时间16:30更新
    我已经对此进行了更多调查,看起来是列有"频率"或"无"的直方图导致问题的列.直方图"高度平衡"的那些似乎没问题.

    sql-server oracle ssis etl

    22
    推荐指数
    1
    解决办法
    8万
    查看次数

    21
    推荐指数
    2
    解决办法
    6万
    查看次数

    使用Pentaho Kettle,如何在保持参照完整性的同时从单个表中加载多个表?

    需要将具有100,000多条记录的单个文件中的数据加载到MySQL上的多个表中,以维护文件/表中定义的关系; 意味着关系已经匹配.该解决方案应该适用于最新版本的MySQL,并且需要使用InnoDB引擎; MyISAM不支持外键.

    我是一个全新的使用Pentaho数据集成(aka Kettle),任何指针将不胜感激.

    我可能会补充说,要求不禁用外键约束.由于我的理解是,如果数据库的引用完整性存在问题,MySQL将不会在重新打开外键约束时检查引用完整性.消息来源: 5.1.4.服务器系统变量 - foreign_key_checks

    如果插入失败,或者无法保持参照完整性,则所有方法都应包括验证和回滚策略中的一些.

    再次,对此全新,并尽力提供尽可能多的信息,如果您有任何问题或要求澄清 - 请告诉我.

    如果您能够从超级的kjb和ktr文件(作业/转换)发布XML.甚至可能追捕你在任何地方所做的每一条评论/答案,然后投票给他们...... :-) ......真的,找到答案对我来说真的很重要.

    谢谢!


    示例数据:为了更好地举例说明,我们假设我正在尝试加载一个包含员工姓名的文件,他们过去占用的办公室以及用标签分隔的职位名称历史记录.

    文件:

    EmployeeName<tab>OfficeHistory<tab>JobLevelHistory
    John Smith<tab>501<tab>Engineer
    John Smith<tab>601<tab>Senior Engineer
    John Smith<tab>701<tab>Manager
    Alex Button<tab>601<tab>Senior Assistant
    Alex Button<tab>454<tab>Manager
    
    Run Code Online (Sandbox Code Playgroud)

    注意:单表数据库是完全标准化的(可能只有一个表) - 例如,在"John Smith"的情况下,只有一个John Smith; 意味着没有重复会导致参照完整性的冲突.

    MyOffice数据库架构有如下表:

    Employee (nId, name)
    Office (nId, number)
    JobTitle (nId, titleName)
    Employee2Office (nEmpID, nOfficeId)
    Employee2JobTitle (nEmpId, nJobTitleID)
    
    Run Code Online (Sandbox Code Playgroud)

    所以在这种情况下.表格应如下所示:

    Employee
    1 John Smith
    2 Alex Button
    
    Office
    1 501
    2 601
    3 701
    4 454
    
    JobTitle
    1 Engineer
    2 …
    Run Code Online (Sandbox Code Playgroud)

    mysql etl pentaho kettle

    21
    推荐指数
    1
    解决办法
    1万
    查看次数

    将Excel日期序列号转换为常规日期

    我的csv文件中有一个名为DateOfBirth的列,带有Excel Date Serial Number Date

    例:

          36464
          37104
          35412
    
    Run Code Online (Sandbox Code Playgroud)

    当我在Excel中格式化单元格时,这些单元格被转换为

          36464 => 1/11/1999
          37104 => 1/08/2001
          35412 => 13/12/1996
    
    Run Code Online (Sandbox Code Playgroud)

    我需要在SSIS或SQL中进行这种转换.怎么能实现这一目标?

    sql t-sql sql-server ssis etl

    21
    推荐指数
    5
    解决办法
    6万
    查看次数

    是否可以使用SSIS包dtsConfig文件的相对路径?

    我试图使我们的SQL Server Integration Services包尽可能可移植,并且阻止这一点的一件事是配置的路径始终是绝对路径,这使得测试和部署成为一个令人头疼的问题.是否有任何建议使这更容易管理?

    另一个问题是,当另一个开发人员从源代码​​控制中获取该包时,该路径特定于开发人员机器.

    sql-server ssis etl

    19
    推荐指数
    1
    解决办法
    2万
    查看次数

    如何从Google Analytics中提取数据并从中构建数据仓库(webhouse)?

    我点击了流式数据,例如引荐网址,热门目标网页,热门退出页面以及Google Analytics中的网页浏览量,访问次数和退回度等指标.目前还没有数据库可以存储所有这些信息.我需要从这个数据中建立一个从头开始的数据仓库(我相信这就是所谓的web-house).所以我需要从Google Analytics中提取数据并将其加载到仓库中,每天自动化.我的问题是: -

    1)有可能吗?每天数据增加(有些指标或措施,如访问量和一些新的推荐网站),加载仓库的过程如何?

    2)什么ETL工具可以帮助我实现这一目标?Pentaho我相信有一种方法可以从Google Analytics中提取数据,是否有人使用它?这个过程怎么样?除了答案之外,任何参考,链接都将受到赞赏

    etl google-analytics data-warehouse

    19
    推荐指数
    2
    解决办法
    3万
    查看次数

    如何将新的Struct列添加到DataFrame

    我目前正在尝试从MongoDB中提取数据库,并使用Spark将其提取到ElasticSearch中geo_points.

    Mongo数据库具有纬度和经度值,但ElasticSearch要求将它们转换为geo_point类型.

    Spark中是否有一种方法可以将列latlon列复制到一个arraystruct哪个新列?

    任何帮助表示赞赏!

    etl scala elasticsearch apache-spark apache-spark-sql

    19
    推荐指数
    2
    解决办法
    3万
    查看次数