Les bibliothèques META dans SAS
Les bibliothèques SAS définies dans les métadonnées ont deux composantes principales :
La définition de la bibliothèque, qui décrit comment affecter la bibliothèque. Ces informations incluent le chemin d'accès, le moteur et toute option spécifique à la bibliothèque sont nécessaires. Ces parties de la définition correspondent à la syntaxe de l'instruction LIBNAME traditionnelle que la plupart des programmeurs SAS connaissent.
Les définitions des tables, qui décrivent les tables et les colonnes disponibles dans la la bibliothèque. Les définitions de table sont ajoutées aux métadonnées de trois manières principales :
- En utilisant SAS Management Console, vous pouvez sélectionner la bibliothèque et utiliser la fonction d'importation de tables. pour visualiser les tables physiques existantes et importer les définitions de tables souhaitées dans la bibliothèque.
- L'utilisation de la procédure METALIB dans une session SAS, pour manipuler les métadonnées à partir des tables physiques
- Utiliser SAS Data Integration Studio pour créer un entrepôt de données. Le processus de construction d'un entrepôt de données met à jour les métadonnées relatives aux bibliothèques, les tables et les colonnes.
Les administrateurs peuvent également joindre des détails d'autorisation aux définitions des tables, contrôler quels utilisateurs peuvent accéder à des tables spécifiques, et même à des colonnes spécifiques, dans ces tables.
À propos du moteur de bibliothèque de métadonnées (META Engine)
Le moteur META est un moteur de bibliothèque SAS spécial qui applique la vision centrée sur les métadonnées d'une bibliothèque SAS. Le moteur fournit une couche supplémentaire entre vos programmes SAS et l'emplacement physique de vos données, ce qui vous permet de faire référence à une définition de bibliothèque qui existe dans les métadonnées.
Lecture seule par défaut
Le META engine, par défaut, empêche vos programmes SAS de modifier le contenu de la bibliothèque d'une manière qui entraînerait une désynchronisation des données avec les métadonnées enregistrées. Les tentatives de modification entraînent un message d'erreur semblable à celui qui suit :
Ajout ou modification de tables via la META Engine
Le comportement par défaut du META engine est de fournir une vue purement centrée sur les métadonnées de votre bibliothèque. Cependant, vous pouvez spécifier une option supplémentaire dans l'instruction LIBNAME pour produire une sorte de vue hybride de la bibliothèque. L'option METAOUT=DATA permet au moteur META d'afficher toutes les tables supplémentaires qui n'existent pas dans les métadonnées, mais qui existent dans la bibliothèque métadonnées, mais qui existent dans l'emplacement physique de la bibliothèque.
Voici un exemple déclaration :
1 |
libname myoracle meta library=”oracledb” repname=”Foundation” metaout=data; |
Avec l'option METAOUT=DATA en place, vous pouvez ajouter et modifier des tables dans la bibliothèque. Bien que le moteur de bibliothèque, dans ce mode, permette l'accès aux tables "non-métadonnées", le moteur applique toujours les permissions définies sur les tables et les colonnes qui existent
existent dans les métadonnées. C'est-à-dire que l'option METAOUT=DATA n'ouvre pas l'accès à aux tables et colonnes pour lesquelles l'autorisation READ a été définie sur Deny dans les métadonnées.
Synchronisation des données physiques dans les métadonnées
Si votre programme SAS apporte des modifications au contenu de la bibliothèque en mode METAOUT=DATA, ces changements ne sont pas reflétés dans les métadonnées. Afin de de synchroniser les métadonnées avec les changements physiques effectués pendant votre programme, vous devez :
- Utilisez SAS Management Console pour importer les tables nouvelles ou modifiées dans la définition de la bibliothèque.
- Utilisez la procédure METALIB pour mettre à jour les définitions de métadonnées avec les attributs des tables physiques.
SAS Entreprise Guide et l'affectation des bibliothèques
Lorsque vous visualisez un serveur SAS dans SAS Enterprise Guide dans la vue du serveur, vous voyez une liste de bibliothèques. Cette liste comprend les bibliothèques assignées, c'est-à-dire celles qui sont intégrées, préassignées ou assignées dans un programme d'exécution automatique. La liste comprend également les bibliothèques potentielles, c'est-à-dire celles définies dans les métadonnées qui n'ont pas encore été attribuées ou auxquelles on n'a pas encore accédé, mais que vous êtes autorisé à visualiser.
Cet exemple de vue montre un serveur SAS avec un mélange de bibliothèques assignées et potentielles :
AssignMode
Pour les bibliothèques de données qui sont définies dans SAS Metadata Server et qui ne sont pas pré-affectées, SAS Entreprise Guide utilise le Metadata LIBNAME Engine pour affecter le libref.
Comme nous l'avons vu au début de cet article, le Metadata LIBNAME Engine fournit l'option METAOUT pour contrôler l'accès à la bibliothèque.
La définition des métadonnées d'une bibliothèque peut éventuellement inclure l'attribut étendu AssignMode pour spécifier comment une application client doit utiliser l'option METAOUT lors de l'attribution du libref.
SAS Enterprise Guide prend en charge les valeurs de 0 à 4 pour l'attribut AssignMode :
1 - La bibliothèque est assignée à l'aide du moteur META. Lorsque vous spécifiez cette valeur, l'option METAOUT= est définie sur ALL. Vous pouvez lire, créer, mettre à jour et supprimer des observations dans une table physique existante qui est définie dans les métadonnées. Vous ne pouvez pas créer ou supprimer une table physique, ni modifier les colonnes d'une table physique. Il s'agit du comportement par défaut.
Cela signifie que le moteur applique des restrictions pour empêcher les ajouts et les modifications qui pourraient désynchroniser les métadonnées des bibliothèques avec les tables physiques
2 - La bibliothèque est attribuée à l'aide du moteur META. Lorsque vous spécifiez cette valeur, l'option METAOUT= est définie sur DATA. Vous pouvez lire, créer, modifier, mettre à jour et supprimer une table physique. L'utilisateur peut accéder à n'importe quelle table, qu'elle ait été définie ou non dans le référentiel.
4 - La bibliothèque est attribuée à l'aide du moteur META. Vous pouvez lire, mettre à jour, modifier et supprimer une table physique qui est définie dans les métadonnées. Vous pouvez également créer et supprimer des tables physiques qui ne sont pas dans les métadonnées, mais vous ne pouvez pas lire ou mettre à jour les nouvelles tables tant qu'elles ne sont pas définies dans les métadonnées. Cette valeur est similaire à METAOUT=DATA, sauf que les tables et les colonnes qui ne sont pas définies dans le référentiel ne sont pas visibles.