ETL execution engine [message #1765197] |
Wed, 07 June 2017 08:44  |
Eclipse User |
|
|
|
Hi,
I want to know about execution engine of ETL. Is there any reference to help in this regard?
e.g., In the below code when 'Element' class is created? When we execute 'Statemachine2Petrinet' rule and arrive to 'pn.elements ::= sm.elements' statement or when we execute `ModelElem2Element` rule?
rule Statemachine2Petrinet
transform sm: Statemachine!Statemachine
to pn : Petrinet!Petrinet {
pn.elements ::= sm.elements;
}
rule ModelElem2Element
transform mElem : Statemachine!ModelElem
to elem : Petrinet!Element {
guard : mElem.name <> null
elem.name := mElem.name;
}
[Updated on: Wed, 07 June 2017 08:45] by Moderator
|
|
|
|
|
|
|
|
|
Re: ETL execution engine [message #1766455 is a reply to message #1765261] |
Wed, 21 June 2017 11:11   |
Eclipse User |
|
|
|
Thanks for your kind help.
1. How the engine distinguish between two classes with the same name?
e.g., In these two rules 4 different Column classes should be created and have their own features:
rule Class2Table
transform c : OO!Class
to t : DB!Table, pk : DB!Column {
if (c.`extends`.isDefined()){
var childFkCol : new DB!Column;
var parentFkCol : DB!Column;
}
}
rule SingleValuedAttribute2Column
transform a : OO!Attribute
to c : DB!Column {
....
}
EClass [name=Column, instanceClassName=null, instanceClass=null, defaultValue=null, instanceTypeName=null, abstract=false, interface=false, ] cannot specifies the difference of these classes.
2. When we have an assignment statement that its lhs is a class, what does it do?
parentFkCol = parentTable.primaryKeys.first();
[Updated on: Thu, 22 June 2017 11:35] by Moderator
|
|
|
|
|
|
|
|
|
|
|
|
Re: ETL execution engine [message #1767133 is a reply to message #1766604] |
Sat, 01 July 2017 13:37   |
Eclipse User |
|
|
|
Hi,
Thanks a lot.
I have some more questions:
1.
Dimitris Kolovos wrote on Wed, 07 June 2017 14:24
In the absence of lazy rules, ETL runs in 2 passes. In the first pass it creates all target objects and traceability links back to their equivalent source objects and in the second pass, it populates the contents of the target objects by running the bodies of the respective rules.
when we have lazy rules what changes occur?
2. In the "SpecialAssignmentStatements" or "AssignmentStatements" which have equivalent(s) in their rhs, the engine finds TransformationRule which its source has the special type and selects its target. I want to know:
2.1. If the TransformationRule has more than one target, does the engine select all of its target?
2.2. If we have more than one TrasformationRule that matches the condition, do all of them select?
3. In the "parentTable.primaryKeys.first()" expression, how the execution engine find out to which class "primaryKeys" refers?
My own perception is it finds the eType of primarykeys reference. By the way, I have no idea about the metamodel file it belongs to.
Many thanks for your time,
[Updated on: Sat, 01 July 2017 13:45] by Moderator
|
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.18672 seconds