sql >> データベース >  >> RDS >> Database

IRIWorkbenchでのデータレプリケーション

    データ複製とは、ある場所から別の場所にデータをコピーすることを意味し、通常、同じレベルの情報を共有する必要がある異なるデータベースのユーザー間で行われます。レプリケーションには他のデータソースとターゲットも含まれる可能性があり、変換と時間の面でより複雑になる可能性があります。

    これは、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の担当者にお問い合わせください。

      データソースエクスプローラーからテーブルを右クリックし、 IRIを選択します > DDFを生成する 。これにより、アクティブなプロジェクトフォルダにテーブルのDDFが作成され、実行時にIRIのデータ操作エンジンによって参照されます。

    1. 高可用性のためにPostgreSQLを使用してTeamcityをデプロイする方法

    2. AccessをPostgreSQLに変換しますか?

    3. 関数からストアドプロシージャを実行する

    4. 更新クエリの最適化