@heightsnj
How do I know if a filter needs the natural keys, and what are they?
--------------
Every filter always needs you to select all the natural keys for the given filter type.
In your example type aggregate cm_storage
If you go to Designer -> dictionary and locate the dictionary aggregate scheme cm_storage, you can see what are its natural keys.
Its name , reference -> cm_storage.Node . Now look to resolve the reference
For dictionary cm_storage.Node, the natural keys are Node.name and ref-> cm_storage.Cluster
Similarly resolving the ref for cm_storage.Cluster which has natural key node.cluster.primary_address
The above manual way to look for the natual keys is too cumbersome to try. WFA till now hasn't provided a good way to know the which are the natural keys to be included in the filter and in what format. Currently you can only know by the way of failure as you did in your case. Have any select statement and do test, failure message will tell you wnat all you need.
In future we have plans to make it better.
I still dont' understand is that why I have to include each one of following columns in the query, and as such format/syntax? Cann't I replace "node.name" with "aggregate.node"?
------------------
I think the above should help you understand why you can't replace node.name with aggregate.node. Columns in WFA dictionary ( DB tables ) can have foreign keys which are referencing to objects in other dictionary ( tables).
If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.