THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||
---|---|---|
| ||
/** * An implementation of {@link TwoPhaseCatalogTable} for Hive to * support atomic ctas. */ public class HiveTwoPhaseCatalogTable implements TwoPhaseCatalogTable { private static final long serialVersionUID = 1L; @Nullable private final String hiveVersion; private final JobConfWrapper jobConfWrapper; private final Table table; private final boolean ignoreIfExists; private transient HiveMetastoreClientWrapper client; public HiveTwoPhaseCatalogTable( String hiveVersion, JobConfWrapper jobConfWrapper, Table table, boolean ignoreIfExists) { this.hiveVersion = hiveVersion; this.jobConfWrapper = jobConfWrapper; this.table = table; this.ignoreIfExists = ignoreIfExists; } @Override public void beginTransaction() { // init hive metastore client client = HiveMetastoreClientFactory.create( HiveConfUtils.create(jobConfWrapper.conf()), hiveVersion); } @Override public void commit() { try { client.createTable(table); } catch (AlreadyExistsException alreadyExistsException) { if (!ignoreIfExists) { throw new FlinkHiveException(alreadyExistsException); } } catch (Exception e) { throw new FlinkHiveException(e); } finally { client.close(); } } @Override public void abort() { // do nothingclient.close(); } } |
Compatibility, Deprecation, and Migration Plan
...