Nœud d'importation multiple

Dans Synthetic Data Generator, vous pouvez utiliser le nœud Multi-import pour importer des données à partir de plusieurs sources différentes. Vous pouvez ensuite générer des données synthétiques basées sur toutes ces sources de données.

Description
Utilisez le nœud Multi-import pour importer plusieurs tables de données à partir d'une connexion à une base de données afin de les utiliser comme échantillons de données de base.
Le nœud Multi-import importe ces ensembles de données en tant que groupe d'ensembles de données, où l'intégrité référentielle est utilisée pour définir les relations dans le groupe. Vous pouvez ensuite utiliser ce groupe d'ensembles de données apparentés pour générer des données synthétiques dont les relations et les distributions sont similaires à celles de tous les tableaux originaux que vous avez importés. Pour plus d'informations, voir Intégrité référentielle et nœuds multi-tables.
Si vous utilisez des scripts, vous pouvez également importer des fichiers enregistrés en tant que ressources du projet.
Utilisation du nœud
Le nœud Multi-import est généralement le premier nœud d'un flux Synthetic Data Generator. Il importe des ensembles de données stockés dans un format structuré, tel qu'un tableau, et transmet ensuite les ensembles de données au nœud suivant en vue d'un traitement ultérieur. Pour plus d'informations, voir les sources de données pour Synthetic Data Generator.
N'utilisez qu'un seul nœud d'importation multiple pour importer plusieurs ensembles de données tabulaires. Vous ne pouvez pas utiliser plusieurs nœuds pour combiner des données.
Si vous modifiez les sources ou les paramètres du nœud d'importation multiple après l'exécution du flux, réexécutez le nœud d'imitation multiple avant d'utiliser Run all pour réexécuter le flux. L'exécution du nœud Multi-mimic rafraîchit le nœud Multi-gen.
Obligatoire ou facultatif
Le nœud Multi-import est obligatoire si vous souhaitez utiliser des données de production provenant de plusieurs tables de données comme base pour les données synthétiques. Si vous souhaitez utiliser l'intégrité référentielle, vous ne pouvez pas générer des données synthétiques en définissant un schéma de données personnalisé pour les données synthétiques.

Scripting avec le nœud Multi-import

Vous pouvez utiliser des langages de script, comme Python, pour définir de manière programmatique les propriétés des nœuds.

Remarque : vous ne pouvez utiliser le nœud d'importation multiple pour importer des données à partir de ressources de données que lorsque vous utilisez des scripts. Vous ne pouvez pas sélectionner des actifs de données dans l'interface utilisateur.

Propriétés des nœuds de multi-importation

Les propriétés suivantes sont spécifiques au nœud Multi-import. Pour plus d'informations sur les propriétés communes des nœuds, voir Propriétés des flux et des nœuds.

Tableau 1. Propriétés des nœuds pour la création de scripts
Nom de la propriété Type de données Description de la propriété
assets Propriété structurée Une liste d'actifs, où chaque actif contient les éléments suivants : id, name, assettype, connpath, primarykey, usersettings. Pour plus de détails, voir la structure des données pour le bien assets .
relationships Propriété structurée Une liste des relations entre les tables, où chaque relation comprend les éléments suivants : fromtable, totable, fromcolumns, tocolumns, relationtype. Pour plus de détails, voir la structure des données pour le bien relationships .

Structure de données pour assets property

identificateur
L'identifiant du bien ou de la connexion
Nom
Le nom du bien ou de la connexion dans le projet
type d'actif
Le type d'actif (DataAsset ou Connection)
Vous pouvez importer des ressources de données uniquement à l'aide de scripts. Lorsque vous utilisez des scripts, vous pouvez également configurer le nœud « Multi-import » pour qu'il utilise plusieurs fichiers d' CSV.
chemin d'accès
Lorsque Connection est défini pour asset_type, le chemin d'accès à la table dans la connexion.
En fonction de la connexion à la base de données, le chemin d'accès inclut le catalogue et le schéma, par exemple catalog_name/schema_name/table_name.
clé primaire
Les clés primaires d'une ou plusieurs colonnes du tableau source
Vous pouvez définir plusieurs colonnes dans primarykey en utilisant une liste de chaînes, par exemple ['ACCOUNT_ID','DISTRICT_ID']. Les clés primaires composées ne sont pas prises en charge.
paramètres utilisateur
Chaîne JSON échappée des propriétés d'interaction.
Par exemple, {"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"}}

Structure de données pour relationships property

de la table
La table source avec la clé primaire
Utiliser la notation par points pour le nom de la table
portable
La table de destination qui référence la clé primaire
Utiliser la notation par points pour le nom de la table
des colonnes
Colonnes du tableau source
tocolumns
Colonnes cibles dans la table de destination
type de relation
Type de relation (ONE_TO_ONE ou ONE_TO_MANY)

Noms de tables en notation par points

Lorsque vous faites référence à des tableaux, vous devez utiliser la notation par points dans la plupart des cas. Le chemin d'accès en notation pointée change selon que la table possède un catalogue et un schéma.

Catalogue et schéma
assetId.catalog.schema.table
Uniquement le schéma
assetId.schema.table
Pas de schéma
assetId.table
Par exemple, avec IBM Cloudant
Actifs de données
assetId.assetName
Par exemple, pour les fichiers. CSV. et.SAV

Exemple de script

Le script suivant crée un nœud Multi-import et lui attribue quelques propriétés.

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']]")