This is an automated email from the ASF dual-hosted git repository. chaitalithombare pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/atlas.git
The following commit(s) were added to refs/heads/master by this push: new 87332abb0 ATLAS-4974: impala-bridge, impala-bridge-shim, impala-hook-api module… (#385) 87332abb0 is described below commit 87332abb0243be1cddf7853ede59498c7f8990bf Author: chaitalicod <36201417+chaitali...@users.noreply.github.com> AuthorDate: Wed Jun 18 15:48:43 2025 +0530 ATLAS-4974: impala-bridge, impala-bridge-shim, impala-hook-api module… (#385) * ATLAS-4974: impala-bridge, impala-bridge-shim, impala-hook-api modules: update for code readability improvements * ATLAS-4974: impala-bridge, impala-bridge-shim, impala-hook-api modules: update for code readability improvements --------- Co-authored-by: chaitalithombare <chaitalithomb...@apache.org> --- .../atlas/impala/hook/ImpalaLineageHook.java | 8 +- .../org/apache/atlas/impala/model/ImpalaNode.java | 19 ++- .../atlas/impala/model/ImpalaOperationType.java | 20 +-- .../org/apache/atlas/impala/model/ImpalaQuery.java | 156 +++++++++++---------- .../org/apache/atlas/impala/model/LineageEdge.java | 55 ++++---- .../apache/atlas/impala/model/LineageVertex.java | 74 +++++----- .../atlas/impala/model/LineageVertexMetadata.java | 28 ++-- .../apache/impala/hooks/QueryCompleteContext.java | 12 +- 8 files changed, 202 insertions(+), 170 deletions(-) diff --git a/addons/impala-bridge-shim/src/main/java/org/apache/atlas/impala/hook/ImpalaLineageHook.java b/addons/impala-bridge-shim/src/main/java/org/apache/atlas/impala/hook/ImpalaLineageHook.java index 34e6dcf4e..4251fb36c 100644 --- a/addons/impala-bridge-shim/src/main/java/org/apache/atlas/impala/hook/ImpalaLineageHook.java +++ b/addons/impala-bridge-shim/src/main/java/org/apache/atlas/impala/hook/ImpalaLineageHook.java @@ -33,9 +33,9 @@ public class ImpalaLineageHook implements QueryEventHook { private static final String ATLAS_PLUGIN_TYPE_IMPALA = "impala"; private static final String ATLAS_IMPALA_LINEAGE_HOOK_IMPL_CLASSNAME = - "org.apache.atlas.impala.hook.ImpalaHook"; + "org.apache.atlas.impala.hook.ImpalaHook"; - private AtlasPluginClassLoader atlasPluginClassLoader = null; + private AtlasPluginClassLoader atlasPluginClassLoader; private QueryEventHook impalaLineageHookImpl; public ImpalaLineageHook() { @@ -71,7 +71,7 @@ public class ImpalaLineageHook implements QueryEventHook { @SuppressWarnings("unchecked") Class<QueryEventHook> cls = (Class<QueryEventHook>) Class - .forName(ATLAS_IMPALA_LINEAGE_HOOK_IMPL_CLASSNAME, true, atlasPluginClassLoader); + .forName(ATLAS_IMPALA_LINEAGE_HOOK_IMPL_CLASSNAME, true, atlasPluginClassLoader); activatePluginClassLoader(); @@ -97,4 +97,4 @@ public class ImpalaLineageHook implements QueryEventHook { atlasPluginClassLoader.deactivate(); } } -} \ No newline at end of file +} diff --git a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaNode.java b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaNode.java index a3ddf5372..f980d8631 100644 --- a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaNode.java +++ b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaNode.java @@ -33,10 +33,21 @@ public class ImpalaNode { children = new HashMap<>(); } - public String getNodeName() { return ownVertex.getVertexId(); } - public ImpalaVertexType getNodeType() { return ownVertex.getVertexType(); } - public LineageVertex getOwnVertex() { return ownVertex; } - public Map<Long, ImpalaNode> getChildren() { return children; } + public String getNodeName() { + return ownVertex.getVertexId(); + } + + public ImpalaVertexType getNodeType() { + return ownVertex.getVertexType(); + } + + public LineageVertex getOwnVertex() { + return ownVertex; + } + + public Map<Long, ImpalaNode> getChildren() { + return children; + } /** * Add child to this node diff --git a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaOperationType.java b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaOperationType.java index 5200b944e..fb2a4905a 100644 --- a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaOperationType.java +++ b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaOperationType.java @@ -17,20 +17,20 @@ */ package org.apache.atlas.impala.model; -public enum ImpalaOperationType{ +public enum ImpalaOperationType { // main operation type - CREATEVIEW ("CREATEVIEW"), - CREATETABLE_AS_SELECT ("CREATETABLE_AS_SELECT"), - ALTERVIEW_AS ("ALTERVIEW_AS"), - QUERY ("QUERY"), - QUERY_WITH_CLAUSE ("QUERY_WITH_CLAUSE"), + CREATEVIEW("CREATEVIEW"), + CREATETABLE_AS_SELECT("CREATETABLE_AS_SELECT"), + ALTERVIEW_AS("ALTERVIEW_AS"), + QUERY("QUERY"), + QUERY_WITH_CLAUSE("QUERY_WITH_CLAUSE"), // sub operation type, which is associated with output - INSERT ("INSERT"), - INSERT_OVERWRITE ("INSERT_OVERWRITE"), + INSERT("INSERT"), + INSERT_OVERWRITE("INSERT_OVERWRITE"), // default type - UNKNOWN ("UNKNOWN"); + UNKNOWN("UNKNOWN"); private final String name; @@ -45,4 +45,4 @@ public enum ImpalaOperationType{ public String toString() { return this.name; } -} \ No newline at end of file +} diff --git a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaQuery.java b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaQuery.java index 27bdc72e9..dd9c194c7 100644 --- a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaQuery.java +++ b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/ImpalaQuery.java @@ -18,93 +18,95 @@ package org.apache.atlas.impala.model; -import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; -import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.annotation.JsonSerialize; + import java.util.List; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + /** * Represent an Impala lineage record in lineage log. */ -@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown=true) +@JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = PUBLIC_ONLY, fieldVisibility = NONE) +@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) public class ImpalaQuery { - private String queryText; - private String queryId; - private String hash; - private String user; + private String queryText; + private String queryId; + private String hash; + private String user; // the time stamp is in seconds. It is Unix epoch, which is the number of seconds that have // elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds - private Long timestamp; - private Long endTime; - private List<LineageEdge> edges; - private List<LineageVertex> vertices; - - public List<LineageEdge> getEdges() { - return edges; - } - - public List<LineageVertex> getVertices() { - return vertices; - } - - public Long getEndTime() { - return endTime; - } - - public String getHash() { - return hash; - } - - public String getQueryId() { - return queryId; - } - - public String getQueryText() { - return queryText; - } - - public Long getTimestamp() { - return timestamp; - } - - public String getUser() { - return user; - } - - public void setEdges(List<LineageEdge> edges) { - this.edges = edges; - } - - public void setEndTime(Long endTime) { - this.endTime = endTime; - } - - public void setHash(String hash) { - this.hash = hash; - } - - public void setQueryId(String queryId) { - this.queryId = queryId; - } - - public void setQueryText(String queryText) { - this.queryText = queryText; - } - - public void setTimestamp(Long timestamp) { this.timestamp = timestamp; } - - public void setUser(String user) { - this.user = user; - } - - public void setVertices(List<LineageVertex> vertices) { - this.vertices = vertices; - } - + private Long timestamp; + private Long endTime; + private List<LineageEdge> edges; + private List<LineageVertex> vertices; + + public List<LineageEdge> getEdges() { + return edges; + } + + public List<LineageVertex> getVertices() { + return vertices; + } + + public Long getEndTime() { + return endTime; + } + + public String getHash() { + return hash; + } + + public String getQueryId() { + return queryId; + } + + public String getQueryText() { + return queryText; + } + + public Long getTimestamp() { + return timestamp; + } + + public String getUser() { + return user; + } + + public void setEdges(List<LineageEdge> edges) { + this.edges = edges; + } + + public void setEndTime(Long endTime) { + this.endTime = endTime; + } + + public void setHash(String hash) { + this.hash = hash; + } + + public void setQueryId(String queryId) { + this.queryId = queryId; + } + + public void setQueryText(String queryText) { + this.queryText = queryText; + } + + public void setTimestamp(Long timestamp) { + this.timestamp = timestamp; + } + + public void setUser(String user) { + this.user = user; + } + + public void setVertices(List<LineageVertex> vertices) { + this.vertices = vertices; + } } diff --git a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageEdge.java b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageEdge.java index 251507e9e..a9d0e3f00 100644 --- a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageEdge.java +++ b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageEdge.java @@ -18,46 +18,47 @@ package org.apache.atlas.impala.model; -import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; -import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.annotation.JsonSerialize; + import java.util.List; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + /** * This represents an edge in Impala's lineage record that connects two entities */ -@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown=true) +@JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = PUBLIC_ONLY, fieldVisibility = NONE) +@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) public class LineageEdge { - private List<Long> sources; - private List<Long> targets; - private ImpalaDependencyType edgeType; + private List<Long> sources; + private List<Long> targets; + private ImpalaDependencyType edgeType; - public List<Long> getSources() { - return sources; - } + public List<Long> getSources() { + return sources; + } - public List<Long> getTargets() { - return targets; - } + public List<Long> getTargets() { + return targets; + } - public ImpalaDependencyType getEdgeType() { - return edgeType; - } + public ImpalaDependencyType getEdgeType() { + return edgeType; + } - public void setSources(List<Long> sources) { - this.sources = sources; - } + public void setSources(List<Long> sources) { + this.sources = sources; + } - public void setTargets(List<Long> targets) { - this.targets = targets; - } + public void setTargets(List<Long> targets) { + this.targets = targets; + } - public void setEdgeType(ImpalaDependencyType edgeType) { - this.edgeType = edgeType; - } + public void setEdgeType(ImpalaDependencyType edgeType) { + this.edgeType = edgeType; + } } diff --git a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageVertex.java b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageVertex.java index 0a664fc8b..db40e25db 100644 --- a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageVertex.java +++ b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageVertex.java @@ -18,66 +18,74 @@ package org.apache.atlas.impala.model; -import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; -import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; /** * This represents an entity in Impala's lineage record. */ -@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown=true) + +@JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = PUBLIC_ONLY, fieldVisibility = NONE) +@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) public class LineageVertex { // id is used to reference this entity. It is used in LineageEdge to specify source and target // https://github.com/apache/impala/blob/master/be/src/util/lineage-util.h#L40 // Impala id is int64. Therefore, define this field as Long - private Long id; + private Long id; // specify the type of the entity, it could be "TABLE", "COLUMN" etc. - private ImpalaVertexType vertexType; + private ImpalaVertexType vertexType; // specify the name of the entity - private String vertexId; + private String vertexId; // It is optional, and could be null. It is only set if the entity is a column, and this field contains metadata of its table. - private LineageVertexMetadata metadata; + private LineageVertexMetadata metadata; // It is optional. Its unit in seconds. - private Long createTime; + private Long createTime; - public Long getId() { return id; } + public Long getId() { + return id; + } - public ImpalaVertexType getVertexType() { - return vertexType; - } + public ImpalaVertexType getVertexType() { + return vertexType; + } - public String getVertexId() { - return vertexId; - } + public String getVertexId() { + return vertexId; + } - public LineageVertexMetadata getMetadata() { - return metadata; - } + public LineageVertexMetadata getMetadata() { + return metadata; + } - public Long getCreateTime() { return createTime; } + public Long getCreateTime() { + return createTime; + } - public void setId(Long id) { - this.id = id; - } + public void setId(Long id) { + this.id = id; + } - public void setVertexType(ImpalaVertexType vertexType) { - this.vertexType = vertexType; - } + public void setVertexType(ImpalaVertexType vertexType) { + this.vertexType = vertexType; + } - public void setVertexId(String vertexId) { - this.vertexId = vertexId; - } + public void setVertexId(String vertexId) { + this.vertexId = vertexId; + } - public void setMetadata(LineageVertexMetadata metadata) { this.metadata = metadata; } + public void setMetadata(LineageVertexMetadata metadata) { + this.metadata = metadata; + } - public void setCreateTime(Long createTime) { this.createTime = createTime; } + public void setCreateTime(Long createTime) { + this.createTime = createTime; + } } \ No newline at end of file diff --git a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageVertexMetadata.java b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageVertexMetadata.java index 2b3226c21..af9ebb43d 100644 --- a/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageVertexMetadata.java +++ b/addons/impala-bridge/src/main/java/org/apache/atlas/impala/model/LineageVertexMetadata.java @@ -18,19 +18,19 @@ package org.apache.atlas.impala.model; -import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; -import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; /** * This represents optional metadata in Impala's lineage vertex entity. */ -@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown=true) + +@JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = PUBLIC_ONLY, fieldVisibility = NONE) +@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) public class LineageVertexMetadata { // specify the name of the table private String tableName; @@ -38,11 +38,19 @@ public class LineageVertexMetadata { // the create time of the table. Its unit is in seconds. private Long tableCreateTime; - public String getTableName() { return tableName; } + public String getTableName() { + return tableName; + } - public Long getTableCreateTime() { return tableCreateTime; } + public Long getTableCreateTime() { + return tableCreateTime; + } - public void setTableName(String tableName) { this.tableName = tableName; } + public void setTableName(String tableName) { + this.tableName = tableName; + } - public void setTableCreateTime(Long createTime) { this.tableCreateTime = createTime; } + public void setTableCreateTime(Long createTime) { + this.tableCreateTime = createTime; + } } diff --git a/addons/impala-hook-api/src/main/java/org/apache/impala/hooks/QueryCompleteContext.java b/addons/impala-hook-api/src/main/java/org/apache/impala/hooks/QueryCompleteContext.java index dc8e31716..24f1fb211 100644 --- a/addons/impala-hook-api/src/main/java/org/apache/impala/hooks/QueryCompleteContext.java +++ b/addons/impala-hook-api/src/main/java/org/apache/impala/hooks/QueryCompleteContext.java @@ -17,17 +17,17 @@ */ package org.apache.impala.hooks; -import java.util.Objects; +import static java.util.Objects.requireNonNull; /** * {@link QueryCompleteContext} encapsulates immutable information sent from the * BE to a post-query hook. */ public class QueryCompleteContext { - private final String lineageGraph_; + private final String lineageGraphObject; public QueryCompleteContext(String lineageGraph) { - lineageGraph_ = Objects.requireNonNull(lineageGraph); + lineageGraphObject = requireNonNull(lineageGraph); } /** @@ -45,12 +45,14 @@ public class QueryCompleteContext { * * @return lineage graph from the query that executed */ - public String getLineageGraph() { return lineageGraph_; } + public String getLineageGraph() { + return lineageGraphObject; + } @Override public String toString() { return "QueryCompleteContext{" + - "lineageGraph='" + lineageGraph_ + '\'' + + "lineageGraph='" + lineageGraphObject + '\'' + '}'; } }