Modèle de données
Edalitics permet de créer un modèle de données logique à partir duquel les utilisateurs peuvent créer des rapports de manière simple et intuitive. Un utilisateur administrateur peut générer des modèles de données. Pour générer un modèle de données, un utilisateur administrateur doit configurer une connexion à une base de données et lui donner un nom :
Une fois les données de connexion fournies, EDA génère automatiquement un modèle logique. Il génère :
- Des entités à partir des tables et des attributs à partir des colonnes.
- Des relations entre les différentes tables à partir de colonnes portant le même nom et un format d’identifiant (champs contenant id_, ou fk_, ou code, ou nk_)
- Si nous activons l’option « Optimiser les requêtes », nous disposerons également de statistiques sur la taille des tables, qui serviront à conseiller l’utilisateur lors de la création de rapports, évitant ainsi des requêtes lourdes inutiles.
Générer un modèle logique enrichi de noms et de descriptions permettant à l’utilisateur métier de comprendre parfaitement le contenu du modèle de données.
Pour générer un modèle de données, il suffit de disposer des données de connexion à la base de données :
- Nom de la connexion
- Type de connexion (MySql, PostgreSQL, Oracle, SqlServer, Snowflake, Vertica, etc.)
- Serveur
- Nom de la base de données
- Schéma (le cas échéant)
- Utilisateur
- Mot de passe
- Filtre : permet de spécifier les tables à inclure dans le modèle en concaténant les éléments table_a, table_b, table_c ou en utilisant des motifs SQL eda_%
Les modèles de données peuvent être enrichis avec :
- Des vues au niveau du modèle : possibilité de définir des vues au niveau du modèle logique qui se comportent comme de nouvelles tables. Ceci est particulièrement recommandé lorsque vous avez des requêtes complexes utilisées de manière répétée. Une vue peut être définie au niveau du modèle logique. Comment ajouter une vue
- La génération d’entités à partir d’un csv : conçu pour les environnements dynamiques. Une nouvelle entité peut être générée dans le modèle à partir d’un csv de données. Cette fonctionnalité charge les données du csv dans une table de la base de données. Cette fonctionnalité n’est activée qu’avec les modèles définis avec Postgresql. Comment importer un csv
- Des champs calculés : vous pouvez ajouter un champ calculé à une table pour effectuer des opérations. Si vous souhaitez générer un champ numérique, vous devez inclure l’agrégation que vous souhaitez effectuer. Comment ajouter un champ calculé Vous pouvez également regarder la vidéo : https://youtu.be/UT9d6EOpLO0
- Des cartes : des fichiers Geojson peuvent être importés et liés à un (ou plusieurs) attributs afin de pouvoir générer des cartes en couches liées à ces attributs.
Les modèles de données peuvent être sécurisés au niveau des données, permettant de définir la sécurité au niveau de l’enregistrement. La sécurité s’applique à l’utilisateur de la session.
Les modèles de données déterminent si les requêtes exécutées contre ce modèle mettront les données en cache et pendant combien de temps ce cache sera actif.
Tutoriel vidéo
Section intitulée « Tutoriel vidéo »Personnaliser le modèle
Section intitulée « Personnaliser le modèle »edalitics génère le modèle de données automatiquement. Mais ce n’est qu’une aide. Le modèle de données peut être personnalisé :
- Masquer des tables
- Masquer des colonnes techniques qui ne doivent pas apparaître dans le modèle
- Modifier les noms des tables ou des colonnes
- Générer des descriptions pertinentes
- Créer ou supprimer des relations entre les tables
- Ajouter des colonnes calculées Comment ajouter un champ calculé
- Définir des listes de valeurs possibles
Le modèle de données d’EDA
Section intitulée « Le modèle de données d’EDA »Voici un modèle de données edalitics
{ "_id": "XXXX", // Model's id "ds": { "connection": { "database": "mydb", // Database name "host": "127.0.0.1", // Database server "password": "xxxx", // Database password "poolLimit": 10, // In case you want to activate pool the number of concurrent connections (only with mysql) "port": 3306, "schema": "", "searchPath": "", "sid": 1, "type": "mysql",// Database type. Possible values: 'postgres', 'mysql', 'vertica', 'sqlserver', 'oracle', 'bigquery', 'snowflake', 'jsonwebservice' "user": "myuser", "warehouse": "" // For Snowflake }, "metadata": { "cache_config": { // Cache configuration "enabled": false, "hours": "06", "minutes": "00", "quantity": 1, "units": "days" }, "filter": "", "model_granted_roles": [ // Security configuration { "column": "fullModel", "global": true, "none": false, "permission": true, "table": "fullModel", "type": "anyoneCanSee", "users": [ "(~ => All)" ], "usersName": [ "(~ => All)" ] } ], "model_id": "", "model_name": "edalitics MODEL", "optimized": false, "external" : {} },
"model": { "maps": [ ], // Maps Configuration "tables": [ // Tables list { "table_name": "table_a", // Database's table name "table_type": [], "display_name": { "default": "Table A Description", // Name of the table that the user will see "localized": [ ] }, "description": { "default": "Table A description ", // Description of the table that the user will see "localized": [ ] },
"tableCount": 0, // Number of records in the table. It is used for optimizations. "visible": true, // Determines whether the table is visible to the user or has a technical function "columns": [ // List of table columns { "aggregation_type": [ // Possible column aggregations { "display_name": "Cuenta Valores", // Name that the user will see "value": "count" // Aggregation type }, { "display_name": "Valores Distintos", "value": "count_distinct" }, { "display_name": "No", "value": "none" } ], "column_granted_roles": [ ], "column_name": "id", // Table column name "column_type": "numeric", // Column type. Possible values are numeric, text, date, coordinate "display_name": { "default": "Columna con el id", // Name of the column that the user will see "localized": [ ] }, "description": { "default": "Columna con el id de la tabla ",// Description of the column that the user will see "localized": [ ] }, "minimumFractionDigits": 0, // Number of decimal places the user will see on the front-end "row_granted_roles": [ ], "tableCount": 0, "valueListSource": { // In case the column is an id pointing to a value list }, "visible": true // Determines whether the user sees the column (true) or whether it is hidden or hidden (false) } ], "no_relations": [], "relations": [ // Table relationships. What other tables is it related to and how? { "display_name": { "default": "Relation Name", // Name to display for the relationship "localized": [ ] }, "source_column": [ // Origin column(s) "id" ], "source_table": "table_a", // Source table "target_column": [ // Destination column(s) "id" ], "target_table": "table_b", // Destination table "visible": true // Whether it is visible, active or not. } ]
},
{ "table_name": "table_b", "table_type": [], "description": { "default": "Table B Name", "localized": [ ] }, "display_name": { "default": "Table B Description", "localized": [ ] }, "tableCount": 0, "visible": true, "columns": [ { "aggregation_type": [ { "display_name": "Cuenta Valores", "value": "count" }, { "display_name": "Valores Distintos", "value": "count_distinct" }, { "display_name": "No", "value": "none" } ], "column_granted_roles": [ ], "column_name": "id", "column_type": "numeric", "description": { "default": "ID", "localized": [ ] }, "display_name": { "default": "ID", "localized": [ ] }, "hidden": 0, "minimumFractionDigits": 0, "row_granted_roles": [ ], "tableCount": 0, "valueListSource": { }, "visible": true } ], "no_relations": [], "relations": [ { "bridge": false, "display_name": { "default": "Relation Name", "localized": [ ] }, "source_column": [ "id" ], "source_table": "table_b", "target_column": [ "id" ], "target_table": "table_a", "visible": true } ]
} ] } }}
