All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.atlas.hive.hook.events.DropTable Maven / Gradle / Ivy

There is a newer version: 2.3.0
Show newest version
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.atlas.hive.hook.events; import org.apache.atlas.hive.hook.AtlasHiveHookContext; import org.apache.atlas.model.instance.AtlasObjectId; import org.apache.atlas.model.notification.HookNotification; import org.apache.atlas.model.notification.HookNotification.EntityDeleteRequestV2; import org.apache.commons.collections.CollectionUtils; import org.apache.hadoop.hive.metastore.events.DropTableEvent; import org.apache.hadoop.hive.ql.hooks.Entity; import org.apache.hadoop.hive.ql.metadata.Table; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class DropTable extends BaseHiveEvent { public DropTable(AtlasHiveHookContext context) { super(context); } @Override public List getNotificationMessages() { List ret = null; List entities = context.isMetastoreHook() ? getHiveMetastoreEntities() : getHiveEntities(); if (CollectionUtils.isNotEmpty(entities)) { ret = new ArrayList<>(entities.size()); for (AtlasObjectId entity : entities) { ret.add(new EntityDeleteRequestV2(getUserName(), Collections.singletonList(entity))); } } return ret; } public List getHiveMetastoreEntities() { List ret = new ArrayList<>(); DropTableEvent tblEvent = (DropTableEvent) context.getMetastoreEvent(); Table table = new Table(tblEvent.getTable()); String tblQName = getQualifiedName(table); AtlasObjectId tblId = new AtlasObjectId(HIVE_TYPE_TABLE, ATTRIBUTE_QUALIFIED_NAME, tblQName); context.removeFromKnownTable(tblQName); ret.add(tblId); return ret; } public List getHiveEntities() { List ret = new ArrayList<>(); for (Entity entity : getOutputs()) { if (entity.getType() == Entity.Type.TABLE) { String tblQName = getQualifiedName(entity.getTable()); AtlasObjectId tblId = new AtlasObjectId(HIVE_TYPE_TABLE, ATTRIBUTE_QUALIFIED_NAME, tblQName); context.removeFromKnownTable(tblQName); ret.add(tblId); } } return ret; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy