sql >> Base de Datos >  >> NoSQL >> MongoDB

Enmascaramiento nativo de MongoDB (3er método)

Nota:Este artículo cubre el tercer método de cliente de IRI disponible para enmascarar o cifrar estáticamente PII en recopilaciones estructuradas de MongoDB a través del producto IRI FieldShield o la plataforma IRI Voracity (ambos con tecnología de IRI CoSort v10 y compatibilidad con el controlador MongoDB nativo). Un cuarto método ahora está disponible para encontrar y enmascarar PII flotante en colecciones MongoDB no estructuradas a través de IRI DarkShield.

Este artículo explica cómo el nuevo soporte nativo de recopilación de MongoDB en los productos de manipulación de datos de IRI permite el rendimiento y la consolidación rápidos de múltiples funciones centradas en datos, que incluyen:

  • perfilado y limpieza de datos
  • enmascaramiento de datos y puntuación de riesgo de reidentificación
  • integración de datos (ETL) y CDC
  • migración y replicación de datos
  • informe personalizado y generación de datos de prueba

El soporte de nivel de API para los datos de MongoDB se ofrece en el programa principal SortCL, que es el motor de procesamiento predeterminado de la plataforma de gestión de datos IRI Voracity, así como en sus subconjuntos de productos:CoSort, NextForm, FieldShield y RowGen. Este método de conexión es la tercera y más rápida forma en que los clientes de IRI pueden adquirir y manipular datos en las colecciones de MongoDB. El primero es a través de archivos planos como se describe en 2014 aquí. El segundo es con los controladores ODBC y JDBC descritos en 2016 aquí.

Acerca de MongoDB

MongoDB es una base de datos "NoSQL" orientada a documentos que funciona con el concepto de colecciones y documentos similares a JSON con esquemas. Una colección, como una tabla de base de datos relacional, contiene uno o más documentos.

Un documento es un conjunto de pares clave-valor. Los documentos tienen un esquema dinámico, lo que significa que los documentos de la misma colección no necesitan tener el mismo conjunto de campos o estructura. Los campos comunes en los documentos de una colección pueden contener diferentes tipos de datos.

El siguiente cuadro compara la terminología de un RDBMS y MongoDB:

Oracle MongoDB
Base de datos Base de datos
Tabla Colección
Fila Documento
Columna Campo
Clave principal ID de objeto proporcionado por MongoDB

Demostración

Mi ejemplo a continuación hace una clasificación, una máscara y un movimiento simples de una colección de MongoDB llamada "jefes" a otra colección, y también a un archivo JSON independiente. Los archivos JSON son otra nueva fuente de datos IRI admitida en el lanzamiento de CoSort v10.

Conexión de base de datos

El primer paso es establecer conectividad con su instancia de MongoDB en IRI Workbench. Basado en Eclipse, IRI Workbench es el IDE común de diseño e implementación de trabajos para todo el software IRI mencionado anteriormente. También es donde puede conectarse a otras bases de datos, HDFS y fuentes de datos adicionales en sistemas de archivos locales o remotos.

En el menú IRI (icono de espiral) en la barra de herramientas de Workbench, seleccione Preferencias de IRI> IRI> Registro de conexión URL> Agregar . Especifique un MongoDB existente del esquema y el nombre de host del servidor. El nombre de mi base de datos es cmitra, creado en el host 'mongodbu':

Para mayor comodidad, instalé el complemento gratuito MonjaDB para que Eclipse interactúe con la base de datos dentro de mi perspectiva de Workbench. Mi colección contiene presidentes de EE. UU. por nombre, partido, estado y fechas de mandato. MongoDB asignó una ID única para cada documento:

Definición de metadatos

Antes de que pueda procesar los datos de MongoDB en este modo, debo crear un archivo de formato de definición de datos (DDF) que presente mis documentos de colección en declaraciones /FIELD para usar en trabajos compatibles con SortCL como FieldShield. Al igual que con otras fuentes de datos admitidas en Workbench, un asistente hace esto automáticamente.

Cree (o seleccione una existente) Carpeta de proyecto en Workbench para almacenar los recursos del trabajo, como los metadatos de origen, el script/diagrama de SortCL, las reglas de enmascaramiento guardadas, las clases de datos, etc. Con esa carpeta activa (resaltada) y conociendo la ubicación de mi colección MongoDB, Ahora puedo ejecutar Descubrir metadatos asistente del menú IRI en la barra de herramientas superior.

En este paso de identificación de fuente de datos, puedo seleccionar una conexión ODBC, búsqueda de archivos o URL. En este caso, llego a MongoDB a través de la URL, así que elijo eso y MongoDB para mi formato. Después de buscar la entrada de registro de la base de datos que agregué anteriormente, ingreso el nombre de la colección. El asistente antepone esto a la cadena de conexión estándar de MongoDB.

La página Visor de datos y Editor de campos se conecta a la colección y muestra una vista previa del contenido de las columnas y las columnas como nombres de campo SortCL:

Cuando hago clic en Finalizar , mi archivo DDF se crea y se muestra de la siguiente manera:

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

Estos metadatos DDF se pueden usar en cualquier trabajo (o trabajos) que afecten a esta colección, incluido el de este ejemplo, como se muestra a continuación. Se omitió la columna _id no necesaria para mis propósitos.

Tenga en cuenta el uso de la notación de puntos en el atributo "MDEF", que es una definición de ruta requerida para el proceso de trabajos SortCL de elementos planos y discretos. Los elementos de matriz de subdocumentos y valores múltiples se generan en secuencia comenzando con 0 en su orden de aparición.

Ejecute el asistente de diseño de tareas

Workbench incluye muchos asistentes específicos para generar metadatos para ejecutar tareas discretas (secuencias de comandos .*cl) o trabajos controlados por lotes (archivos .flow y .bat/.sh) en la línea de comandos, a través de Workbench, sus programas , etc

Elegí un asistente de transformación de clasificación básico porque dentro de él puedo agregar múltiples objetivos, enmascarar campos de salida, etc. Este asistente se ejecuta desde el icono del grupo de menú CoSort (cronómetro) de la barra de herramientas. Selecciono Nuevo trabajo de clasificación y especificó jefesout.scl como el nombre de mi trabajo:

En el siguiente paso, identifico el nombre de mi colección MongoDB de origen y dónde está, utilizando la misma URL de localización utilizada durante la definición de metadatos para "jefes":

El siguiente paso es especificar la generación o el uso de metadatos existentes para la colección en el formato de definición de datos (DDF) requerido en todos los programas compatibles con SortCL. En este caso, usaré el archivo DDF que creé en el Paso 2 anterior. Selecciono Agregar metadatos existentes para poner estos diseños directamente en mi secuencia de comandos de trabajo como especificaciones de entrada, y luego se reflejan en el siguiente cuadro de diálogo:

En la página siguiente, especifico un campo de clave de clasificación para definir el orden de los datos en mis objetivos. En este caso, pasaré del orden cronológico predeterminado de los presidentes y los ordenaré por nombre:

Después de hacer clic en Siguiente , se muestra la página Destinos de datos. Al igual que con mis opciones de fuente, hay varios tipos diferentes de objetivos que puedo crear y formatear a través de este asistente y también más adelante en otro modo de diseño de trabajo (por ejemplo, editor de secuencias de comandos).

Este y otros asistentes de Workbench me permiten seguir agregando objetivos y definiendo granularmente el contenido de cada uno. Los atributos específicos de destino incluyen:formato (p. ej., CSV, MongoDB, MFVL), formato (p. ej., encabezados y pies de página, filas para omitir, etc.), condiciones de filtro, diseños a nivel de campo y funciones/reglas aplicadas (p. ej., nuevo tipos de datos, máscaras, lógica de expresión, agregación).

En la página Destinos de datos, sé que quiero dos destinos:un archivo JSON independiente y una colección MongoDB remota. Por lo tanto, hago clic en Agregar objetivo de datos y comenzar a especificar el primero. A menos que edite las opciones de destino o el diseño del campo de destino, mi salida solo contendrá la versión ordenada de los datos de entrada tal cual. Eso es lo que contendrá mi archivo de destino JSON con solo nombrarlo.

Cuando vuelvo a hacer clic en Agregar objetivo de datos Defino el segundo como una colección MongoDB a través de URL. Mi nueva máscara de jefe La colección se compilará y completará automáticamente cuando ejecute el trabajo. Es dentro de ese objetivo que quiero que uno de los campos esté enmascarado por privacidad, los nombres del presidente en este caso. Hago clic en Diseño de campo de destino para abrir una página de mapeo de arriba a abajo para mi fuente y destinos:

Esta página también muestra mi regla de enmascaramiento ya definida. Lo había definido haciendo clic con el botón derecho en PRESIDENT en el objetivo y haciendo clic en Crear regla (en lugar de navegar a uno existente). Eso abrió una lista de asistentes de protección a nivel de campo, que se muestra a continuación. Tenga en cuenta que hay más funciones de enmascaramiento de datos estáticos disponibles.

Seleccioné Enmascaramiento (redacción de caracteres). En esa página, tomé el valor predeterminado de campo completo para enmascarar el nombre completo del presidente en la colección objetivo:

Después de terminar estas selecciones, vuelvo al cuadro de diálogo de mapeo. Hago clic en Aceptar y vuelva a la página Destinos de datos. Al final de mis cambios, terminaré con los detalles a continuación:

Hago clic en Aceptar para finalizar el asistente y compilar el trabajo.

Revisar el trabajo

Con el jefesout.scl trabajo ahora integrado en mi proyecto activo y se abre para mí en la ventana de edición automáticamente, puedo verlo y modificarlo desde allí, o a través de las páginas de diálogo disponibles en contexto. Obtén más información sobre las opciones de edición de secuencias de comandos aquí.

También puedo hacer clic con el botón derecho dentro del script o su nombre de archivo en la ventana del proyecto y, desde un menú de opciones de IRI, crear un diagrama de flujo para visualizar la tarea dentro de un proyecto. Desde dentro del diagrama de flujo, hago doble clic en el bloque de tareas marrón para abrir un diagrama de asignación de transformación que muestra el movimiento de campo de origen a destino que he definido, esta vez de izquierda a derecha:

El jefesout.scl script y jefesout.flow son activos de metadatos abiertos y compartibles en equipo que comparten un modelo de datos común.

Ejecutar el trabajo

También hay varias formas de ejecutar el trabajo que construí, tanto desde como fuera de Workbench.

A continuación se muestra la colección fuente y mi mismo trabajo representado en forma de guión y esquema. Después de ejecutar el trabajo, abrí una vista MonjaDB del destino de la colección ordenado y enmascarado, y mi destino del archivo JSON ordenado a su derecha:

Como se mencionó, muchas otras permutaciones y trabajos de administración de datos más rápidos que usan datos de MongoDB ahora son posibles en este entorno. Los usuarios de IRI Voracity ahora pueden elegir entre tres métodos de conexión a MongoDB y docenas de capacidades funcionales.

Si tiene alguna pregunta o necesita ayuda, comuníquese con su representante de IRI aquí.