Il Virtual Engine Generator (abbr. VEG) è un oggetto di tipo DataEngine del Package in grado di generare dinamicamente a «run-time» DataLink o DataEngine «virtuali», ossia validi per la sola esecuzione corrente ed eseguite solo se il piano di esecuzione li prevede.
Una reference ad un qualunque oggetto generato da un VEG implica una dipendenza del VEG stesso.
Gli elementi definitori del VEG sono esposti nei seguenti tab:
✓ General, per l'impostazione del nome dell'oggetto e della descrizione opzionale;
✓ Input Query, per l'inserimento obbligatorio di una query che definisca l'oggetto;
✓ Dynamic Properties, per la definizione dinamica opzionale delle properties
La Input Query può essere composta liberamente. Tuttavia, essa deve restituire i seguenti campi:
✓ name, contenente il nome dell'oggetto da generare;
✓ ObjectType, contenente il tipo di oggetto da generare;
✓ Query, contenente la query sorgente che descrive l'oggetto da generare;
✓ Ulteriori campi aventi il nome delle property dell'oggetto (e.g. Connection, UnexpectedColumns) per la definizione del comportamento dell'oggetto da generare.
L'eventuale specificazione di property di caching nella Input Query non può avere effetto, in quanto il VEG non crea oggetti persistenti, ma materialmente presenti solo nel contesto di una singola esecuzione. |
DOMINIO DEL CAMPO ObjectType
Il campo ObjectType può assumere i valori relativi alle tipologie di oggetti del Package che sono di norma utilizzati dal Designer, cioè:
✓AuditShelfReference ✓BloombergBulkDatalink ✓BloombergHistoryDatalink ✓BloombergTableDatalink ✓CatalogExaminer ✓ChannelConnection ✓DatabaseDatalink ✓DataBoxDatalink ✓DataShelfReference ✓DBConnection ✓DynamicLoader ✓ExcelDatalink ✓FileDatalink ✓FileWriterDatalink ✓FolderConnection ✓Function ✓InvokeWorkflow ✓LockEngine ✓MaskingEngine ✓ParameterDatalink ✓DataProfilerEngine ✓QueryEngine ✓PackageExaminer ✓REngine ✓PythonEngine ✓ResourcesDatalink ✓RuleEngine ✓ScriptEngine ✓ScriptModule ✓SqlEngine ✓SysInfoDatalink ✓VirtualDBConnection ✓VirtualEngineGenerator
|
Esiste uno schema di naming speciale per i VEG:
[<full name del VEG>|<path dell'oggetto generato>]
Tale schema può essere usato sia per richiamare il VEG da altri oggetti del Package, sia nella definizione stessa della Input Query.
ESEMPIO DI INPUT QUERY L'esempio seguente rappresenta una Input Query per la definizione di un Query Engine virtuale:
SELECT name = 'st1', ObjectType = 'QueryEngine', Query = 'select * from [table]', UnexpectedColumns = 'Read' UNION ALL SELECT name = 'st2', ObjectType = 'QueryEngine', Query = 'select * from [veg|st1]', UnexpectedColumns = 'Read'
Richiamando l'oggetto veg definito dalla precedente Input Query in un qualsiasi altro oggetto del Package, sarà in questo caso generato, esclusivamente in fase di esecuzione: ✓ un oggetto Query Engine definito dalla Query select * from [table] nel caso in cui sia richiamato da SELECT * FROM [veg|st1] ✓ oppure di un oggetto Query Engine definito dalla Query select * from [veg|st1] nel caso in cui sia richiamato da SELECT * FROM [veg|st2]
Si noti, in particolare che, nel secondo caso, la Query definitoria del Query Engine richiama direttamente essa stessa l'oggetto veg, la cui applicazione può essere, quindi, di tipo ricorsivo. |
Un VEG può permettere la creazione di DataLink virtuali. Questo utilizzo consente di operare in parallelismo per quanto riguarda porzioni dell'esecuzione, anche su aspetti non nativamente parallelizzabili. L'esempio più importante, a questo proposito, è la possibilità di istanziare l'acquisizione iniziale simultanea dei dati provenienti da sorgenti esterne diverse, anche in presenza di strutture non congruenti (e.g. file diversi in folder diversi). |
Il Virtual Engine Generator non è un oggetto EAsT, cioè non restituisce un risultato sotto forma di tabella. Tuttavia, è disponibile la visualizzazione in Preview del risultato della Input Query. |
La documentazione del Package non è in grado di integrare gli oggetti creati dal VEG, che sono tuttavia descritti completamente dai processi di Audit. |
A partire dalla versione IrionEDM 2016 Update 11, è disponibile anche una sample query per ciascun Object Type, inseribile dal menu a tendina Sample del ribbon Home. |