zoukankan      html  css  js  c++  java
  • SSIS SQLServer增量抽取至Cassandra 性能优化及踩坑

    前言

    做增量抽取时使用的KingswaySoft公司提供的组件,方便易用,但是在快速编写完后进行数据量测试时,仅100条数据就可使程序报错,错误如下

    [Cassandra Destination [2]] 错误: 出现错误,错误消息如下:“Cassandra.WriteTimeoutException: Cassandra timeout during write query at consistency SERIAL (1 replica(s) acknowledged the write over 4 required) (SSIS Productivity Pack, v10.0.0.3034 - DtsDebugHost, v13.0.4259.0)”。

    因此进行SSIS配置查找和性能优化。

    排查

    对此问题进行Cassndra和SSIS两个方面的排查。

    Cassandra配置排查

    首先进行Cassandra的错误排查,网上对于此问题也归类为Cassandra集群配置错误导致的写超时。

    链接【写超时异常】

    链接2

    集中在配置文件修改方面,示例修改如下:

    read_request_timeout_in_ms  增大

    write_request_timeout_in_ms  增大

    GROUPTRANSOPS 减小

     SSIS工具

    在kingswaysoft官网介绍中, 对Cassandra目标组件的异步模式介绍简短。

    官网链接【使用Cassandra目标组件】

    Youtube【Cassandra组件使用讲解】

    使用CDATA工具开发,需购买授权。放弃。

    使用Cassandra ODBC提供程序

    使用脚本任务插件替代Cassandra目标组件。

    分析

    对如上排查方案进行验证。

    Cassandra

    Cassandra的write_request_timeout_in_ms 配置增大确实可以使SSIS少量数据不报错,但是数据量在千条时还是会报同样的错误,因此排除是Cassandra集群配置的原因。

    GROUPTRANSOPS 这个配置未找到。

    SSIS工具

    kingswaysoft 

    将Cassandra目标组件中【异步模式】取消勾选进行测试,发现抽取一千条数据不会报错,但是速度很慢(仅为60条/秒)。

     对kingswaysoft官方提供的资料中进行了解,发现官方仅对【异步模式】进行了简述:可快速插入数据。

     因kingswaysoft提供的Cassandra目标组件不提供自定义编辑,所以进行其他可替代免费组件的查找。

    CDATA

     网上有关于CDATA的工具,但是收费,放弃。

    Cassandra ODBC

     使用Cassandra ODBC提供程序进行配置时,会报错。具体错误信息未记录。

     大概内容是安装64位版本程序后,使用数据源进行访问数据库报错误为需要使用32位数据源进行操作。

     在使用32位提供程序后,不能进行数据库操作。

     这里也不推荐使用ODBC提供程序,因为能下载到程序就很不容易了。

    脚本任务

    这种方法是最笨但是最有效的方案。

    直接在数据流中配置好ODBC数据源,然后指向脚本任务就可以获取到ODBC源所获取到的数据条目。

    设置输入列,如果有输出也可设置输出列。

    然后和编写程序一样去创建连接插入数据。

    方案

    采用脚本任务替换Cassandra目标组件。 

    脚本任务编写大致如下

     

  • 相关阅读:
    LeetCode15 3Sum
    LeetCode10 Regular Expression Matching
    LeetCode20 Valid Parentheses
    LeetCode21 Merge Two Sorted Lists
    LeetCode13 Roman to Integer
    LeetCode12 Integer to Roman
    LeetCode11 Container With Most Water
    LeetCode19 Remove Nth Node From End of List
    LeetCode14 Longest Common Prefix
    LeetCode9 Palindrome Number
  • 原文地址:https://www.cnblogs.com/GoCircle/p/12557873.html
Copyright © 2011-2022 走看看