Fonction de ligne simulée en langage Python
Cet exemple utilise le nom de fichier suivant : " timeSplit.py
Coder
import nzae
class TimeSplitAe(nzae.Ae):
def _getFunctionResult(self, row):
return row[0].split(":")
TimeSplitAe.run()
Déploiement
Déployer le script :
$NZ_EXPORT_DIR/ae/utilities/bin/compile_ae --language python64 \
--template deploy ./timeSplit.py --version 3
Enregistrement
Comme il n'y a pas de concept intégré de fonction de ligne dans Netezza SQL - bien qu'il y en ait un dans l'interface de l'adaptateur Python - cette fonction est enregistrée comme une fonction de table, bien qu'elle ne produise qu'une ligne par ligne d'entrée :
$NZ_EXPORT_DIR/ae/utilities/bin/register_ae --language python64 --version 3 \
--template udtf --exe timeSplit.py --sig "time_split(varchar(20))" \
--return "table(hour varchar(2), minute varchar(2), second varchar(2))"
En cours d'exécution
Exécutez la requête dans nzsql :
SELECT * FROM TABLE WITH FINAL(time_split('13:22:47'));
HOUR | MINUTE | SECOND
------+--------+--------
13 | 22 | 47