Composition and inheritance are two key concepts in Data360 Analyze. Understanding these concepts will allow you to leverage the full power of the software, making effective re-use of common functionality and property values throughout your data flows.
Composition and composite nodes
Composition is simply the grouping of nodes inside other nodes, to build powerful, reusable blocks of functionality which can be reused across a data flow, or even in other data flows. A Composite Node is a node which contains other nodes – encapsulating complex functionality inside a compact component for ease of reuse and readability. The nodes inside a composite are referred to as ‘contained nodes’. It is often the case that the values of properties defined on a composite node are passed down into contained nodes, where the actual work is done to manipulate the data which flows into and out of the composite.
Inheritance and library nodes
To understand inheritance we must first introduce library nodes. A library node is simply a reusable node which has been created to perform a specific function, such as Sort an input data set, or perform a Linear Regression.
Library nodes are stored outside of data flows, as individual assets which are available from the Directory, making them available for use in any data flow. Data360 Analyze ships with a large set of library nodes, but the real power of the software lies in the fact that you and your organization can then go on to build your own – reusable components which perform domain-specific logic on your data.
When you create a data flow, you have access to all of your library nodes from the Nodes panel on the left of the screen. When you place a node, you are adding an instance of a library node to your data flow. This is not simply a copy of the contents of that library node into your data flow, but rather a reference to the library node, which you can then customize with property values which are specific to that specific instance of the node.
The property definitions and pins you see on your node instance are inherited from the library node. If you place a composite library node, then you can open it up to see the contained nodes which are inherited from the library node. If the library node is modified, then these properties, pins and contained nodes would be updated in your data flow to reflect those changes. If you want to override the inherited value, you can type a new value on the specific instance of the node.
This is very powerful, as it allows you to propagate any changes to your reusable components consistently throughout all of the analytics applications. However, it is important that you are also aware of the impact of these changes as you update library nodes.
Same name reference
Where a property value is left blank, the system will search for a property of the same name on any containing nodes, searching all the way up through nested groups (from the closest first) up to and including the top-level data flow.
If a property of the same name is found, it will automatically use its value.