Exemple de langage Python
Cet exemple utilise le nom de fichier suivant : " libenv.py.
Coder
Les classes d'environnement et de bibliothèques partagées fournissent des informations sur l'environnement et les bibliothèques associés à un AE. Cet exemple prend un argument, un entier. Si le nombre entier est égal à 0, l'AE produit l'environnement qu'il voit. Si le nombre entier est égal à 1, l'AE recherche l'environnement en tant que bibliothèque.
import nzae
class LibEnvAe(nzae.Ae):
def _run(self):
for row in self:
if row[0] == 0:
for name, value in self.getEnvironment().iteritems():
self.output([name, value])
else:
for name, value in self.yieldSharedLibraries().iteritems():
self.output([name, value])
LibEnvAe.run()Déploiement
Déployer le script :
$NZ_EXPORT_DIR/ae/utilities/bin/compile_ae --language python64 \
--template deploy ./libenv.py --version 3Enregistrement
Enregistrer l'exemple :
$NZ_EXPORT_DIR/ae/utilities/bin/register_ae --language python64 --version 3 \
--template udtf --exe libenv.py --sig "lib_env(int4)" \
--return "table(name varchar(1000), value varchar(1000))"En cours d'exécution
Notez que les résultats de cet exemple sont spécifiques à l'environnement. Par conséquent, votre résultat ressemblera au texte suivant, mais ne lui correspondra pas.
SELECT * FROM TABLE WITH FINAL(lib_env(1));
NAME | VALUE
-------------------------------------------------------------------------
LIBNZAEADAPTERS | /nz/DATA/base/1/library/200245/host/libnzaeadapters.so
LIBNZAEPARENT | /nz/DATA/base/1/library/200244/host/libnzaeparent.so
LIBNZAECHILD | /nz/DATA/base/1/library/200247/host/libnzaechild.so
(3 rows)
SELECT * FROM TABLE WITH FINAL (lib_env(0)) LIMIT 5;
NAME | VALUE
-------------------------------------------------------------------------
AE_PYTHON_ROOT | /nz/export/ae/languages/python/2.7/host64
NPS_MODEL | TT4
NZAE_SHLIB_AUTO_LIBNZAEADAPTERS | 1
NZAE_RUNTIME_TRANSACTION_ID | 8558
NZAE_OPERATION_TIMEOUT | 1800
(5 rows)Note : Ce résultat peut varier car le nom peut être précédé d'un nom de base de données avec des points le séparant du nom de la bibliothèque. Par exemple,
xxx..LIBNZAECHILD. De même, les nombres affichés dans le nom du chemin de valeur peuvent être différents et de la forme : /nz/DATA/base/<dbOID>/library/<objectOID>/host/<libraryname>.so.