開発者向けのライフハックを含むRDTEX会社の最初のブログを開きます。 読者の一人がそれらを利用することを願っています。
ライフハックは、ロシア連邦の主要銀行の1つでレポートを作成するために、あるシステムから別のシステムにデータを転送するプロジェクトの作業中に発明されました。
使用される技術:
データソースシステム-Oracle RDBMS(バージョン11.2.0.4.0)
データ受信システム-RDBMS Oracle(バージョン11.2.0.4.0)
Integration Bus-Informatica(バージョン10.1.1)
主要な統合プロジェクトの実装中に、次の問題が発生しました。
1. Informatica Power CenterでのSQ [Source Qualifier]の非効率的な使用
Informatica Power CenterでSQ [ソース修飾子]を使用すると、入力文字数の制限が明らかになりました。 許可される最大文字数は32767です。ソース修飾子の非合理的な使用例を以下の図に示します。
図1 SQ Informatica Power Centerのスクリーンショット
このスクリーンショットは、スペースが文字スペースを消費し、その結果、複雑なSQLクエリが完全に適合しないことを示しています(つまり、ソース修飾子に挿入されたときに切り捨てられます)。
以下の図は、ソース修飾子の正しい使用方法を示しています(変更は赤で強調表示されています)。
図2クエリが変更されたSQ Informatica Power Centerのスクリーンショット
次の行に移動すると、配置にN番目の文字数がかかり、これを削除すると、すべてのSQLコードに適合できました。
2.無限に大きい数の誤った変換
無限に大きな数が次の形式でOracleデータベースにアップロードされました。
1267650600228230000000000000000
そして、次の形式でロードする必要があります。
1267650600228229401496703205376
つまり 値は特定の数字カテゴリから丸められました。
次のソリューションを提供します。
Informatica Power Centerでのマッピングの開発中、フィールド形式(たとえば、文字列)は、確実に大きくなる値の特定の段階ですぐに設定されますが、
- 10進形式を使用し、値が最大28文字の場合、Workflow Managerのワークフロープロパティで[プロパティ]→[高精度を有効にする]→[はい]を有効にする必要があります。
- double形式を使用すると、この場合、15文字(たとえば20)を超える値がこの属性に到達し、値は有効数字15桁に切り捨てられ、残りはゼロ(0)になります(つまり、最後の5文字はゼロになります) ) この場合、文字列形式を書き留めて、サイズを目的の形式(string20など)に増やすことをお勧めします。
ツールの使用を要約すると、次の利点が区別できます。
- このツールは、特に最小限の変換(ほぼ1対1)でデータを転送する必要がある場合、テラバイト単位で計算された大量のデータ(たとえば、25〜30テラバイト)を転送するのに便利です。
- 属性の自動「プル」(「属性の伝播」オプション)の可能性、およびマッピング内の「強調表示」(データの取得元と取得元)。
- ETLツールとELTツールの両方の動作モードを選択する機能(特定のITプロジェクトに依存)。
そして、写真の客観性のためのいくつかのマイナス:
- 「複雑な」データ変換ロジックの欠如。
- ツール自体のサポートと個々の変換の操作のロジックの理解の観点からは、一部の競合他社(Oracle Data Integratorなど)に劣っています。