問題タブ [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を使用するにはどうすればよいですか?
私はRhinoETLライブラリで遊んでいて、その方向性が本当に気に入っています。ただし、ドキュメントがまばらであり、これらのパイプラインプロセスを作成する方法、特にDSLを使用する方法について十分な情報がないように思われることが悪い部分であることがわかりました。
DSLファイルを作成してファイルをロードし、データを別のファイルにエクスポートして、これらすべてがどのように組み合わされるかを確認しようとしています。私が今まで持っているのはこれです。
この例外をスローします
File.boo(1,2):BCE0064:Boo.Lang.Compiler.CompilerError:「DelimitedRecord」または「DelimitedRecordAttribute」という名前の属性が見つかりませんでした(属性名では大文字と小文字が区別されません)。'System.Diagnostics.DelimitedListTraceListener'のことですか?
属性部分を削除すると、このエラーが発生します
例外:パイプラインの作成に失敗しましたImportFile:クラスUserは、[DelimitedRecord]または[FixedLengthRecord]属性でマークされている必要があります。例外:操作File.import_fileの実行に失敗しました:クラスUserは、[DelimitedRecord]または[FixedLengthRecord]属性でマークされている必要があります。
ここに何かアイデアはありますか?または、Rhino ETLのDSL内でFluentFileを使用する方法の例はありますか?
log4net - RhinoETL プロセスでログを有効にするにはどうすればよいですか?
Rhino ETL を使用した最初の ETL プロセスはほぼ完了し、テストを参照して API の使用方法を理解することができました。
偉大な。パイプラインを介して移動し、データベースに書き込まれるデータがあります。
ただし、ログを有効にする方法がわかりません。
- log4net アセンブリがあり、log4net オブジェクトが作成されています
- WithLoggingMixin クラスはその役割を果たしているようです (ただし、それが何であるかについては少しあいまいであることを認めなければなりません)。
log4net.config ファイルで follingFileAppender をセットアップしました。これには次のものが含まれています。
ただし、ログ ファイルは作成されません。コードでを呼び出して も、 false であるDebug()
ため何もしません。log.IsDebugEnabled
私は何が欠けていますか?
c# - RhinoETLを使用してデバッガーの[ローカル]ペインに表示される内部コンパイラー変数
C#を逆アセンブルすると、コンパイラによって次のような名前の一時変数が挿入されることがよくあります。
しかし、それらがデバッガーの[ローカル]/[自動]ペインに表示される原因は何でしょうか。
私の同僚は、 RhinoETLを使用して作成されたツールを保守しようとしています。彼のアセンブリのシンボルは、デバッガーによって正しくロードされたものとして報告されます。彼はコードをステップスルーできます。ただし、デバッガーに変数を表示する代わりに、コンパイラーが生成した内部変数のみを表示します。
私は彼に、同じコードを使用して新しいコンソールアプリを作成し、呼び出されたダミークラスを置き換えAbstractOperation
てRow
コンパイラーを満足させることを提案しました(これらはRhino ETLライブラリのクラスです)。彼がそれを試みたとき、Rhino ETLへのすべての依存関係を削除すると、デバッガーで自分の変数を確認するという点で、すべてが正常に戻りました。
彼はまた、同じソリューションでソースからRhino ETLを構築しようとしましたが、それでも問題は解決しませんでした。したがって、バージョンの非互換性が原因ではないようです。
彼のコードはイテレータメソッド内にあるため、コンパイラによるコードの大幅な再編成が必要です。しかし、イテレータメソッドは通常デバッガを壊しません!
この場合、それがoverride
イテレータメソッドであり、基本クラスがAbstractOperation
Rhino ETLライブラリからのものであると、デバッガが破損するようです。
基本クラスはどのようにしてデバッガーにそのような影響を与えることができますか?
.net - プレーンな .Net コードの SSIS ファジー ルックアップに代わるものはありますか?
いくつかの大規模な ETL プロセスを SSIS から Rhino-Etl に変換しています。私は、SSIS の「グラフィカル プログラミング」の性質にうんざりしていました。ETL プロセスが何を行っているかを把握するために何百ものダイアログ ボックスを調べていても、すぐに飽きてしまいます。
SSIS パッケージのいくつかは、Fuzzy Match コンポーネントを使用して、名、姓、および生年月日に基づいてユーザー アカウントを結合します。あいまい一致が必要なのは、2 つのシステム間で名前のつづりが常に同じであるとは限らないためです。一方に正式な名前があり、もう一方にニックネームがある、タイプミス、結婚の名前の変更などがあるかもしれません.
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 が推奨される種類の問題ではありません。たとえば、統合の 1 つは、システム内の既存のスケジュールに対して検証する必要があるある種のスケジュールを受け取ります。それらは競合してはならず、スケジュールにはいくつかの種類があり、競合の検証ルールは複雑です。システムにはそれを行うためのユーザー インターフェイスが既にあり、ビジネス ロジックは C# コードで既に実装されています。それをケトルに移植しようとする試みは、信じられないほど難しいように思えます。さらに、「物事を行うための唯一の方法」の原則に違反しています。
コメントで取り上げられた「誰も使用していない」問題は私にとっても懸念事項です。そのため、重い実稼働環境で誰かが使用しているかどうかを確認しようとしています。
これまでのフィードバックに感謝します。
rhino-etl - Rhino.ETL での連続した結合
1つのテーブルに参加したい3つのテーブルがあります。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の使用に関するデータを移動しています
私が移動しているテーブルの1つには、各行にかなり大きなテキストのチャンクを格納する列がありますが、それほど大きくはなく、約2000行しかありません。
ジョブを実行すると、次のようになります。
タイプ'FileHelpers.FileHelpersException'の最初のチャンスの例外がFileHelpers.dllで発生しました
ここで、大きなテキスト列を削除すると問題が修正されます。ただし、これが唯一の出力です。
データサイズなどの制限をどこかに制限するものはありますか?
デバッグ出力:monobin
c# - RhinoETL-2つのテーブルを入力として結合し、出力で2つのテーブルに書き込みます
Rhino ETLを使用して、C#でETLジョブを作成しています
ServerAにデータベースがあります。これには2つのテーブルがあります。
(例)
tblOrder
- OrderID
- 顧客名
- CustomerEmailAddress
- 転送
tblOrderLine
- OrderID
- 製品番号
- 商品名
- 価格
ServerBでは、同じテーブルがあります(注文はWebからバックエンドシステムに転送されます)
RhinoETLを使用すると、私のInputCommandOperationは現在次のようになります。
この段階では実行する変換がないため、OutputCommandOperationは次のようになります。
私がやりたいのは、このプロセスを変更して、ServerAからtblOrderLineの詳細も取得することです。可能であれば、db(join)で秒クエリを実行せずに、tblOrderLineテーブルに「Transferred」列がないようにします。結合を含めるようにInputCommandを変更することをお勧めします。
InputCommandにJoinを設定した後、挿入操作はどのように機能しますか?これも可能ですか?