MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Native MongoDB Masking (Phương pháp thứ 3)

Lưu ý:Bài viết này đề cập đến phương pháp khách hàng IRI có sẵn thứ ba để tạo mặt nạ tĩnh hoặc mã hóa PII trong các bộ sưu tập MongoDB có cấu trúc thông qua sản phẩm IRI FieldShield hoặc nền tảng IRI Voracity (cả hai đều được cung cấp bởi IRI CoSort v10 và hỗ trợ trình điều khiển MongoDB gốc). Phương pháp thứ tư hiện có sẵn để tìm và che giấu PII trôi nổi trong các bộ sưu tập MongoDB không có cấu trúc thông qua IRI DarkShield.

Bài viết này giải thích cách hỗ trợ thu thập MongoDB mới, nguyên bản trong các sản phẩm thao tác dữ liệu của IRI cho phép hiệu suất nhanh chóng và hợp nhất nhiều chức năng tập trung vào dữ liệu, bao gồm:

  • lập hồ sơ &làm sạch dữ liệu
  • che giấu dữ liệu &chấm điểm rủi ro tái ID
  • tích hợp dữ liệu (ETL) &CDC
  • di chuyển &tái tạo dữ liệu
  • báo cáo tùy chỉnh &tạo dữ liệu thử nghiệm

Hỗ trợ cấp API cho dữ liệu MongoDB được cung cấp trong chương trình SortCL cốt lõi, là công cụ xử lý mặc định của nền tảng quản lý dữ liệu IRI Voracity, cũng như các sản phẩm tập hợp con của nó:CoSort, NextForm, FieldShield và RowGen. Phương thức kết nối này là cách thứ ba và nhanh nhất mà khách hàng IRI có thể lấy và thao tác dữ liệu trong bộ sưu tập MongoDB. Đầu tiên là thông qua các tệp phẳng như được mô tả vào năm 2014 tại đây. Thứ hai là với trình điều khiển ODBC và JDBC được mô tả vào năm 2016 tại đây.

Giới thiệu về MongoDB

MongoDB là một “NoSQL”, cơ sở dữ liệu hướng tài liệu hoạt động dựa trên khái niệm về tập hợp và tài liệu giống JSON với các lược đồ. Một tập hợp, giống như một bảng cơ sở dữ liệu quan hệ, chứa một hoặc nhiều tài liệu.

Tài liệu là một tập hợp các cặp khóa-giá trị. Tài liệu có lược đồ động, có nghĩa là các tài liệu trong cùng một bộ sưu tập không cần phải có cùng một nhóm trường hoặc cấu trúc. Các trường phổ biến trong tài liệu của bộ sưu tập có thể chứa các loại dữ liệu khác nhau.

Biểu đồ sau so sánh thuật ngữ của RDBMS và MongoDB:

Oracle MongoDB
Cơ sở dữ liệu Cơ sở dữ liệu
Bảng Bộ sưu tập
Hàng Tài liệu
Cột Trường
Khóa Chính ID đối tượng do MongoDB cung cấp

Trình diễn

Ví dụ của tôi bên dưới thực hiện một cách sắp xếp, mặt nạ và chuyển động đơn giản của một bộ sưu tập MongoDB được gọi là "trưởng" vào một bộ sưu tập khác và cũng ra ngoài một tệp JSON độc lập. Tệp JSON là một nguồn dữ liệu IRI mới khác được hỗ trợ trong bản phát hành CoSort v10.

Kết nối cơ sở dữ liệu

Bước đầu tiên là thiết lập kết nối với phiên bản MongoDB của bạn trong IRI Workbench. Được xây dựng trên Eclipse, IRI Workbench là IDE thiết kế và triển khai công việc phổ biến cho tất cả các phần mềm IRI được liệt kê ở trên. Đây cũng là nơi bạn có thể kết nối với các DB khác, HDFS và các nguồn dữ liệu bổ sung trong hệ thống tệp cục bộ hoặc từ xa.

Từ Trình đơn IRI (biểu tượng hình xoáy) trong thanh công cụ Bàn làm việc, chọn Tùy chọn IRI> IRI> Đăng ký kết nối URL> Thêm . Chỉ định một MongoDB hiện có từ lược đồ và tên máy chủ. Tên DB của tôi là cmitra, được tạo trên máy chủ ‘mongodbu’:

Để thuận tiện, tôi đã cài đặt plugin MonjaDB miễn phí cho Eclipse để tương tác với cơ sở dữ liệu trong phối cảnh Workbench của tôi. Bộ sưu tập của tôi bao gồm các Tổng thống Hoa Kỳ theo tên, đảng phái, tiểu bang và ngày nhiệm kỳ của họ. MongoDB đã chỉ định một ID duy nhất cho mỗi tài liệu:

Định nghĩa siêu dữ liệu

Trước khi có thể xử lý dữ liệu MongoDB ở chế độ này, tôi phải tạo tệp định dạng định nghĩa dữ liệu (DDF) để đưa ra các tài liệu thu thập của tôi trong các câu lệnh / FIELD để sử dụng trong các công việc tương thích với SortCL như FieldShield. Cũng như các nguồn dữ liệu khác được hỗ trợ trong Workbench, trình hướng dẫn sẽ tự động thực hiện việc này cho tôi.

Tạo (hoặc chọn một thư mục dự án hiện có) trong Workbench để lưu trữ các tài sản công việc như siêu dữ liệu nguồn, tập lệnh / sơ đồ SortCL, quy tắc tạo mặt nạ đã lưu, lớp dữ liệu, v.v. Với thư mục đó đang hoạt động (được đánh dấu) và kiến ​​thức về vị trí của bộ sưu tập MongoDB của tôi, Bây giờ tôi có thể chạy Khám phá siêu dữ liệu trình hướng dẫn từ trình đơn IRI ở thanh công cụ trên cùng.

Trong bước Nhận dạng Nguồn Dữ liệu này, tôi có thể chọn kết nối ODBC, duyệt tệp hoặc URL. Trong trường hợp này, tôi đang truy cập MongoDB qua URL, vì vậy tôi chọn cái đó và MongoDB cho định dạng của mình. Sau khi duyệt tìm mục đăng ký cơ sở dữ liệu mà tôi đã thêm trước đó, tôi nhập tên bộ sưu tập. Trình hướng dẫn thêm chuỗi này vào chuỗi kết nối MongoDB tiêu chuẩn.

Trang Data Viewer và Field Editor kết nối với bộ sưu tập và xem trước nội dung cột và các cột của nó dưới dạng tên trường SortCL:

Khi tôi nhấp vào Hoàn tất , tệp DDF của tôi được tạo và hiển thị như sau:

/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")

Siêu dữ liệu DDF này có thể được sử dụng trong bất kỳ công việc nào (hoặc các công việc) ảnh hưởng đến bộ sưu tập này, bao gồm cả siêu dữ liệu trong ví dụ này như được hiển thị bên dưới. Cột _id không cần thiết cho mục đích của tôi đã bị bỏ qua.

Lưu ý việc sử dụng ký hiệu dấu chấm trong thuộc tính “MDEF”, là định nghĩa đường dẫn bắt buộc đối với quy trình công việc SortCL phần tử phẳng, rời rạc. Các phần tử mảng tài liệu con và đa giá trị được tạo theo thứ tự bắt đầu bằng 0 theo thứ tự xuất hiện của chúng.

Chạy trình hướng dẫn thiết kế công việc

Workbench bao gồm nhiều trình hướng dẫn phù hợp với mục đích khác nhau để tạo siêu dữ liệu để chạy các tác vụ rời rạc (tập lệnh. * Cl) hoặc các công việc theo hướng hàng loạt (tệp .flow và .bat / .sh) trên dòng lệnh, thông qua Workbench, các chương trình của bạn , v.v.

Tôi đã chọn một trình hướng dẫn chuyển đổi sắp xếp cơ bản vì trong nó tôi có thể thêm nhiều mục tiêu, các trường đầu ra mặt nạ, v.v. Trình hướng dẫn này chạy từ biểu tượng nhóm menu CoSort (đồng hồ bấm giờ) từ thanh công cụ. Tôi chọn Công việc sắp xếp mới và chỉ định Chiefsout.scl như tên công việc của tôi:

Trong bước tiếp theo, tôi xác định tên của bộ sưu tập MongoDB nguồn của mình và vị trí của nó, bằng cách sử dụng cùng một URL định vị được sử dụng trong định nghĩa siêu dữ liệu cho "trưởng":

Bước tiếp theo là chỉ định việc tạo hoặc sử dụng siêu dữ liệu hiện có để thu thập ở định dạng định nghĩa dữ liệu (DDF) được yêu cầu trong tất cả các chương trình tương thích với SortCL. Trong trường hợp này, tôi sẽ sử dụng tệp DDF mà tôi đã tạo ở Bước 2 ở trên. Tôi chọn Thêm siêu dữ liệu hiện có để đưa các bố cục này trực tiếp vào tập lệnh công việc của tôi dưới dạng thông số kỹ thuật đầu vào và sau đó chúng được phản ánh trong hộp thoại bên dưới:

Trên trang tiếp theo, tôi chỉ định trường khóa sắp xếp để xác định thứ tự dữ liệu trong (các) mục tiêu của mình. Trong trường hợp này, tôi sẽ đi từ thứ tự thời gian mặc định của các tổng thống và sắp xếp chúng theo tên:

Sau khi nhấp vào Tiếp theo , trang Mục tiêu Dữ liệu sẽ hiển thị. Như với các tùy chọn nguồn của tôi, có một số loại mục tiêu khác nhau mà tôi có thể tạo và định dạng thông qua trình hướng dẫn này và sau đó trong chế độ thiết kế công việc khác (ví dụ:trình chỉnh sửa tập lệnh).

Trình hướng dẫn này và các trình hướng dẫn Workbench khác cho phép tôi tiếp tục thêm các mục tiêu và xác định chi tiết nội dung của từng mục tiêu. Các thuộc tính dành riêng cho mục tiêu bao gồm:định dạng (ví dụ:CSV, MongoDB, MFVL), định dạng (ví dụ:đầu trang và chân trang, hàng cần bỏ qua, v.v.), điều kiện lọc, bố cục cấp trường và các hàm / quy tắc được áp dụng (ví dụ:mới kiểu dữ liệu, mặt nạ, logic biểu thức, tổng hợp).

Trong trang Mục tiêu dữ liệu, tôi biết rằng tôi muốn có hai mục tiêu:một tệp JSON độc lập và một bộ sưu tập MongoDB từ xa. Do đó, tôi nhấp vào Thêm Mục tiêu Dữ liệu và bắt đầu chỉ định cái đầu tiên. Trừ khi tôi chỉnh sửa các tùy chọn mục tiêu hoặc bố cục trường mục tiêu, đầu ra của tôi sẽ chỉ chứa phiên bản được sắp xếp của dữ liệu đầu vào như hiện tại. Đó là những gì tệp đích JSON của tôi sẽ chứa bằng cách tôi đặt tên cho nó ..

Khi tôi nhấp lại vào Thêm mục tiêu dữ liệu Tôi xác định thứ hai là một bộ sưu tập MongoDB qua URL. Chiefsmask mới của tôi bộ sưu tập sẽ tự động xây dựng và điền khi tôi chạy công việc. Trong mục tiêu đó, tôi muốn một trong những trường được che giấu để bảo mật, tên của Tổng thống trong trường hợp này. Tôi nhấp vào Bố cục Trường Mục tiêu để mở trang ánh xạ từ trên xuống dưới cho nguồn và mục tiêu của tôi:

Trang này cũng hiển thị quy tắc tạo mặt nạ của tôi đã được xác định. Tôi đã xác định điều đó bằng cách nhấp chuột phải vào PRESIDENT trong mục tiêu và nhấp vào Tạo Quy tắc (thay vì duyệt đến một cái hiện có). Điều đó đã mở ra một danh sách các thuật sĩ bảo vệ cấp trường, được hiển thị bên dưới. Lưu ý rằng có nhiều chức năng tạo mặt nạ dữ liệu tĩnh hơn.

Tôi đã chọn Masking (thao tác lại nhân vật). Trên trang đó, tôi đã đặt mặc định toàn trường để che đi toàn bộ tên của Tổng thống trong bộ sưu tập mục tiêu:

Sau khi hoàn thành các lựa chọn này, tôi sẽ quay trở lại hộp thoại ánh xạ. Tôi nhấp vào OK và quay lại trang Mục tiêu dữ liệu. Khi kết thúc các thay đổi của tôi, tôi sẽ tóm tắt với các chi tiết bên dưới:

Tôi nhấp vào OK để kết thúc trình hướng dẫn và xây dựng công việc.

Xem xét công việc

Với Chiefsout.scl công việc hiện được xây dựng trong dự án đang hoạt động của tôi và tự động mở cho tôi trong cửa sổ chỉnh sửa, tôi có thể xem và sửa đổi nó từ đó hoặc thông qua các trang hộp thoại trong ngữ cảnh có sẵn. Tìm hiểu về các tùy chọn chỉnh sửa tập lệnh tại đây.

Tôi cũng có thể nhấp chuột phải vào bên trong tập lệnh hoặc tên tệp của nó trong cửa sổ dự án và từ menu tùy chọn IRI, hãy xây dựng một sơ đồ luồng để trực quan hóa nhiệm vụ trong một dự án. Từ bên trong sơ đồ dòng, tôi nhấp đúp vào khối tác vụ màu nâu để mở sơ đồ ánh xạ biến đổi hiển thị chuyển động của trường từ nguồn sang mục tiêu mà tôi đã xác định, lần này từ trái sang phải:

Chiefsout.scl script và Chiefsout.flow tệp đều là nội dung siêu dữ liệu mở, có thể chia sẻ theo nhóm, có chung một mô hình dữ liệu.

Chạy công việc

Ngoài ra còn có nhiều cách để thực thi công việc mà tôi đã tạo, cả từ và bên ngoài Workbench.

Dưới đây là bộ sưu tập nguồn và công việc tương tự của tôi được thể hiện dưới dạng kịch bản và phác thảo. Sau khi thực hiện công việc, tôi đã mở chế độ xem MonjaDB của mục tiêu bộ sưu tập được sắp xếp và có mặt nạ, và mục tiêu tệp JSON được sắp xếp của tôi ở bên phải của nó:

Như đã đề cập, nhiều hoán vị khác và các công việc quản lý dữ liệu nhanh hơn bằng cách sử dụng dữ liệu MongoDB hiện có thể thực hiện được trong môi trường này. Người dùng IRI Voracity hiện có thể chọn trong số ba phương thức kết nối với MongoDB và hàng chục tính năng chức năng.

Nếu bạn có bất kỳ câu hỏi nào hoặc cần trợ giúp, hãy liên hệ với đại diện IRI của bạn tại đây.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB nối dữ liệu bên trong một mảng đối tượng

  2. Lệnh đếm MongoDB

  3. Cách xóa bảng điều khiển trong MongoDB

  4. SocketException:Địa chỉ đã được sử dụng MONGODB

  5. WiredTiger và cập nhật tại chỗ