sql >> データベース >  >> NoSQL >> MongoDB

ネイティブMongoDBマスキング(3番目の方法)

    注:この記事では、IRIFieldShield製品またはIRIVoracityプラットフォーム(どちらもIRI CoSort v10とネイティブMongoDBドライバーのサポート)を介して、構造化されたMongoDBコレクションのPIIを静的にマスキングまたは暗号化するための3番目に利用可能なIRIカスタマーメソッドについて説明します。 4番目の方法が、IRIDarkShieldを介して非構造化MongoDBコレクションに浮かんでいるPIIを見つけてマスキングするために利用できるようになりました。

    この記事では、IRIのデータ操作製品での新しいネイティブMongoDBコレクションのサポートにより、次のような複数のデータ中心の機能の迅速なパフォーマンスと統合がどのように可能になるかについて説明します。

    • データのプロファイリングとクレンジング
    • データマスキングと再IDリスクスコアリング
    • データ統合(ETL)とCDC
    • データの移行と複製
    • カスタムレポートとテストデータの生成

    MongoDBデータのAPIレベルのサポートは、コアのSortCLプログラムで提供されます。これは、IRI Voracityデータ管理プラットフォームのデフォルトの処理エンジンであり、そのサブセット製品であるCoSort、NextForm、FieldShield、RowGenです。この接続方法は、IRIのお客様がMongoDBコレクションのデータを取得して操作できる3番目の最速の方法です。 1つ目は、2014年にここで説明されているフラットファイル経由です。 2つ目は、2016年にここで説明されているODBCおよびJDBCドライバーを使用する場合です。

    MongoDBについて

    MongoDBは、「NoSQL」のドキュメント指向データベースであり、コレクションの概念とスキーマを使用したJSONのようなドキュメントで動作します。リレーショナルデータベーステーブルのようなコレクションには、1つ以上のドキュメントが含まれます。

    ドキュメントは、キーと値のペアのセットです。ドキュメントには動的スキーマがあります。つまり、同じコレクション内のドキュメントが同じフィールドまたは構造のセットを持つ必要はありません。コレクションのドキュメントの一般的なフィールドには、さまざまな種類のデータが含まれている場合があります。

    次のグラフは、RDBMSとMongoDBの用語を比較しています。

    データベース データベース テーブル コレクション ドキュメント フィールド 主キー MongoDBによって提供されるオブジェクトID
    Oracle MongoDB

    デモンストレーション

    以下の私の例では、「chiefs」と呼ばれるMongoDBコレクションを別のコレクションに、またスタンドアロンのJSONファイルに単純に並べ替え、マスク、および移動します。 JSONファイルは、CoSortv10のリリースでサポートされているもう1つの新しいIRIデータソースです。

    データベース接続

    最初のステップは、IRIWorkbenchでMongoDBインスタンスとの接続を確立することです。 Eclipse上に構築されたIRIWorkbenchは、上記のすべてのIRIソフトウェアに共通のジョブ設計およびデプロイメントIDEです。また、ローカルまたはリモートのファイルシステム内の他のDB、HDFS、および追加のデータソースに接続できる場所でもあります。

    ワークベンチツールバーのIRIメニュー(スワールアイコン)から、IRI設定>IRI>URL接続レジストリ>追加を選択します。 。スキーマとサーバーのホスト名から既存のMongoDBを指定します。私のDBの名前はcmitraで、「mongodbu」ホストで作成されています:

    便宜上、Eclipse用の無料のMonjaDBプラグインをインストールして、Workbenchパースペクティブ内でデータベースと対話しました。私のコレクションには、名前、政党、州、および任期日ごとの米国大統領が含まれています。 MongoDBは、ドキュメントごとに一意のIDを割り当てました:

    メタデータの定義

    このモードでMongoDBデータを処理する前に、FieldShieldなどのSortCL互換ジョブで使用するために、コレクションドキュメントを/FIELDステートメントにレイアウトするデータ定義形式(DDF)ファイルを作成する必要があります。 Workbenchでサポートされている他のデータソースと同様に、ウィザードがこれを自動的に実行します。

    ワークベンチでプロジェクトフォルダを作成(または既存のものを選択)して、ソースメタデータ、SortCLスクリプト/図、保存されたマスキングルール、データクラスなどのジョブアセットを保存します。そのフォルダがアクティブ(強調表示)で、MongoDBコレクションの場所がわかっている状態でこれで、メタデータの検出を実行できます 上部ツールバーのIRIメニューからウィザードを使用します。

    このデータソースの識別手順では、ODBC接続、ファイル参照、またはURLを選択できます。この場合、URL経由でMongoDBにアクセスしているので、それとMongoDBをフォーマットとして選択します。以前に追加したデータベースレジストリエントリを参照した後、コレクション名を入力します。ウィザードはこれを標準のMongoDB接続文字列の前に追加します。

    [データビューアとフィールドエディタ]ページはコレクションに接続し、その列の内容と列をSortCLフィールド名としてプレビューします。

    完了をクリックすると 、DDFファイルが作成され、次のように表示されます。

    /FIELD=(PRESIDENT, TYPE=UTF8, POSITION=1, SEPARATOR="|", MDEF="president")
    /FIELD=(PARTY, TYPE=UTF8, POSITION=2, SEPARATOR="|", MDEF="party")
    /FIELD=(STATE, TYPE=UTF8, POSITION=3, SEPARATOR="|", MDEF="state")
    /FIELD=(START, TYPE=NUMERIC, POSITION=4, SEPARATOR="|", MDEF="term.start")
    /FIELD=(END, TYPE=NUMERIC, POSITION=5, SEPARATOR="|", MDEF="term.end")

    このDDFメタデータは、このコレクションに影響を与える任意のジョブ(または複数のジョブ)で使用できます。これには、以下に示すこの例のメタデータも含まれます。 _id列は、私の目的では不要です。

    「MDEF」属性でドット表記が使用されていることに注意してください。これは、個別のフラット要素であるSortCLジョブプロセスへの必須パス定義です。複数値およびサブドキュメントの配列要素は、出現順に0から順に生成されます。

    ジョブデザインウィザードを実行する

    Workbenchには、コマンドラインでプログラムを介して個別のタスク(。* clスクリプト)またはバッチ駆動型ジョブ(.flowおよび.bat / .shファイル)を実行するためのメタデータを生成するためのさまざまな目的に合ったウィザードが含まれています、など。

    基本的な並べ替え変換ウィザードを選択したのは、その中に複数のターゲットを追加したり、出力フィールドをマスクしたりできるためです。このウィザードは、ツールバーのCoSortメニューグループ(ストップウォッチ)アイコンから実行されます。 新しい並べ替えジョブを選択します および指定されたchiefsout.scl 私の仕事の名前として:

    次のステップでは、「チーフ」のメタデータ定義で使用したものと同じロケーターURLを使用して、ソースMongoDBコレクションの名前とその場所を特定します。

    次のステップは、すべてのSortCL互換プログラムで必要なデータ定義(DDF)形式で、コレクションの既存のメタデータの生成または使用を指定することです。この場合、上記の手順2で作成したDDFファイルを使用します。 既存のメタデータを追加を選択します これらのレイアウトを入力仕様としてジョブスクリプトに直接配置すると、以下のダイアログに反映されます。

    次のページでは、ソートキーフィールドを指定して、ターゲット内のデータの順序を定義します。この場合、大統領のデフォルトの時系列順から、名前で並べ替えます。

    次へをクリックした後 、[データターゲット]ページが表示されます。ソースオプションと同様に、このウィザードを使用して、また後で別のジョブデザインモード(スクリプトエディターなど)で作成およびフォーマットできる、いくつかの異なる種類のターゲットがあります。

    このウィザードや他のWorkbenchウィザードを使用すると、ターゲットを追加し続け、各ターゲットのコンテンツをきめ細かく定義できます。ターゲット固有の属性には、フォーマット(CSV、MongoDB、MFVLなど)、フォーマット(ヘッダーとフッター、スキップする行など)、フィルター条件、フィールドレベルのレイアウト、適用される関数/ルール(新規など)が含まれます。データ型、マスク、式ロジック、集計)。

    [データターゲット]ページで、スタンドアロンのJSONファイルとリモートのMongoDBコレクションの2つのターゲットが必要であることがわかりました。したがって、データターゲットの追加をクリックします そして最初のものを指定し始めます。ターゲットオプションまたはターゲットフィールドレイアウトを編集しない限り、出力には入力データの並べ替えられたバージョンのみがそのまま含まれます。これが、JSONターゲットファイルに名前を付けるだけで含まれるものです。

    もう一度データターゲットの追加をクリックすると 2番目をURL経由のMongoDBコレクションとして定義します。私の新しいチーフマスク ジョブを実行すると、コレクションが自動的にビルドされ、データが入力されます。プライバシーのためにマスクされたフィールドの1つ、この場合は大統領の名前が必要なのは、そのターゲットの範囲内です。 ターゲットフィールドレイアウトをクリックします ソースとターゲットのトップからボトムへのマッピングページを開くには:

    このページには、すでに定義されているマスキングルールも表示されます。ターゲットのPRESIDENTを右クリックし、ルールの作成をクリックして定義しました。 (既存のものを参照する代わりに)。これにより、以下に示すフィールドレベルの保護ウィザードのリストが開きました。より多くの静的データマスキング機能が利用可能であることに注意してください。

    マスキング(文字の編集)を選択しました。そのページでは、フルフィールドのデフォルトを使用して、ターゲットコレクション内の大統領の名前全体をマスクしました。

    これらの選択を完了すると、マッピングダイアログに戻ります。 OKをクリックします [データターゲット]ページに戻ります。変更の最後に、以下の詳細を示します。

    OKをクリックします ウィザードを終了してジョブをビルドします。

    ジョブを確認する

    chiefsout.sclを使用 これで、アクティブなプロジェクトにジョブが組み込まれ、編集ウィンドウで自動的に開きます。そこから、または使用可能なコンテキスト内のダイアログページから、ジョブを表示および変更できます。スクリプト編集オプションについては、こちらをご覧ください。

    プロジェクトウィンドウでスクリプト内またはそのファイル名を右クリックし、オプションのIRIメニューから、プロジェクト内のタスクを視覚化するためのフロー図を作成することもできます。フロー図の内側から、茶色のタスクブロックをダブルクリックして、定義したソースからターゲットへのフィールドの動きを示す変換マッピング図を開きます。今回は左から右です。

    chiefsout.scl スクリプトとchiefsout.flow ファイルはどちらもオープンでチーム共有可能なメタデータアセットであり、共通のデータモデルを共有しています。

    ジョブを実行する

    Workbenchの内外で、私が作成したジョブを実行する方法も複数あります。

    以下に示すのは、ソースコレクションと、スクリプトおよびアウトライン形式で表された同じジョブです。ジョブを実行した後、ソートおよびマスクされたコレクションターゲットのMonjaDBビューを開き、その右側にソートされたJSONファイルターゲットを開きました:

    前述のように、MongoDBデータの他の多くの順列、およびそれを使用したより高速なデータ管理ジョブが、この環境で可能になりました。 IRI Voracityユーザーは、MongoDBへの3つの接続方法と、数十の機能機能から選択できるようになりました。

    ご不明な点がある場合やサポートが必要な場合は、こちらのIRI担当者にお問い合わせください。


    1. MongoDBドキュメントのマーシャリングを解除するときにnullを無視するにはどうすればよいですか?

    2. MongoDB-Queryでキャストすることは可能ですか?

    3. mongodbローカルサーバーを起動できません

    4. リアルタイムのストックアプリケーション用のRedisキーデザイン