データ複製とは、ある場所から別の場所にデータをコピーすることを意味し、通常、同じレベルの情報を共有する必要がある異なるデータベースのユーザー間で行われます。レプリケーションには他のデータソースとターゲットも含まれる可能性があり、変換と時間の面でより複雑になる可能性があります。
これは、IRIWorkbenchGUIでのデータベースレプリケーションに関する2つの記事の最初の記事です。 IRI Workbenchは、Eclipse™上に構築された無料のIDEであり、IRI NextForm(データおよびデータベースの移行用)やIRI Voracity(NextFormなどを含む総合的なデータ管理プラットフォーム)を含むすべてのIRI製品をサポートします。 IRI Workbenchは、ウィザード、スクリプト、およびワークフロー図を介してデータ複製ジョブを作成および実行します。
複製が発生する方法のいくつかを次に示します。
- あるデータベースのデータは、同じサーバーまたは別のサーバー上の別のデータベースにコピーされます。
- 2つ以上のデータベースのデータが1つのデータベースに結合されます。
- ユーザーはデータベースの完全な初期コピーを取得し、データの変更に応じて定期的に更新します。
- データはデータベースから選択的に抽出され、外部ファイルに複製されます。
データ複製では、データベースの一部のみを複製できます。つまり、選択されたテーブル、列、および/または行。すべてのテーブルの複製は、データベースミラーリングの一部です。ただし、スキーマ、制約、手順、およびアクセス許可への変更は、複製するのが簡単ではなく、個別のプロセスが含まれる場合があります。
IRIWorkbenchの基本的な例
この最初のデータ複製の例では、IRIWorkbenchツールバーのNextFormメニューからジョブ作成ウィザードを使用します。 OracleテーブルからMySQLテーブルと変更されたフラットファイルの両方にデータをコピーします。この2番目の記事では、タイムスタンプ列の値を評価することにより、テーブル内の更新されたデータのみのレプリケーションについて説明します。
NextFormメニューには、3つのジョブ作成ウィザードが含まれています。
- 新しい再フォーマットジョブ
- 新しい単一ソース移行ジョブ
- 新しいマルチテーブル移行ジョブ
このレプリケーションを実行するには、新しい再フォーマットジョブウィザードを使用します。より複雑なジョブの場合は、別のNextFormウィザード、またはVoracityメニューのETLジョブウィザードを使用します(または手動で新しいワークフローを作成します)。
ソーステーブルとターゲットテーブルの構造は次のとおりです。
ステップ1:名前とジョブオプションを指定する
上部のツールバーの[NextForm]メニューから、[NewReformatJob]ウィザードを選択します。この例では、ジョブファイル名 datareplicationを入力します 。 NextFormは、拡張子.nclを追加します。スクリプトにコメントとして表示される、このジョブに関連する情報を追加することもできます。
ラジオボタンリストから、デフォルトのスクリプトの作成を選択したままにします。 これはスタンドアロンのジョブであり、より大きなフローまたはバッチプロジェクトの一部ではないためです。
ステップ2:ソースを特定する
次の画面の[データソース]で、[データソースの追加]をクリックします 。この例のソースはODBC接続されたデータベースであるため、 ODBC、を選択します。 次に、[参照]をクリックします データソース名(DSN)とテーブルを選択します。
ステップ3:ソースメタデータを指定する
IRIソフトウェアがエンジン内のデータを移動および操作する(この場合はNextFormで複製する)には、ジョブスクリプトで定義されたソースとターゲットのメタデータがIRIのデータ定義ファイル(DDF)形式で必要です。
IRI Workbenchで、任意のソース(またはターゲット)のDDFを自動的に作成できます。その機能はここに埋め込まれており、メタデータの検出のいずれかを選択できます。 または既存のメタデータを追加 。この場合、別の方法で作成された既存のメタデータを追加します。その選択とその結果は、次のダイアログに表示されます。
ソースフィールドレイアウトをクリックします データのレイアウトを確認します。
OKをクリックします ソースフィールドレイアウトを閉じます。次に、次へをクリックします [データソース]ページで、[データターゲット]ページを開きます。
ステップ4:ターゲットを定義する
複製されたOracleデータを2つのターゲットに送信しています。名前を付けているMySQLテーブルcustomers_out 、および personout.csvというファイル 。
ターゲットテーブルを追加する
[データターゲットの追加]をクリックします 。 ODBCを選択します 参照をクリックします 。次に、データソース名(DSN) Oracleを選択します およびテーブルCUSTOMERS_REP 。 OKをクリックします ダイアログを閉じます。
[データターゲット]ページで、テーブル名を強調表示し、[既存のメタデータの追加]をクリックします。 。 cust.ddfを選択します (以前に作成したもの)、[ OK]をクリックします 。
このファイルのレコード数を100に制限します。[ターゲットオプションの編集]をクリックします。 エディターを開き、 Outcollect フィールドに100と入力します 、[ OK]をクリックします 。
ターゲットファイルを追加する
もう一度、[データターゲットの追加]をクリックします 。 ファイルを選択します personout.csvと入力します 、[ OK]をクリックします 。ファイル内のレコード数を50以下に制限したいので、形式をCSVに変更する必要もあります。両方を行うには、[ターゲットオプションの編集]をクリックします エディターを開きます。 フォーマットを変更する CSVへのフィールド 、および Outcollect フィールドに50と入力します 、[ OK]をクリックします 。
ターゲットファイルに文字列関数を追加します
また、SSNフィールドの最後の4桁のみを表示する文字列関数を追加します。これを行うには、[ターゲットフィールドレイアウト]をクリックします そして、personout.csvタブをクリックします。
SSNフィールドを選択し、右クリックしてルールの適用を選択します > ルールの作成 。 [新しいフィールドルールウィザードの選択]ページで、[文字列操作関数]を選択します。 。次のページ–文字列操作関数– sub_stringを選択します 。 オフセット フィールドに、フィールドの左からの文字数として6を入力し、長さに入力します。 フィールドにサブストリングの長さとして4を入力し、完了をクリックします。 。
インクルードフィルターを追加
CSVファイルの変更を続行するには、CAからのレコードのみを含むようにデータを制限するフィルターを追加します。 レコードフィルターをクリックします フィルタを作成します。 含めるを選択します [フィルターアクション]で、[新しい条件]を選択します タイプのために。関数アイコンをクリックして、式ビルダーを開きます。 式ビルダーで、カテゴリ関係演算子を選択します。 およびアイテムEQ 。 式で 上部のフィールドで、ツールバーのツールを使用してSTATE EQ「CA」と入力し、完了をクリックします。 。
[データターゲット]ページに戻り、zipフィールドの後に姓と名のフィールドを再配置することにしました。 姓を選択します 下をクリックします フィールドがリストの一番下に表示されるまで、 FIRSTNAMEを選択します。 同じことをします。
両方のターゲットの追加が完了すると、フィールドと変更が[データターゲット]ページに表示されます。
完了をクリックします スクリプトの作成を完了するには、以下にIRIWorkbenchの色分けされた構文対応のエディタービューに表示されます。
結果
スクリプトを右クリックし、名前を付けて実行> を選択して、ジョブスクリプトを実行します IRIジョブ 。ターゲットデータは、下に開いているタブに表示されます:
NextFormまたはVoracityでのデータの複製について質問がある場合は、IRIの担当者にお問い合わせください。