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.
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.
| 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 (
DataAssetouConnection) - 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
Connectionest défini pourasset_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
primarykeyen 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_ONEouONE_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']]")