製品寸法ETLの負荷。才能のより多くの例を示します。 USINGは、メトリックおよび統計情報をログに記録します。

社会製品の負担に対処するために起こっている次のETLプロセス。このディメンションを配置するには、我々が見たように、BIシステムで使用するために製品に関連付けられているさまざまな属性を設定します。次のようにアカウントへのデータの起源を取って物理的な構造の見直しの後、テーブルの物理的な構造は:


MySQLの物理的なデザイン製品の寸法表

プロセスは、(我々は以前のブログのエントリで見たように)才能が続く使用して実装されます:


製品ディメンションの作成のための変換

才能を持つプロセスを開発するために、我々はログの統計情報とメトリックを記録し、情報を定義すると、さらに一歩移動します。これは、才能の他の機能を満たすために私たちが有効になり、有効にする(ジョブの実行を調整は、例えば、最後の日付の回復をジョブの実行が)転送プロセスの最後の実行以来、品目マスタの変更を探すために問題が発生した場合に電子メールでの実装およびレポートのエラーを監視します。

(ステップの各々が含まれて詳細に説明を参照してください)​​次のようにすべての手順でジョブの完全な概要は次のようになります:


Productディメンションの完全に才能ETLプロセス

ETLプロセスの手順は、製品ディメンションを完了しています:

prejob 1)の実装は、プロセスの実行の最後の日付を取得するために、ログ内のジョブの実装の開始を記録した。また、電子メール警告を送信するが生成されますが、(Java例外またはエラーが発生過程でキャッチする)logCatcherを起動する問題は、ジョブのどの段階で発生した場合ことを確認します。

2)は最後に実行した日から、我々はERPで品目マスタを回復するには、すべての変更は、製品またはその日付以降にテーブルの高さ。

3)我々は、誤った値の置換または空白確立された基準に応じて選択されたレコードで行った。

4)我々は、対応するSQLクエリを使用してデータベース(ルックアップフィールド)で、他のテーブルから他のフィールドを充填、製品サイズのマッピングを完了した。

5)誤った物質を生成することがありますマッピングがチェックする必要がありますし、ソースシステム(間違った値を持つために)で修正済みです。素材のリストは、ファイルをExcelで導入される。また、メトリック表に格納するために適切なソースシステムから読み取られたレコードの数を数えてください。

図6は、実際にDWデータベース内の既存のデータ、それらは変更する場合(またはされ、新しいレコード)は、アップグレードを実行することのレコードへの変更がされていることを確認してください)​​。原則として、我々が緩やかに変化する次元の管理を実行しませんが、その成分を学ぶためにこのシリーズに寸法を管理している場合は、瞬間(後のマスターファイルは、我々は常にデータの写真を持ってこの目的のために才能可能)。

7)プロセスは、プロセスの対応するメッセージのログが正常に完了で締結しています。

指標とする前に行くの統計情報、どのような各参照してください深く、もう1つは管理ログを有効に才能がどのように手順を、私たちがするを参照してください次のようにこれらの各要素の意味は:

  • ログは:コンポーネントを実行しているJavaの例外またはプロセス生成のメッセージは、希望のレコードエラーtWarnまたはTDIe使用してメッセージを生成して私たち(異なるタイプのメッセージを生成します。)
  • 統計情報(統計):仕事をしてコンポーネントを作成し、登録の統計情報の手順異なる。各ステップでは、統計情報を選択して統計tStatCatcherのロギングをオンにすることができます。それは、その実行状態、期間などを終了時に起動し、各ステップの情報を保存
  • メーターは、Volumetrics(メートル法)制御フロー)私たちがすることができます使用しているプロセスを挿入でtFlowMeterのされているログメトリックのレコード(数。

才能我々はこれらのすべてのレコードを持つ2つの方法(組み合わせることができます)で作業することができます:一つは自分自身を管理されるログは、統計情報を生成され、メートル(各ジョブのコンポーネントtLogCatcher、tStatcatcherまたはtFlowMeterCatcher、実行時に収集と提供)プレーンテキストフ​​ァイルまたはログデータベースにログインすると、コンソールに表示する:早期治療が)あるいは、我々は3つのオプション(生成されたログを保存する、その場所を選択すると、個々のプロジェクトや仕事での自動管理を有効にします。この最後のオプションを使用すると、生成されたすべての情報はテーブルに登録されます悪用しやすくなる実行プロセスの見直し、プロセスのオーケストレーション、検証のボトルネック、バグ修正、など

するには、プロジェクトレベルの管理は、[ファイル]メニューのオプションを選択しますアクティブ - >プロジェクトのプロパティ、ジョブの設定]オプションは、統計を&ログ(我々は、画像に見られるよう)を編集します:


オプションの統計情報とプロジェクトレベルでのログ

私たちは(誰も情報を格納するためにしたくない人のためのジョブがある可能性があります)興味のあるものであり、各ジョブに調整することができますが、これらのプロパティは、プロジェクトのすべてのジョブを受けることができます。これは、各ジョブ統計情報とログ]タブのプロパティを変更します。原理的には、プロジェクトのプロパティの設定を送信するが、例外が生成することができる特定のジョブ(または別のサイトにログを生成することが運ぶ):


オプションの統計情報とログレベルの仕事

この明確化した後、詳細をETLの各ステップで参照してください:

のprejob実装は、1)プロセスの実行の日付を最後に取得してジョブを記録中の実装の ​​開始をログを表示します。また、電子メール警告を送信するが生成されますが、(Java例外またはエラーが発生過程でキャッチする)logCatcherを起動する問題は、ジョブのどの段階で発生した場合ことを確認します。この最初のステップで使用されるコンポーネントは次のとおりです:

  • ピッチャーPrejob (tPrejob成分):プロセスのメイン前に、pretrabajoの立ち上げを使用してください。
  • 最後に実行される日付は、 (コンポーネントtMySqlInput)ジョブ回収からのログが正常に実行された日付を最後に、テーブルが記録されます。この日付は最後の実行以来、ERP製品の高/変更を見つけるための基準日となる。しかし、製品ディメンションの初期ロードされるもののための基準日をビルドするには、ジョブの前回の実行がある。
  • ホームにメッセージをログ (tWarnコンポーネント)の実行をジョブが始まっていることを示す生成するメッセージをログ。
  • 日付変数の設定は、 (tSetGlobalVar成分):前のステップで回収した日最後に実行ジョブの内の任意のステップであり、後で使用できるグローバル変数を記録インチ
  • エラー制御は、 (tLogCatcherコンポーネント)は、エラーの種類のいずれかを待ってすることは、ジョブの存続期間を"リッスン"コンポーネントをことが有効にします。その時は、エラーを取得し、電子メール通知を送信するために次のコンポーネントに渡すことがアクティブになります。
  • tFlowtoIterate :Eメールを送信するには、順序の反復するレコードに変換ログの流れを。
  • メール送信Notif (tSendMailコンポーネント):エラー電源のメッセージ処理を停止し、ステップメールの送信をメールの通知を含む、エラー。それが何かを伝えるための方法行った過程で間違っているのです。

コンポーネントをそれぞれの定義私たちはどのようにするには詳細を参照してくださいでは、またはコンポーネントの各リンクのクリックにすることができますクリックすると才能は、HTMLドキュメントを生成でフルに表示するここに

2)の実行の最後の日から、我々は、ERPマスターの材料回復するには、すべての変更は、日付作られた製品をそれ以来テーブルまたは高。


ジョブがDimProduct - 読書マスターは製品サップ

これを行うには、詳細をtOracleInput(参照型をLECT_MAESTRO_PRODUCは、使用するコンポーネントここオラクル)、ケースが、この内のSAPデータベースを、そのことができますアクセス私たちがして。も)は、SAPの読書tSAPInputのtSAPConnectionyコンポーネント使用しても実行される可能性があります。観察SQLステートメントコンポーネントで実行され、(また、Javaになることがある)、グローバル変数と関数の祈りのショールを使用しての使用で書かれたテキストを組み合わせる方法を参照してください。

3)我々は、基準の誤置換を行うの値 、または、確立レコード応じて選択された空白インチAJUSTE_CAMPOS使用してコンポーネント、tReplaceタイプ(詳細を参照してくださいここ )が、我々は)文字列を定期的に検索を使用(レコードを取得できる値を内に存在し、文字列を示す置換。これは、誤ったレコードなどを修正するために、正規化し、任意の変換は、特定の値を実施する場合に便利ですこの例では、我々は値(これはまた、そのようなエントリを拒否することを選択したこと)を持つレコードを置き換えるために使用されます。


ジョブDimProduct - 設定フィールド

4)我々は、クエリに対応するSQL)で、ルックアップフィールドをデータベース(他のテーブルから製品のサイズ、充填その他フィールドを完了したマッピングを 。我々は、詳細を入力MAPEO_PRODUCTO TMAPを(参照してください使用するコンポーネントはここ )。


ジョブがDimProduct - マッピング製品を

このコンポーネントを使用すると、一緒に一歩のマスタレコードには、材料、私たちは、各レコードを(設定説明など、測定単位、同等の単位の計算完了することができますERPで他のテーブルの追加の値を読み取る測定、等)。

このマッピングでは、我々は選択レコードのフィルタリングを実行することを、見たことがなかった才能の機能を使用します。これは、私たちは、一定の条件を満たしていないレコードの手順で、2つのデータストリームは、正しいレコードを1つ、別のものを生成することができます。この例では、フィールドumrenにNULLを持つレコードが拒否され、評価用のファイルをExcelで記録される後続のステップに渡されます。

5)誤った材料は、ユーザーがチェックする必要が生成されることがありますし、(間違った値を持つために)、ソースシステムを修正するマッピング。材料リストを参照してください(REGISTROS_ERRONEOS tFileOutputExcelのような制御型であることが導入のExcelファイルを介してここに )。同様に、参照してください使用して、コンポーネントのタイプCUENTA_LEIDOS_SAPのtFlowMeterを( ここ )、テーブルのストレージのメトリックのシステムソースレコード読んでからの数を適切なカウント(実行するプロセスの統計情報をoten以降)。

図6は、アップグレードを実行する我々は)記録され変更は本当に確認することが既存され、新しい、またはデータのDWデータベース、レコードその場合、(それらは変更してください。これを行うには、を参照してくださいコンポーネントタイプVERIF_MODIFICACIONES TMAPを使用します( ここに )我々は完全な読込みからSAP完全にそのレコードを流れ、メインが表示されます。一方、他を参照してください検索の流れ(受信時にはここ ))レコードをテーブル寸法製品すでにいっぱいのテーブルMyql DWD_PRODUCTO(。この情報を使用して、我々は次のコンポーネントに行って、マッピングの比較は、私が選択レコードのフィルタリングを行いますするだけの変更を持っている人(フィールドのいずれかの違いがあります。)

ジョブがDimProduct - 変更検証

次のようにフィルタ条件がフィルタ式で使用されるコードは、です:

!Row11.material_desc.equals(row15.material_desc)| |
!row11.familia_id = row15.familia_id | |
!Row11.familia_desc.equals(row15.familia_desc)| |
!Row11.denom_id.equals(row15.denom_id)| |
!Row11.variet_id.equals(row15.variet_id)| |
!Row11.formato_id.equals(row15.formato_id)| |
!Row11.um_id.equals(row15.um_id)| |
!row11.litros_id = row15.litros_id | |
!row11.linprod_id = row15.linprod_id | |
!Row11.linprod_desc.equals(row15.linprod_desc)| |
!Row11.target_id.equals(row15.target_id) 

我々はロードされたデータの間にERPからの変更があるかどうかを判断する2つのストリームのフィールドを比較して、フィールドを作成する方法を参照してください。

原則として、我々が緩やかに変化する次元の管理を実行しませんが、その成分を学ぶためにこのシリーズに寸法を管理している場合は、瞬間(後のマスターファイルは、我々は常にデータの写真を持ってこの目的のために才能可能)。マッピングを超えるレコードは、制御ACTUALIZA_DWD_PRODUCTOを使用して、MySQLデータベース、tMySqlOutputタイプ(詳細を参照してくださいに登録されているここ)、DWD_PRODUCTOテーブル記録のようにすでに述べた。

で、ステップCUENTA_MODIFICADOSコンポーネントがTFlowMeter(詳細はここのレコード数のメトリック表に記録では、)の更新プログラムを生成します。

7)プロセスの詳細を参照してください(とコンポーネントタイプMENSAJE_LOG_FIN tWarn、プロセスの完了に対応する締結しているメッセージの成功ログはここ )。

詳細に表示するコンポーネントをどのように各々の定義には、才能で完全なHTMLドキュメントを生成アクセスすることができますここ 。あなたはドキュメンテーションzipファイルを含むことができますダウンロードはここ

結論

我々は、才能のETL錯体を用いた我々の最初の仕事をした。これは、ツールの機能、およびは、リンクされているどのように連鎖が一緒に様々な構成要素は、情報およびそれらの間のレコードを渡す方法は、このようなエラーは、など、処理される理解することが少しトリッキーだった。しかし、一度対象の基本は、我々はTの大きな可能性を参照してくださいAlenda(また、どこにJava言語を使用して完了することができます)。ツールの私は意識を高めるためにすることをお勧めします場合は、このツールのユーザーマニュアルコンポーネントリファレンスガイド (英語)で読んでリンクを開く訪問プロジェクトのウェブサイトTalendForgeをチュートリアルを見つけることができますが、フォーラム管理、バグなど

私も見てどのように重要な基準等は、我々は置換を行ったことを彼らにされ実行されるの起源とすべての変換の詳細な情報を分析するプロセスを、例外、たぶん私は、ETLプロセスの状況は、我々が予期していなかったことが登場しているようにより多くの深さで、それ以来、この手順をとっておくべきです。我々は我々の次のプロジェクトのための心を持っている。

我々はまた、すべての管理のためのメカニズムを確立することが重要であることを実行中のプロセス、統計およびメトリックのログを見て、それが監視し、生産性に置く必要がデバッグ、自動化されたプロセスを設定するには役に立つでしょうプロジェクトと時間をかけて、そのメンテナンス。

そしてもちろん、ドキュメントの。行く記録と説明(各コンポーネント、フィードバックのメタデータなどの手順を、説明しているテキストの命名)才能で使用される各コンポーネントの行為は、才能、HTMLの生成の標準機能を使用して有効になっているが彼らがどのようにプロセスがさらに編集やメンテナンス、将来的に第三者によって組み立てているのかを理解して、非常に完全な詳細ビューで、構成されているようにどこにプロセスを見ることができますリポジトリ。

次のブログのエントリ、詳細は当社のプロジェクトの他のディメンションをロードするためのETLプロセスでは。その後、ボードは、ETLプロセスをより複雑になりますファクトテーブルをロードする機構を自動化してオーケストレーションを確立する必要があることを確認します。そのエントリでもあります:mysqlを使用して、テーブルの分割の研究を含んで、我々は深さが表示されます。