问题标签 [rhino-etl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 如何在 Rhino ETL DSL 中使用 FluentFile?
我一直在玩 Rhino ETL 库,非常喜欢它的发展方向。但是我发现它的坏处是文档很少,而且似乎没有足够好的信息来说明如何创建这些管道流程,尤其是使用 DSL。
我只是试图创建一个 DSL 文件来加载一个文件并将数据导出到另一个文件中,以查看这一切如何组合在一起。到目前为止我所拥有的是这个。
它抛出这个异常
File.boo(1,2): BCE0064: Boo.Lang.Compiler.CompilerError: 找不到名为“DelimitedRecord”或“DelimitedRecordAttribute”的属性(属性名称不区分大小写)。您的意思是 'System.Diagnostics.DelimitedListTraceListener' 吗?
如果我删除属性部分,我会收到此错误
例外:无法创建管道 ImportFile:必须使用 [DelimitedRecord] 或 [FixedLengthRecord] 属性标记 User 类。例外:无法执行操作 File.import_file:必须使用 [DelimitedRecord] 或 [FixedLengthRecord] 属性标记 User 类。
这里有什么想法吗?或者是否有任何关于如何在 DSL 中为 Rhino ETL 使用 FluentFile 的示例?
log4net - 如何在 RhinoETL 进程中启用日志记录?
我几乎完成了我的第一个使用 Rhino ETL 的 ETL 过程,并且通过参考测试,我已经能够找出使用 API 的方法。
伟大的。我有数据通过管道移动并写入数据库。
但是我似乎无法弄清楚如何启用日志记录。
- log4net 程序集在那里,正在创建 log4net 对象
- WithLoggingMixin 类似乎正在做它的事情(尽管我必须承认我对它到底是什么有点模糊)
在 log4net.config 文件中,我设置了一个 follingFileAppender,它包含以下内容:
但是没有创建日志文件。当我在我的代码中调用 Debug()
它时,它什么也不做,因为log.IsDebugEnabled
它是假的。
我错过了什么?
c# - 带有 Rhino ETL 的调试器 Locals 窗格中出现的内部编译器变量
如果您反汇编 C#,您经常会看到编译器插入的临时变量,其名称如下:
但是什么会导致它们出现在调试器的本地/自动窗格中?
我的一位同事正在尝试维护一个使用Rhino ETL编写的工具。他的程序集的符号被调试器报告为正确加载。他可以单步执行代码。但不是在调试器中显示他的变量,而是只显示内部编译器生成的变量。
我建议他尝试使用相同的代码编写一个新的控制台应用程序,并替换调用的虚拟类AbstractOperation
并Row
满足编译器的要求(这些是来自 Rhino ETL 库的类)。当他尝试删除对 Rhino ETL 的所有依赖项时,一切都恢复正常,在调试器中看到他自己的变量。
他还尝试在同一解决方案中从源代码构建 Rhino ETL,但这并没有解决问题。所以显然这不是由于版本不兼容。
他的代码位于迭代器方法中,因此编译器需要对代码进行重大重组。但是迭代器方法通常不会破坏调试器!
override
在这种情况下,如果它是一个迭代器方法并且基类AbstractOperation
来自 Rhino ETL 库,它似乎会破坏调试器。
基类如何对调试器产生这样的影响?
.net - 是否有任何替代 SSIS 模糊查找纯 .Net 代码的方法?
我正在将几个大型 ETL 流程从 SSIS 转换为 Rhino-Etl。我厌倦了 SSIS 的“图形编程”性质。在数百个对话框中寻找 ETL 过程正在做什么会很快过时。
一些 SSIS 包使用模糊匹配组件根据名字、姓氏和 DOB 加入用户帐户。模糊匹配是必要的,因为名称在两个系统中的拼写并不总是相同。一个可能有合法名称,另一个可能有昵称、拼写错误、婚姻名称更改等。
SSIS 模糊查找组件可以很好地处理这些问题。它并不完美,但它仍然大大减少了需要人工帮助的记录数量。
.Net 和 Rhino-Etl 都没有这样的开箱即用的东西,所以我正在寻找建议。
我曾尝试使用 SoundEx t-sql 函数,但效果不佳。
我目前正在考虑使用 Levenshtein 或可能是 Lucene.Net 索引。
有人对其中任何一个有什么建议吗?请随时提出完全不同的建议。
ssis - Rhino ETL 意见 vs Kettle 和 SSIS
我正在考虑一种用于 ETL 解决方案的工具,该解决方案具有很高的日常需求并且需要繁重的业务逻辑处理。到目前为止,我已经尝试过水壶和 SSIS,并且还想测试 Rhino ETL。我不关心 Kettle 和 SSIS 的可视化流结构,使用它们创建复杂的业务规则似乎真的很难...... Rhino ETL 似乎更友好,因为它有自己的 DSL 来转换数据,我也可以使用 C#。
最后,我的问题是:有人大量使用 Rhino ETL 吗?与 Kettle 和 SSIS 相比,它具有良好的性能吗?可维护性如何?
谢谢
更新:
在我对 Kettle 和 SSIS 进行的比较中,毫无疑问,Kettle 更好。与 Kettle 相比,我正在考虑 Rhino ETL 的实用方法。正如评论中所说,这似乎是倒退了一步,但所需的验证并不是 Kettle 推荐的那种问题。例如,我们的一个集成接收到某种调度,必须根据系统中的现有调度进行验证,它们不能冲突,有多种类型的调度并且冲突验证规则很复杂。系统已经有一个用户界面来做这件事,并且业务逻辑已经用 C# 代码实现了。任何将其移植到 Kettle 的尝试似乎都非常困难,此外,它还违反了“做一件事只有一种方法”的原则。
评论中提到的“无人使用”问题也是我关心的问题,这就是为什么我在这里试图找出是否有人在繁重的生产环境中使用它。
感谢您迄今为止的反馈。
rhino-etl - Rhino.ETL 中的连续连接
我有 3 张桌子我想加入 1 张桌子。我怎么能用 Rhino.ETL 做到这一点?
我知道如何加入 2 张桌子,但不是 3 张……谢谢约翰
c# - 使用“base”关键字时基类方法中的代码未执行
在重写抽象方法并尝试调用我当前正在重写的基类方法时,我看到了一个非常奇怪的问题。
基本上,SqlBulkInsertOperation 没有做我需要做的事情,所以我需要在通过覆盖它调用 Execute(rows) 之前和之后做一些工作。但是 SqlBulkInsertOperation.Execute(Rows) 中的代码没有被执行。
在 Visual Studio 的调试器中运行此代码时,调试器不会执行该代码。当我将鼠标悬停在 Visual Studio 编辑器中的“base”上时,它知道基类的类型是 SqlBulkInsertOperation。
我错过了什么?
etl - 来自控制台应用程序的 ravendb
我试图让 raven 在 rhino.etl 控制台中工作以将日期从 sql 导入到 raven。
我有一个 RavenInstaller:
但是 - 当我调用 _documentSession.OpenSession() 时,应用程序就会挂起。
我需要为控制台应用程序环境指定什么吗?它一直说它已超时 - 但配置中的 url 是 localhost:8080 这是正确的吗?
我已将其更改为现在使用:
但仍然挂在opensession上。
etl - FileHelpers - 字符串长度问题?
我正在移动一些关于使用 rhino.etl 的数据
我要移动的一个表有一个列,它为每一行存储相当大的文本块——尽管它不是那么大,只有大约 2000 行。
运行作业时,我得到:
FileHelpers.dll 中发生了“FileHelpers.FileHelpersException”类型的第一次机会异常
现在,删除大文本列可以解决问题 - 这是我得到的唯一输出。
某处是否存在限制数据大小或其他内容的限制?
调试输出:monobin
c# - RhinoETL - 加入两个表作为输入,写入两个表输出
我正在使用 Rhino ETL 在 c# 中编写 ETL 作业
我在 ServerA 上有一个数据库。这有 2 个表:
(例子)
订单
- 订单编号
- 顾客姓名
- 客户电子邮件地址
- 转移
订单行
- 订单编号
- 产品编号
- 产品名称
- 价格
在 ServerB 上,它有一个相同的表(订单从 Web 传输到我们的后端系统)
使用 RhinoETL,我的 InputCommandOperation 目前看起来像:
由于在此阶段无需进行任何转换,因此我的 OutputCommandOperation 将如下所示:
我想要做的是修改这个过程,也可以从 ServerA 获取 tblOrderLine 详细信息 - 如果可能的话,不用对 db 进行秒查询(加入)我很想避免在 tblOrderLine 表上有一个“Transferred”列,并且更愿意修改 InputCommand 以包含一个连接..
在 InputCommand 中加入 Join 后插入操作如何工作?这甚至可能吗?