Observação:este artigo aborda o terceiro método de cliente IRI disponível para mascarar ou criptografar PII estaticamente em coleções estruturadas do MongoDB por meio do produto IRI FieldShield ou da plataforma IRI Voracity (ambos com tecnologia IRI CoSort v10 e seu suporte ao driver MongoDB nativo). Um quarto método agora está disponível para encontrar e mascarar PII flutuando em coleções não estruturadas do MongoDB por meio do IRI DarkShield.
Este artigo explica como o novo suporte de coleção nativa do MongoDB nos produtos de manipulação de dados da IRI permite o rápido desempenho e a consolidação de várias funções centradas em dados, incluindo:
- perfil e limpeza de dados
- mascaramento de dados e pontuação de risco de reidentificação
- integração de dados (ETL) e CDC
- migração e replicação de dados
- relatório personalizado e geração de dados de teste
O suporte no nível da API para dados do MongoDB é oferecido no programa SortCL principal, que é o mecanismo de processamento padrão da plataforma de gerenciamento de dados IRI Voracity , bem como em seus produtos de subconjunto:CoSort, NextForm, FieldShield e RowGen. Esse método de conexão é a terceira e mais rápida maneira pela qual os clientes IRI podem adquirir e manipular dados em coleções do MongoDB. A primeira é por meio de arquivos simples, conforme descrito em 2014 aqui. A segunda é com drivers ODBC e JDBC descritos em 2016 aqui.
Sobre o MongoDB
O MongoDB é um banco de dados “NoSQL”, orientado a documentos que funciona no conceito de coleções e documentos do tipo JSON com esquemas. Uma coleção, como uma tabela de banco de dados relacional, contém um ou mais documentos.
Um documento é um conjunto de pares chave-valor. Os documentos têm esquema dinâmico, o que significa que documentos na mesma coleção não precisam ter o mesmo conjunto de campos ou estrutura. Campos comuns nos documentos de uma coleção podem conter diferentes tipos de dados.
O gráfico a seguir compara a terminologia de um RDBMS e MongoDB:
Oracle | MongoDB |
---|---|
Banco de dados | Banco de dados |
Tabela | Coleção |
Linha | Documento |
Coluna | Campo |
Chave primária | ID do objeto fornecido pelo MongoDB |
Demonstração
Meu exemplo abaixo faz uma simples classificação, máscara e movimento de uma coleção do MongoDB chamada “chiefs” para outra coleção e também para um arquivo JSON autônomo. Os arquivos JSON são outra nova fonte de dados IRI com suporte na versão do CoSort v10.
Conexão de banco de dados
A primeira etapa é estabelecer a conectividade com sua instância do MongoDB no IRI Workbench. Construído no Eclipse, o IRI Workbench é o IDE de projeto e implantação de trabalho comum para todos os softwares IRI listados acima. É também onde você pode se conectar a outros bancos de dados, HDFS e fontes de dados adicionais em sistemas de arquivos locais ou remotos.
No menu IRI (ícone de redemoinho) na barra de ferramentas do Workbench, selecione IRI Preferences> IRI> URL Connection Registry> Add . Especifique um MongoDB existente do esquema e o nome do host do servidor. O nome do meu banco de dados é cmitra, criado no host ‘mongodbu’:
Por conveniência, instalei o plug-in MonjaDB gratuito para Eclipse para interagir com o banco de dados dentro da minha perspectiva Workbench. Minha coleção contém presidentes dos EUA por nome, partido, estado e datas de mandato. O MongoDB atribuiu um ID exclusivo para cada documento:
Definição de metadados
Antes de poder processar dados do MongoDB nesse modo, devo criar um arquivo de formato de definição de dados (DDF) que disponha meus documentos de coleção em instruções /FIELD para uso em trabalhos compatíveis com SortCL, como FieldShield. Assim como em outras fontes de dados com suporte no Workbench, um assistente faz isso para mim automaticamente.
Crie (ou selecione uma pasta de projeto existente) no Workbench para armazenar os ativos do trabalho, como metadados de origem, script/diagrama SortCL, regras de mascaramento salvas, classes de dados etc. Com essa pasta ativa (destacada) e conhecimento da localização da minha coleção MongoDB, Agora posso executar o Descobrir Metadados assistente do menu IRI na barra de ferramentas superior.
Nesta etapa de identificação da fonte de dados, posso selecionar uma conexão ODBC, navegação no arquivo ou URL. Nesse caso, estou acessando o MongoDB via URL, então escolho isso e o MongoDB para meu formato. Depois de procurar a entrada de registro do banco de dados que adicionei anteriormente, insiro o nome da coleção. O assistente acrescenta isso à string de conexão padrão do MongoDB.
A página Visualizador de Dados e Editor de Campo se conecta à coleção e visualiza seu conteúdo de coluna e colunas como nomes de campo SortCL:
Quando clico em Concluir , meu arquivo DDF é criado e exibido da seguinte forma:
/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")
Esses metadados DDF podem ser usados em qualquer trabalho (ou trabalhos) que afetem esta coleção, incluindo o deste exemplo, conforme mostrado abaixo. A coluna _id é desnecessária para meus propósitos foi omitida.
Observe o uso da notação de ponto no atributo “MDEF”, que é uma definição de caminho necessária para o processo de tarefas SortCL de elementos simples e discretos. Elementos de matriz de vários valores e subdocumentos são gerados em sequência começando com 0 em sua ordem de aparecimento.
Execute o Assistente de Design de Trabalho
O Workbench inclui muitos assistentes diferentes para fins específicos para gerar os metadados para executar tarefas discretas (scripts .*cl) ou trabalhos controlados por lote (arquivos .flow e .bat/.sh) na linha de comando, por meio do Workbench, seus programas , etc
Eu escolhi um assistente de transformação de classificação básico porque nele posso adicionar vários destinos, campos de saída de máscara, etc. Este assistente é executado a partir do ícone do grupo de menu CoSort (cronômetro) da barra de ferramentas. Eu seleciono Novo trabalho de classificação e especificado chiefsout.scl como o nome do meu trabalho:
Na próxima etapa, identifico o nome da minha coleção de origem do MongoDB e onde ela está, usando o mesmo URL do localizador usado durante a definição de metadados para “chefes”:
A próxima etapa é especificar a geração ou o uso de metadados existentes para a coleção no formato de definição de dados (DDF) exigido em todos os programas compatíveis com SortCL. Nesse caso, usarei o arquivo DDF que criei na Etapa 2 acima. Eu seleciono Adicionar metadados existentes para colocar esses layouts diretamente no meu script de trabalho como especificações de entrada, e eles são refletidos na caixa de diálogo abaixo:
Na próxima página, especifico um campo de chave de classificação para definir a ordem dos dados em meu(s) destino(s). Nesse caso, partirei da ordem cronológica padrão dos presidentes e os classificarei por nome:
Após clicar em Avançar , a página Destinos de Dados é exibida. Assim como com minhas opções de origem, existem vários tipos diferentes de destinos que posso criar e formatar por meio deste assistente e também posteriormente em outro modo de design de trabalho (por exemplo, editor de script).
Este e outros assistentes do Workbench me permitem continuar adicionando alvos e definindo granularmente o conteúdo de cada um. Os atributos específicos de destino incluem:formato (por exemplo, CSV, MongoDB, MFVL), formatação (por exemplo, cabeçalhos e rodapés, linhas a serem ignoradas etc.), condições de filtro, layouts em nível de campo e funções/regras aplicadas (por exemplo, novo tipos de dados, máscaras, lógica de expressão, agregação).
Na página Destinos de Dados, sei que quero dois destinos:um arquivo JSON autônomo e uma coleção remota do MongoDB. Assim, clico em Adicionar destino de dados e comece a especificar o primeiro. A menos que eu edite as opções de destino ou o layout do campo de destino, minha saída conterá apenas a versão classificada dos dados de entrada como estão. É isso que meu arquivo de destino JSON conterá simplesmente por nomeá-lo.
Quando clico novamente em Adicionar destino de dados Eu defino o segundo como uma coleção do MongoDB via URL. Minha nova máscara de chefe A coleção será criada e preenchida automaticamente quando eu executar o trabalho. É dentro desse alvo que quero um dos campos mascarados para privacidade, os nomes do presidente neste caso. Clico em Layout do campo de destino para abrir uma página de mapeamento de cima para baixo para minha origem e destinos:
Esta página também mostra minha regra de mascaramento já definida. Eu tinha definido isso clicando com o botão direito do mouse em PRESIDENT no destino e clicando em Criar regra (em vez de navegar para um existente). Isso abriu uma lista de assistentes de proteção em nível de campo, mostrados abaixo. Observe que mais funções de mascaramento de dados estáticos estão disponíveis.
Selecionei Masking (edição de caracteres). Nessa página, usei o padrão de campo completo para mascarar o nome inteiro do presidente na coleção de destino:
Depois de terminar essas seleções, volto para a caixa de diálogo de mapeamento. Clico em OK e retorne à página Destinos de dados. No final das minhas alterações, terminarei com os detalhes abaixo:
Clico em OK para encerrar o assistente e construir o trabalho.
Revisar o trabalho
Com o chiefsout.scl job agora construído em meu projeto ativo e aberto para mim na janela de edição automaticamente, posso vê-lo e modificá-lo a partir daí ou através das páginas de diálogo no contexto disponíveis. Saiba mais sobre as opções de edição de script aqui.
Também posso clicar com o botão direito do mouse no script ou em seu nome de arquivo na janela do projeto e, a partir de um menu de opções IRI, construir um diagrama de fluxo para visualizar a tarefa dentro de um projeto. De dentro do diagrama de fluxo, clico duas vezes no bloco de tarefas marrom para abrir um diagrama de mapeamento de transformação mostrando o movimento do campo de origem para destino que defini, desta vez da esquerda para a direita:
O chiefsout.scl script e chiefsout.flow são ativos de metadados abertos e compartilháveis em equipe que compartilham um modelo de dados comum.
Executar o trabalho
Também existem várias maneiras de executar o trabalho que criei, tanto no Workbench quanto fora dele.
Abaixo está a coleção de origem e meu mesmo trabalho representado no script e na forma de esboço. Depois de executar o trabalho, abri uma visualização do MonjaDB do destino de coleção classificado e mascarado e meu destino de arquivo JSON classificado à direita:
Como mencionado, muitas outras permutações e trabalhos de gerenciamento de dados mais rápidos usando dados do MongoDB agora são possíveis neste ambiente. Os usuários do IRI Voracity agora podem escolher entre três métodos de conexão ao MongoDB e dezenas de recursos funcionais.
Se você tiver alguma dúvida ou precisar de ajuda, entre em contato com seu representante IRI aqui.