You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gobblin.apache.org by hu...@apache.org on 2019/03/21 19:49:53 UTC
[incubator-gobblin] branch master updated: [GOBBLIN-705] create
method to merging tblProps from existing hive meta table
This is an automated email from the ASF dual-hosted git repository.
hutran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-gobblin.git
The following commit(s) were added to refs/heads/master by this push:
new b0d1307 [GOBBLIN-705] create method to merging tblProps from existing hive meta table
b0d1307 is described below
commit b0d130757669a5fed7c368d44f23f8a9c0d3ed4a
Author: autumnust <le...@linkedin.com>
AuthorDate: Thu Mar 21 12:49:47 2019 -0700
[GOBBLIN-705] create method to merging tblProps from existing hive meta table
Closes #2575 from autumnust/UnionTblProps
---
.../hive/metastore/HiveMetaStoreBasedRegister.java | 47 ++++++++++++++++------
1 file changed, 35 insertions(+), 12 deletions(-)
diff --git a/gobblin-hive-registration/src/main/java/org/apache/gobblin/hive/metastore/HiveMetaStoreBasedRegister.java b/gobblin-hive-registration/src/main/java/org/apache/gobblin/hive/metastore/HiveMetaStoreBasedRegister.java
index 0ee5445..b676737 100644
--- a/gobblin-hive-registration/src/main/java/org/apache/gobblin/hive/metastore/HiveMetaStoreBasedRegister.java
+++ b/gobblin-hive-registration/src/main/java/org/apache/gobblin/hive/metastore/HiveMetaStoreBasedRegister.java
@@ -165,13 +165,6 @@ public class HiveMetaStoreBasedRegister extends HiveRegister {
}
}
- @Override
- public boolean createDbIfNotExists(String dbName) throws IOException {
- try (AutoReturnableObject<IMetaStoreClient> client = this.clientPool.getClient()) {
- return createDbIfNotExists(client.get(), dbName);
- }
- }
-
/**
* If table existed on Hive side will return false;
* Or will create the table thru. RPC and return retVal from remote MetaStore.
@@ -200,7 +193,7 @@ public class HiveMetaStoreBasedRegister extends HiveRegister {
}
if (needToUpdateTable(existingTable, spec.getTable())) {
try (Timer.Context context = this.metricContext.timer(ALTER_TABLE).time()) {
- client.alter_table(dbName, tableName, getTableWithCreateTime(table, existingTable));
+ client.alter_table(dbName, tableName, getNewTblByMergingExistingTblProps(table, existingTable));
}
log.info(String.format("updated Hive table %s in db %s", tableName, dbName));
}
@@ -281,6 +274,20 @@ public class HiveMetaStoreBasedRegister extends HiveRegister {
}
}
+ /**
+ * @deprecated Use {@link #createDbIfNotExists(IMetaStoreClient, String)} directly.
+ */
+ @Deprecated
+ public boolean createDbIfNotExists(String dbName) throws IOException {
+ try (AutoReturnableObject<IMetaStoreClient> client = this.clientPool.getClient()) {
+ return createDbIfNotExists(client.get(), dbName);
+ }
+ }
+
+ /**
+ * @deprecated Please use {@link #createOrAlterTable(IMetaStoreClient, Table, HiveSpec)} instead.
+ */
+ @Deprecated
@Override
public boolean createTableIfNotExists(HiveTable table) throws IOException {
try (AutoReturnableObject<IMetaStoreClient> client = this.clientPool.getClient();
@@ -289,6 +296,10 @@ public class HiveMetaStoreBasedRegister extends HiveRegister {
}
}
+ /**
+ * @deprecated Use {@link #addOrAlterPartition} instead.
+ */
+ @Deprecated
@Override
public boolean addPartitionIfNotExists(HiveTable table, HivePartition partition) throws IOException {
try (AutoReturnableObject<IMetaStoreClient> client = this.clientPool.getClient();
@@ -312,6 +323,10 @@ public class HiveMetaStoreBasedRegister extends HiveRegister {
}
}
+ @Deprecated
+ /**
+ * @deprecated Please use {@link #createOrAlterTable(IMetaStoreClient, Table, HiveSpec)} instead.
+ */
private boolean createTableIfNotExists(IMetaStoreClient client, Table table, HiveTable hiveTable) throws IOException {
String dbName = table.getDbName();
String tableName = table.getTableName();
@@ -357,10 +372,6 @@ public class HiveMetaStoreBasedRegister extends HiveRegister {
}
}
-
-
-
-
@Override
public boolean existsTable(String dbName, String tableName) throws IOException {
if (this.optimizedChecks && this.tableAndDbExistenceCache.getIfPresent(dbName + ":" + tableName ) != null ) {
@@ -617,4 +628,16 @@ public class HiveMetaStoreBasedRegister extends HiveRegister {
return actualtable;
}
+
+ /**
+ * Used to merge properties from existingTable to newTable.
+ * e.g. New table will inherit creation time from existing table.
+ *
+ * This method is extensible for customized logic in merging table properties.
+ * @param newTable
+ * @param existingTable
+ */
+ protected Table getNewTblByMergingExistingTblProps(Table newTable, HiveTable existingTable) {
+ return getTableWithCreateTime(newTable, existingTable);
+ }
}