This is an automated email from the ASF dual-hosted git repository.

sarath pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/atlas.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 1d3bef6  ATLAS-3590: Hive hook should ignore capturing lineage for 
temporary tables in CTAS queries
1d3bef6 is described below

commit 1d3bef6319b76b804774452fd1ee8c6521c5b54e
Author: Sarath Subramanian <[email protected]>
AuthorDate: Thu Jan 16 16:51:14 2020 -0800

    ATLAS-3590: Hive hook should ignore capturing lineage for temporary tables 
in CTAS queries
    
    (cherry picked from commit 47f2e77bf798547e652e16cf10adaa818ded1e3e)
---
 .../src/main/java/org/apache/atlas/hive/hook/HiveHook.java     |  2 +-
 .../java/org/apache/atlas/hive/hook/events/BaseHiveEvent.java  | 10 +++++++---
 .../org/apache/atlas/hive/hook/events/CreateHiveProcess.java   |  9 ++++++---
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git 
a/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/HiveHook.java 
b/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/HiveHook.java
index 5b1f61b..e886b9b 100644
--- a/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/HiveHook.java
+++ b/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/HiveHook.java
@@ -201,7 +201,7 @@ public class HiveHook extends AtlasHook implements 
ExecuteWithHookContext {
                 case EXPORT:
                 case IMPORT:
                 case QUERY:
-                    event = new CreateHiveProcess(context);
+                    event = new CreateHiveProcess(context, true);
                 break;
 
                 case ALTERTABLE_FILEFORMAT:
diff --git 
a/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/events/BaseHiveEvent.java
 
b/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/events/BaseHiveEvent.java
index b3b2299..91accfa 100644
--- 
a/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/events/BaseHiveEvent.java
+++ 
b/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/events/BaseHiveEvent.java
@@ -233,14 +233,14 @@ public abstract class BaseHiveEvent {
         }
     }
 
-    protected AtlasEntity getInputOutputEntity(Entity entity, 
AtlasEntityExtInfo entityExtInfo) throws Exception {
+    protected AtlasEntity getInputOutputEntity(Entity entity, 
AtlasEntityExtInfo entityExtInfo, boolean skipTempTables) throws Exception {
         AtlasEntity ret = null;
 
         switch(entity.getType()) {
             case TABLE:
             case PARTITION:
             case DFS_DIR: {
-                ret = toAtlasEntity(entity, entityExtInfo);
+                ret = toAtlasEntity(entity, entityExtInfo, skipTempTables);
             }
             break;
         }
@@ -248,7 +248,7 @@ public abstract class BaseHiveEvent {
         return ret;
     }
 
-    protected AtlasEntity toAtlasEntity(Entity entity, AtlasEntityExtInfo 
entityExtInfo) throws Exception {
+    protected AtlasEntity toAtlasEntity(Entity entity, AtlasEntityExtInfo 
entityExtInfo, boolean skipTempTables) throws Exception {
         AtlasEntity ret = null;
 
         switch (entity.getType()) {
@@ -274,6 +274,10 @@ public abstract class BaseHiveEvent {
                 }
 
                 if (!skipTable) {
+                    skipTable = skipTempTables && 
entity.getTable().isTemporary();
+                }
+
+                if (!skipTable) {
                     Table table = getHive().getTable(dbName, tableName);
 
                     ret = toTableEntity(table, entityExtInfo);
diff --git 
a/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/events/CreateHiveProcess.java
 
b/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/events/CreateHiveProcess.java
index 82df576..659417d 100644
--- 
a/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/events/CreateHiveProcess.java
+++ 
b/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/events/CreateHiveProcess.java
@@ -49,9 +49,12 @@ import java.util.Set;
 
 public class CreateHiveProcess extends BaseHiveEvent {
     private static final Logger LOG = 
LoggerFactory.getLogger(CreateHiveProcess.class);
+    private final boolean skipTempTables;
 
-    public CreateHiveProcess(AtlasHiveHookContext context) {
+    public CreateHiveProcess(AtlasHiveHookContext context, boolean 
skipTempTables) {
         super(context);
+
+        this.skipTempTables = skipTempTables;
     }
 
     @Override
@@ -84,7 +87,7 @@ public class CreateHiveProcess extends BaseHiveEvent {
                         continue;
                     }
 
-                    AtlasEntity entity = getInputOutputEntity(input, ret);
+                    AtlasEntity entity = getInputOutputEntity(input, ret, 
skipTempTables);
 
                     if (!input.isDirect()) {
                         continue;
@@ -104,7 +107,7 @@ public class CreateHiveProcess extends BaseHiveEvent {
                         continue;
                     }
 
-                    AtlasEntity entity = getInputOutputEntity(output, ret);
+                    AtlasEntity entity = getInputOutputEntity(output, ret, 
skipTempTables);
 
                     if (entity != null) {
                         outputs.add(entity);

Reply via email to