@@ -39,7 +39,60 @@ enum LogicalType {
39
39
TABULAR_DATA = 5
40
40
}
41
41
42
+ struct NodeKey {
43
+ 1: optional string name
42
44
45
+ 2: optional LogicalType logicalType
46
+ 3: optional PhysicalNodeType physicalType
47
+
48
+ /**
49
+ * represents the computation of the node including the computation of all its parents
50
+ * direct and indirect changes that change output will affect lineage hash
51
+ **/
52
+ 10: optional string lineageHash
53
+ }
54
+
55
+ struct NodeInfo {
56
+ /**
57
+ * represents the computation that a node does
58
+ * direct changes to conf that change output will affect semantic hash
59
+ * changing spark params etc shouldn't affect this
60
+ **/
61
+ 11: optional string semanticHash
62
+
63
+ /**
64
+ * simple hash of the entire conf (that is TSimpleJsonProtocol serialized),
65
+ * computed by cli and used to check if new conf_json need to be pushed from user's machine
66
+ **/
67
+ 12: optional string confHash
68
+
69
+ /**
70
+ * when new/updated conf's are pushed the branch is also set from the cli
71
+ * upon merging the branch will be unset
72
+ **/
73
+ 20: optional string branch
74
+
75
+ /**
76
+ * will be set to the author of the last semantic change to node
77
+ * (non-semantic changes like code-mods or spark params don't affect this)
78
+ **/
79
+ 21: optional string author
80
+
81
+ /**
82
+ * contents of the conf itself
83
+ **/
84
+ 30: optional LogicalNode conf
85
+ }
86
+
87
+ struct NodeConnections {
88
+ 1: optional list<NodeKey> parents
89
+ 2: optional list<NodeKey> children
90
+ }
91
+
92
+ struct NodeGraph {
93
+ 1: optional map<NodeKey, NodeConnections> connections
94
+ 2: optional map<NodeKey, NodeInfo> infoMap
95
+ }
43
96
44
97
45
98
@@ -96,12 +149,12 @@ union PhysicalNodeType {
96
149
}
97
150
98
151
struct PhysicalNode {
99
- 1: required string name ,
100
- 2: required PhysicalNodeType nodeType ,
101
- 3: required LogicalNode logicalNode ,
102
- 4: required string confHash ,
103
- 5: required list<common.TableDependency> tableDependencies ,
104
- 6: required list<string> outputColumns ,
152
+ 1: required string name
153
+ 2: required PhysicalNodeType nodeType
154
+ 3: required LogicalNode logicalNode
155
+ 4: required string confHash
156
+ 5: required list<common.TableDependency> tableDependencies
157
+ 6: required list<string> outputColumns
105
158
7: required string output_table
106
159
}
107
160
0 commit comments