Fichiers de métadonnées#
Au total, le processeur Banff utilise 18 tables de métadonnées, qui peuvent être classées comme suit:
Tables décrivant le déroulement global du processus:
JOBS (obligatoire): définit le flux global du processus, y compris les étapes du processus à exécuter et le séquençage
PROCESSCONTROLS: les contrôles de processus facultatifs donnent plus de contrôle sur les étapes individuelles du processus
Tables définissant les paramètres des étapes de processus pour les procédures Banff intégrées:
VERIFYEDITSPECS: spécifications pour la procédure
verifyedits
OUTLIERSPECS: spécifications pour la procédure
outlier
ERRORLOCSPECS: spécifications pour la procédure
errorloc
DONORSPECS: spécifications pour la procédure
donorimp
ESTIMATORSPECS: spécifications pour la procédure
estimator
ESTIMATORS: paramètres supplémentaires pour la table
inestimator
ALGORITHMS: paramètres supplémentaires pour la table
inalgorithm
PRORATESPECS: spécifications pour la procédure
prorate
MASSIMPUTATIONSPECS: spécifications pour la procédure
massimp
Tables utilisées pour définir les modifications, utilisées par les procédures verifyedits
,editstats
,errorloc
,deterministic
,donorimp
et prorate
:
EDITS: Liste des modifications individuelles
EDITGROUPS: Combinaisons de modifications référencées par des étapes de processus individuelles
Paramètres utilisés par plusieurs procédures:
VARLISTS: Listes de variables et ordre de tri
WEIGHTS: Poids, utilisés par certaines procédures
EXPRESSIONS: Expressions d’exclusion utilisées par certaines procédures
Paramètres des étapes de processus pour les procédures définies par l’utilisateur:
USERVARS: Spécifications pour les procédures définies par l’utilisateur (plugins)
Gestion des données:
PROCESSOUTPUTS: Spécifiez les sorties à enregistrer pour chaque procédure
Remarques générales#
Les champs de métadonnées d’ID tels que jobid ou controlid peuvent comporter jusqu’à 100 caractères
Les noms de variables sur vos ensembles de données d’entrée peuvent comporter jusqu’à 64 caractères.
Sensibilité à la casse: la cohérence doit être maintenue entre les métadonnées en ce qui concerne la casse. Cela inclut la correspondance des champs tels que specID et controlID ainsi que des noms de variables.
Les noms de variables doivent respecter la casse des noms de colonnes sur l’entrée applicable. Dans certains contextes,
revenu
etINCOME
peuvent être considérés comme des variables différentes sur une table, mais dans d’autres, ils ne le sont pas. Par exemple, les expressions metadata ne sont pas sensibles à la casse. Pour cette raison, il est recommandé de ne pas réutiliser les noms de colonnes simplement avec une casse différente et de respecter la casse dans les fichiers de données et de métadonnées.
Jobs#
Définissez vos flux de processus d’édition de données statistiques.
Colonne |
Type |
Clé primaire |
Clé étrangère |
Obligatoire |
Description |
---|---|---|---|---|---|
jobid |
string |
✔ |
✔ |
La valeur de la colonne jobid est utilisée pour extraire de la table toutes les lignes appartenant à la même stratégie E&I ou au même bloc de processus. |
|
seqno |
float |
✔ |
✔ |
L’ordre d’exécution est défini par la colonne seqno qui est lue de la valeur la plus basse à la plus grande. Le processeur Banff s’exécutera même s’il y a des écarts dans les valeurs seqno. Par exemple, une valeur de SEQNO=10 peut être suivie dans la ligne suivante par une valeur de 20. |
|
controlid |
string |
✔ |
Pointe vers un ID défini dans la table de métadonnées ProcessControls. |
||
process |
string |
✔ |
✔ |
La valeur de la colonne de processus identifie le nom de la procédure ou du plug-in Banff à exécuter. |
|
specid |
string |
✔ |
✔ |
La colonne specid pointe vers un ID dans d’autres tables de métadonnées en fonction de la valeur de la colonne PROCESS. |
|
editgroupid |
string |
✔ |
La colonne editgroupid pointe vers une entrée dans la table de métadonnées EditGroups. |
||
byid |
string |
✔ |
La colonne byid pointe vers la table de métadonnées VarLists. Elle peut être utilisée par toutes les procédures à l’exception de VerifyEdits et du processus Job. La liste de variables indiquée sera utilisée pour le traitement par groupe. |
||
acceptnegative |
string |
La colonne acceptnegative est utilisée pour indiquer si les valeurs négatives sont considérées comme des valeurs valides ou non par le processus. Si elle n’est pas spécifiée (laissée vide) ou si la valeur est N, l’option accept negative ne sera pas spécifiée, sinon (si la valeur de la colonne est Y), l’option accept negative sera définie sur True. |
ProcessControls#
Définir les spécifications des contrôles de processus.
Column |
Type |
Primary Key |
Foreign Key |
Required |
Description |
---|---|---|---|---|---|
controlid |
string |
✔ |
✔ |
ID utilisé pour identifier le contrôle. |
|
targetfile |
string |
✔ |
✔ |
Le nom du fichier de jeu de données auquel appliquer le contrôle. Ce champ n’est PAS obligatoire si parameter=EDIT_GROUP_FILTER. |
|
parameter |
string |
✔ |
✔ |
Le type de contrôle de processus à appliquer. |
|
value |
string |
✔ |
La requête (dans la syntaxe SQL-lite) à appliquer pour ce contrôle. Ce champ n’est pas obligatoire et doit être vide si parameter=EDIT_GROUP_FILTER. |
Edits#
Définissez les modifications de cohérence linéaire à utiliser par les procédures Banff.
Column |
Type |
Primary Key |
Foreign Key |
Required |
Description |
---|---|---|---|---|---|
editid |
string |
✔ |
✔ |
ID utilisé pour identifier la modification. |
|
leftside |
string |
✔ |
Le côté gauche de l’équation. |
||
operator |
string |
✔ |
L’opérateur, les valeurs valides incluent >, >=, <, <=, = et !=. |
||
rightside |
string |
✔ |
Le côté droit de l’équation. |
||
modifier |
string |
La valeur du modificateur. La valeur par défaut de PASS indique que l’équation doit être True, FAIL peut être spécifié pour indiquer que l’équation doit être fausse. |
EditGroups#
Définir des ensembles de modifications à référencer par des étapes de processus individuelles.
Colonne |
Type |
Clé primaire |
Clé étrangère |
Obligatoire |
Description |
---|---|---|---|---|---|
editgroupid |
string |
✔ |
✔ |
ID utilisé pour identifier le groupe de modifications. |
|
editid |
string |
✔ |
✔ |
✔ |
ID utilisé pour identifier la modification appartenant au groupe. |
Expressions#
Expressions SQL utilisées pour exclure les donneurs du traitement dans la procédure DonorImp
ou les enregistrements à utiliser dans les calculs de la procédure Estimator
.
Column |
Type |
Primary Key |
Foreign Key |
Required |
Description |
---|---|---|---|---|---|
expressionid |
string |
✔ |
✔ |
L’ID utilisé pour identifier l’expression. |
|
expressions |
string |
✔ |
L’expression SQL. |
Uservars#
Définir les noms et les valeurs des variables de substitution dans les processus définis par l’utilisateur (plugins).
Column |
Type |
Primary Key |
Foreign Key |
Required |
Description |
---|---|---|---|---|---|
process |
string |
✔ |
✔ |
Le nom du processus défini par l’utilisateur auquel cette uservar s’applique. Il doit s’agir du même nom (ou de l’un des noms) que celui utilisé lors de l’appel de |
|
specid |
string |
✔ |
✔ |
Le specid de l’étape de travail spécifique à laquelle cette uservar s’applique. |
|
var |
string |
✔ |
✔ |
Le nom de cette variable. |
|
value |
string |
✔ |
La valeur de la variable. Pour les valeurs numériques, convertissez la valeur de chaîne donnée au format souhaité dans l’UDP à l’aide de cette variable. |
Varlists#
Répertorie les noms des variables utilisées dans les instructions de procédure qui nécessitent une liste de noms de variables. Tous les noms de variables dans la colonne fieldid
qui ont la même valeur que varlistid
seront collectés et utilisés avec l’instruction pour laquelle la liste est créée. La variable seqno
définit l’ordre dans lequel les variables apparaîtront dans la liste. seqno
est obligatoire et est important en particulier pour l’instruction BY.
Column |
Type |
Primary Key |
Foreign Key |
Required |
Description |
---|---|---|---|---|---|
varlistid |
string |
✔ |
✔ |
ID utilisé pour identifier la liste de variables. |
|
seqno |
float |
✔ |
✔ |
Définit l’ordre de cet identifiant de champ dans la liste de variables globale de la valeur la plus basse à la plus grande. Les espaces dans la séquence sont autorisés, les nombres doivent simplement former un ordre logique. |
|
fieldid |
string |
✔ |
ID utilisé pour identifier ce champ spécifique dans la liste de variables. |
Weights#
Contient les noms des champs groupés par weightid
et la valeur du poids pour chaque champ.
Column |
Type |
Primary Key |
Foreign Key |
Required |
Description |
---|---|---|---|---|---|
weightid |
string |
✔ |
✔ |
ID utilisé pour identifier cette pondération. |
|
fieldid |
string |
✔ |
✔ |
Identifie le champ auquel cette pondération s’applique. |
|
weight |
float |
✔ |
La valeur de pondération du champ. |
ProcessOutputs#
Définissez les sorties à conserver pour chaque type de processus. Les métadonnées sont utilisées lorsque process_output_type est défini sur custom
.
Column |
Type |
Primary Key |
Foreign Key |
Required |
Description |
---|---|---|---|---|---|
process |
string |
✔ |
✔ |
Le nom du processus pour lequel enregistrer ce fichier de sortie. |
|
output_name |
string |
✔ |
✔ |
Le nom de l’ensemble de données à créer et à conserver à la fin du processus spécifié, puis à enregistrer sur le disque à la fin de la tâche globale. |
Métadonnées spécifiques aux procédures Banff intégrées#
Les tables de métadonnées suivantes sont utilisées pour stocker les paramètres d’entrée des procédures Banff intégrées. Chaque table de métadonnées comprend la colonne specid
, qui relie les paramètres spécifiques à la procédure répertoriés dans chaque ligne à l’étape de processus associée dans la table de métadonnées jobs
.
VERIFYEDITSPECS: Spécifications pour la procédure
verifyedits
OUTLIERSPECS: Spécifications pour la procédure
outlier
ERRORLOCSPECS: Spécifications pour la procédure
errorloc
DONORSPECS: Spécifications pour la procédure
donorimp
ESTIMATORSPECS: Spécifications pour la procédure
estimator
ESTIMATORS: Paramètres supplémentaires pour la table
inestimator
ALGORITHMS: Paramètres supplémentaires pour la table
inalgorithm
PRORATESPECS: Spécifications pour la procédure
prorate
MASSIMPUTATIONSPECS: Spécifications pour la procédure
massimp
Pour obtenir des informations sur les paramètres des procédures Banff intégrées, veuillez consulter le guide de l’utilisateur Banff dans le référentiel des procédures Banff.
Conseils pour les programmeurs#
Des schémas XML sont disponibles pour chaque fichier de métadonnées dans le sous-package banffprocessor.metadata.models
. Ces schémas peuvent être utiles à des fins de débogage ou pour les développeurs d’applications qui doivent générer ces fichiers sans utiliser le modèle de métadonnées Excel. Par exemple, le schéma du fichier Algorithms.xml peut être imprimé avec les 2 lignes suivantes pour le code:
from banffprocessor.metadata.models.algorithms import Algorithms
print(Algorithms.get_schema())
Une base de données duckdb est utilisée pour stocker les métadonnées pendant le traitement et peut être exportée à la fin du processus à des fins de débogage ou d’information. La connexion à la base de données est accessible via l’attribut dbconn
de votre objet Processor comme illustré dans l’extrait de code ci-dessous:
my_bp = Processor.from_file(input_file)
my_bp.dbconn.execute("EXPORT DATABASE '<chemin vers le dossier pour enregistrer les fichiers exportés>'")
---
title: Diagramme entité-relation des métadonnées du processeur Banff
---
erDiagram
ALGORITHMS {
string algorithmname PK
string type
string status
string formula
string description
}
DONORSPECS {
string specid PK
int mindonors
real pcentdonors
int n
string eligdon
boolean random
int nlimit
real mrl
string dataexclvar FK
string mustmatchid FK
string posteditgroupid FK
}
EDITGROUPS {
string editgroupid PK
string editid PK
}
EDITS {
string editid PK
string leftside
string operator
string rightside
string modifier
string edit
}
ERRORLOCSPECS {
string specid PK
real cardinality
real timeperobs
string weightid
}
ESTIMATORS {
string estimatorid PK
int seqno PK
string fieldid
string auxvariables
string weightvariable
string variancevariable
real varianceexponent
string varianceperiod
boolean excludeimputed
boolean excludeoutliers
int countcriteria
real percentcriteria
boolean randomerror
string algorithmname FK
}
ESTIMATORSPECS {
string specid PK
string dataexclvar FK
string histexclvar FK
string Estimatorid FK
}
EXPRESSIONS {
string expressionid PK
string expressions
}
MASSIMPUTATIONSPECS {
string specid
int mindonors
real pcentdonors
boolean random
int nlimit
real mrl
string mustimputeid
string mustmatchid
}
OUTLIERSPECS {
string specid PK
string method
real mei
real mii
real mdm
real exponent
int minobs
string varid
string withid
string dataexclvar FK
real betae
real betai
string weight FK
string sigma
string side
real startcentile
boolean acceptzero
}
PRORATESPECS {
string specid PK
int decimal
real lowerbound
real upperbound
string modifier
string method
}
USERVARS {
string process PK
string specid PK
string var PK
string value
}
VARLISTS {
string varlistid PK
real seqno PK
string fieldid
}
VERIFYEDITSPECS {
string specid PK
int imply
int extremal
}
WEIGHTS {
string weightid PK
string fieldid PK
real weight
}
PROCESSCONTROLS {
string controlid PK
string targetfile PK
string parameter PK
string value
}
PROCESSOUTPUTS {
string process PK
string output_name PK
}
JOBS {
string jobid PK
real seqno PK
string controlid FK
string process FK
string specid FK
string editgroupid FK
string byid FK
boolean acceptnegative
}
DONORSPECS ||--}o JOBS: "Définit les spécifications"
ERRORLOCSPECS ||--}o JOBS: "Définit les spécifications"
ESTIMATORSPECS ||--}o JOBS: "Définit les spécifications"
OUTLIERSPECS ||--}o JOBS: "Définit les spécifications"
PRORATESPECS ||--}o JOBS: "Définit les spécifications"
MASSIMPUTATIONSPECS||--}o JOBS: "Définit les spécifications"
VERIFYEDITSPECS ||--}o JOBS: "Définit les spécifications"
USERVARS ||--}o JOBS: "Définit des paramètres personnalisés pour les plugins"
EDITGROUPS ||--}o JOBS: "Définit le groupe d'édition"
EDITGROUPS ||--}o DONORSPECS: "Définit le groupe d'édition de post"
EDITS ||--}o EDITGROUPS: "Définit les groupes d'édition"
ALGORITHMS ||--}o ESTIMATORS: "Définit un algorithme personnalisé"
ESTIMATORS ||--}o ESTIMATORSPECS: "Définit l'estimateur"
EXPRESSIONS ||--}o ESTIMATORSPECS: "Définit dataexclvar et histexclvar"
EXPRESSIONS ||--}o DONORSPECS: "Définit dataexclvar"
VARLISTS ||--}o JOBS: "Définit les variables utilisées pour créer des groupes de traitement"
VARLISTS ||--}o DONORSPECS: "Définit mustmatchid"
VARLISTS ||--}o OUTLIERSPECS: "Définit varid et withid"
VARLISTS ||--}o MASSIMPUTATIONSPECS: "Defines mustimputeid"
WEIGHTS ||--}o ERRORLOCSPECS: "Définit le poids variable"
PROCESSCONTROLS ||--}o JOBS: "Définit les contrôles de processus"
PROCESSOUTPUTS ||--}o JOBS: "Définit les ensembles de données à conserver"