Nodo multiimportación
En Synthetic Data Generator, puede utilizar el nodo Multiimportación para importar datos de varias fuentes diferentes. A continuación, puede generar datos sintéticos basados en todas estas fuentes de datos.
- Descripción
- Utilice el nodo Multiimportación para importar varias tablas de datos desde una conexión de base de datos para utilizarlas como datos de muestra de siembra.
- El nodo Multiimportación importa estos conjuntos de datos como un grupo de conjuntos de datos, donde se utiliza la integridad referencial para definir las relaciones en el grupo. A continuación, puede utilizar este grupo de conjuntos de datos relacionados para generar datos sintéticos que tengan relaciones y distribuciones similares a las de todas las tablas originales que ha importado. Para más información, consulte Integridad referencial y nodos multi-tabla.
- Si utiliza secuencias de comandos, también puede importar archivos guardados como activos del proyecto.
- Utilización del nodo
- El nodo Multi-import suele ser el primer nodo de un flujo Synthetic Data Generator. Importa conjuntos de datos almacenados en un formato estructurado, como una tabla, y los transmite al siguiente nodo para su posterior procesamiento. Para más información, consulte Fuentes de datos para Synthetic Data Generator.
- Utilice un solo nodo Multiimportación para importar varios conjuntos de datos tabulares. No se pueden utilizar varios nodos para combinar datos.
- Si cambia las fuentes o la configuración en el nodo Multiimport después de que se ejecute el flujo, vuelva a ejecutar el nodo Multiimport antes de utilizar Ejecutar todo para volver a ejecutar el flujo. Al ejecutar el nodo Multi-mimic se actualiza el nodo Multi-gen.
- Obligatorio u opcional
- El nodo Multiimportación es obligatorio si desea utilizar datos de producción de varias tablas de datos como semilla para los datos sintéticos. Si desea utilizar la integridad referencial, no puede generar datos sintéticos definiendo un esquema de datos personalizado para los datos sintéticos.
Scripting con el nodo Multiimportación
Puede utilizar lenguajes de scripting, como Python, para establecer progamáticamente las propiedades de los nodos.
Propiedades de los nodos multiimportación
Las siguientes propiedades son específicas del nodo Multiimportación. Para obtener información sobre las propiedades comunes de los nodos, consulte Propiedades de flujos y nodos.
| Nombre de propiedad | Tipo de datos | Descripción de la propiedad |
|---|---|---|
assets |
Propiedad estructurada | Una lista de activos, donde cada activo contiene lo siguiente: id, name, assettype, connpath, primarykey, usersettings. Para más detalles, véase Estructura de datos para la propiedad assets . |
relationships |
Propiedad estructurada | Una lista de relaciones de tablas, donde cada relación incluye lo siguiente: fromtable, totable, fromcolumns, tocolumns, relationtype. Para más detalles, véase Estructura de datos de la propiedad relationships . |
Estructura de datos para la propiedad assets
- ID
- ID del activo o de la conexión
- Nombre
- Nombre del activo o conexión en el proyecto
- tipo de activo
- El tipo de activo (
DataAssetoConnection) - Solo se pueden importar activos de datos mediante scripts. Al utilizar scripts, también puedes configurar el nodo «Multi-import» para que utilice varios archivos « CSV ».
- connpath
- Cuando se establece
Connectionparaasset_type, la ruta a la tabla dentro de la conexión. - En función de la conexión a la base de datos, la ruta incluye el catálogo y el esquema, por ejemplo
catalog_name/schema_name/table_name. - clave principal
- Las claves primarias de una o varias columnas de la tabla de origen
- Puede establecer varias columnas en
primarykeyutilizando una lista de cadenas, por ejemplo,['ACCOUNT_ID','DISTRICT_ID']. No se admiten claves primarias compuestas. - userettings
- Cadena JSON de propiedades de interacción.
- Por ejemplo,
{"interactionProperties":{"file_format":"csv","encoding":"UTF-8","first_line_header":true,"infer_schema":true,"infer_record_count":1000,"infer_as_varchar":false,"invalid_data_handling":"fail","file_name":"input.csv"}}
Estructura de datos para la propiedad relationships
- de la tabla
- La tabla de origen con la clave primaria
- Utilice la notación por puntos para el nombre de la tabla
- transportable
- La tabla de destino que hace referencia a la clave primaria
- Utilice la notación por puntos para el nombre de la tabla
- de las columnas
- Columnas de la tabla de origen
- tocolumnas
- Columnas de destino en la tabla de destino
- tipo de relación
- Tipo de relación (
ONE_TO_ONEoONE_TO_MANY)
Nombres de tabla en notación por puntos
En la mayoría de los casos, para referirse a las tablas debe utilizarse la notación por puntos. La ruta en notación de puntos cambia dependiendo de si la tabla tiene un catálogo y un esquema.
- Catálogo y esquema
assetId.catalog.schema.table- Sólo esquema
assetId.schema.table- Sin esquema
assetId.table- Por ejemplo, con IBM Cloudant
- Activos de datos
assetId.assetName- Por ejemplo, para archivos de tipo « CSV » y «SAV»
Ejemplo de script
El siguiente script crea un nodo Multi-import y establece algunas propiedades para él.
stream = sdg.script.stream()
connections = stream.createAt("dataasset_import_multi_table", "Connections", 88, 187)
connections.setPropertyValue("assets", "[['40039389-1b77-47d5-86d1-b37a5e6bf52e', 'DB2 Premium', 'Connection', '/PERF/CATEGORIES', 'CATEGORY_ID', ''], ['40039389-1b77-47d5-86d1-b37a5e6bf52e', 'DB2 Premium', 'Connection', '/PERF/CUSTOMERS', 'CUSTOMER_ID', ''], ['40039389-1b77-47d5-86d1-b37a5e6bf52e', 'DB2 Premium', 'Connection', '/PERF/PRODUCTS', 'PRODUCT_ID', ''], ['40039389-1b77-47d5-86d1-b37a5e6bf52e', 'DB2 Premium', 'Connection', '/PERF/SALES', 'SALE_ID', '']]")
connections.setPropertyValue("relationships", "[['40039389-1b77-47d5-86d1-b37a5e6bf52e.PERF.CATEGORIES', '40039389-1b77-47d5-86d1-b37a5e6bf52e.PERF.PRODUCTS', ['CATEGORY_ID'], ['CATEGORY_ID'] , 'ONE_TO_MANY'], ['40039389-1b77-47d5-86d1-b37a5e6bf52e.PERF.CUSTOMERS', '40039389-1b77-47d5-86d1-b37a5e6bf52e.PERF.SALES', ['CUSTOMER_ID'], ['CUSTOMER_ID'] , 'ONE_TO_MANY'], ['40039389-1b77-47d5-86d1-b37a5e6bf52e.PERF.PRODUCTS', '40039389-1b77-47d5-86d1-b37a5e6bf52e.PERF.SALES', ['PRODUCT_ID'], ['PRODUCT_ID'] , 'ONE_TO_MANY']]")