【发布时间】:2021-06-28 14:52:42
【问题描述】:
我正在尝试从 C# 控制台应用程序以编程方式创建一个 SSIS 包,该应用程序使用 Kafka 的 3rd 方自定义连接管理器,如下所示:
static void Main(string[] args)
{
Application app = new Application();
Package pkg = new Package();
ConnectionManager cmKafka = pkg.Connections.Add("KAFKACS");
...
失败:
Microsoft.SqlServer.Dts.Runtime.DtsRuntimeException
为连接管理器...指定的连接类型“KAFKACS”不是 被识别为有效的连接管理器类型。
不过,将此管理器添加到 Visual Studio 2017 的集成服务项目中效果很好。
我是 SSIS、C# 和 Windows 开发的新手。到目前为止,这是我尝试过的:
- 将 GAC 对 KAFKACS 程序集的引用添加到我的控制台应用程序中。
- 强制 64 位执行导致
Microsoft.SqlServer.DTSRuntimeWrap未找到。 - 使用反射来尝试找出我引用的 Kafka DLL 的目标架构和 .NET 框架版本(看起来像 MSIL)。
- 使用以前版本的 .NET 目标框架创建同一应用程序的版本。
- 尝试手动创建 Kafka 管理器的实例,如下所示:
var rawKafka = new KafkaConnectionManager();
ConnectionManager cmKafka = (???) rawKafka;
pkg.Connections.Join(cmKafka);
- 是否需要注册 KAFKACS 组件才能成功调用
Connections.Add? - 错误消息是否具有误导性,并且我缺少其他我需要参考的可能是 Kafka 特定的程序集?
- 我可以手动创建
KafkaConnectionManager的实例并将其与Connections.Join一起使用吗?
【问题讨论】:
-
最终目标是什么?使用 kafka 摄取数据?我总是对简单的解决方案就足够的复杂解决方案保持警惕。为什么不直接使用 C# 控制台应用程序来摄取 Kafka 数据?在我看来,SSIS 现在是一项古老的技术。
-
嗨@Nick.McDermaid,目标是在SSIS、Kafka以及自定义管理器已广泛用于此类集成的项目中自动生成SSIS包。