Crear datos de prueba en una base de datos

Conozco algunos de los generadores de datos de prueba que existen, pero la mayoría parecen llenar bases de datos de estilo de nombre y dirección [no dude en corregirme].

Tenemos una gran aplicación integrada y normalizada, por ejemplo, las facturas tienen números de parte vinculados a tablas de almacenamiento, números de clientes vinculados a tablas de clientes, registros de cambios vinculados a la información de auditoría, etc., que obviamente son difíciles de completar de forma aleatoria. Actualmente ofuscamos datos de la vida real para obtener datos de prueba (pero no muy bien).

¿Qué herramientas / métodos usas para crear grandes volúmenes de datos para probar?

Donde trabajo usamos RedGate Data Generator para generar datos de prueba.

Como trabajamos en el dominio bancario. Cuando tenemos que trabajar con datos nominativos (números de tarjetas de crédito, identificación personal, números de teléfono) desarrollamos una aplicación que puede enmascarar estos campos de base de datos para que podamos trabajar con ellos como datos reales.

Puedo decir que con Redgate puede acercarse a cómo se verán sus datos reales en un servidor de producción, ya que puede personalizar cada campo de cada tabla en su BD.

Puede generar planes de datos con VSTS Database Edition (con las últimas herramientas de Power 2008).

Incluye un Asistente de generación de datos que permite la generación automática de datos apuntando a una base de datos existente para que pueda obtener algo que sea realista pero contenga datos completamente diferentes

He rodado mi propio generador de datos que genera datos aleatorios que se ajustan a las expresiones regulares. La idea básica es usar reglas de validación dos veces. Primero los usa para generar datos aleatorios válidos y luego los usa para validar una nueva entrada en la producción. He indicado una reescritura de la utilidad, ya que parece un buen proyecto de aprendizaje. Está disponible en googlecode .

Acabo de completar un proyecto que crea 3,500,000+ líneas de reclamación de seguro de salud. Debido a las restricciones HIPPA y PHI, el uso de datos reales depurados es un PITA. Usé una herramienta llamada Datatect para esto ( http://www.datatect.com/ ).

Algunas de las cosas que me gustan de esta herramienta:

  1. Utiliza ODBC para que pueda generar datos en cualquier fuente de datos ODBC. Lo he usado para bases de datos de Oracle, SQL y MS Access, archivos planos y hojas de cálculo de Excel.
  2. Extensible a través de VBScript. Puede escribir ganchos en diversas partes del flujo de trabajo de generación de datos para ampliar las capacidades de la herramienta. Utilicé esta característica para “sincronizar” columnas dependientes en la base de datos, y para controlar la distribución de frecuencia de valores para alinear con las frecuencias observadas en el mundo real.
  3. Referencialmente consciente. Al rellenar columnas de clave externa, extrae claves válidas de la tabla principal.

El producto Red Gate es bueno … pero no perfecto.

Descubrí que lo hice mejor cuando escribí mis propias herramientas para generar los datos. Lo uso cuando quiero generar clientes, por ejemplo … pero no es genial si quisieras simular aleatoriedad en la que los clientes pudieran participar, como crear pedidos … algunos con un elemento, algunos con múltiples elementos.

Las herramientas de cosecha propia proporcionarán los datos más “realistas”, creo.

Joel también mencionó RedGate en el podcast # 11