1
0

[HUDI-2734] Setting default metadata enable as false for Java (#4003)

This commit is contained in:
Sivabalan Narayanan
2021-11-17 14:43:00 -05:00
committed by GitHub
parent f715cf607f
commit 2d3f2a3275
3 changed files with 24 additions and 4 deletions

View File

@@ -2179,7 +2179,7 @@ public class HoodieWriteConfig extends HoodieConfig {
writeConfig.setDefaultOnCondition(!isPayloadConfigSet, writeConfig.setDefaultOnCondition(!isPayloadConfigSet,
HoodiePayloadConfig.newBuilder().fromProperties(writeConfig.getProps()).build()); HoodiePayloadConfig.newBuilder().fromProperties(writeConfig.getProps()).build());
writeConfig.setDefaultOnCondition(!isMetadataConfigSet, writeConfig.setDefaultOnCondition(!isMetadataConfigSet,
HoodieMetadataConfig.newBuilder().fromProperties(writeConfig.getProps()).build()); HoodieMetadataConfig.newBuilder().withEngineType(engineType).fromProperties(writeConfig.getProps()).build());
writeConfig.setDefaultOnCondition(!isLockConfigSet, writeConfig.setDefaultOnCondition(!isLockConfigSet,
HoodieLockConfig.newBuilder().fromProperties(writeConfig.getProps()).build()); HoodieLockConfig.newBuilder().fromProperties(writeConfig.getProps()).build());
writeConfig.setDefaultOnCondition(!isPreCommitValidationConfigSet, writeConfig.setDefaultOnCondition(!isPreCommitValidationConfigSet,

View File

@@ -21,7 +21,6 @@ package org.apache.hudi.table.action.commit;
import org.apache.hudi.client.HoodieJavaWriteClient; import org.apache.hudi.client.HoodieJavaWriteClient;
import org.apache.hudi.client.WriteStatus; import org.apache.hudi.client.WriteStatus;
import org.apache.hudi.common.bloom.BloomFilter; import org.apache.hudi.common.bloom.BloomFilter;
import org.apache.hudi.common.config.HoodieMetadataConfig;
import org.apache.hudi.common.engine.EngineType; import org.apache.hudi.common.engine.EngineType;
import org.apache.hudi.common.fs.FSUtils; import org.apache.hudi.common.fs.FSUtils;
import org.apache.hudi.common.model.HoodieKey; import org.apache.hudi.common.model.HoodieKey;
@@ -115,8 +114,7 @@ public class TestJavaCopyOnWriteActionExecutor extends HoodieJavaClientTestBase
return HoodieWriteConfig.newBuilder() return HoodieWriteConfig.newBuilder()
.withEngineType(EngineType.JAVA) .withEngineType(EngineType.JAVA)
.withPath(basePath) .withPath(basePath)
.withSchema(SCHEMA.toString()) .withSchema(SCHEMA.toString());
.withMetadataConfig(HoodieMetadataConfig.newBuilder().enable(false).build());
} }
@Test @Test

View File

@@ -18,6 +18,9 @@
package org.apache.hudi.common.config; package org.apache.hudi.common.config;
import org.apache.hudi.common.engine.EngineType;
import org.apache.hudi.exception.HoodieNotSupportedException;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
import java.io.File; import java.io.File;
@@ -163,6 +166,7 @@ public final class HoodieMetadataConfig extends HoodieConfig {
public static class Builder { public static class Builder {
private EngineType engineType = EngineType.SPARK;
private final HoodieMetadataConfig metadataConfig = new HoodieMetadataConfig(); private final HoodieMetadataConfig metadataConfig = new HoodieMetadataConfig();
public Builder fromFile(File propertiesFile) throws IOException { public Builder fromFile(File propertiesFile) throws IOException {
@@ -233,10 +237,28 @@ public final class HoodieMetadataConfig extends HoodieConfig {
return this; return this;
} }
public Builder withEngineType(EngineType engineType) {
this.engineType = engineType;
return this;
}
public HoodieMetadataConfig build() { public HoodieMetadataConfig build() {
metadataConfig.setDefaultValue(ENABLE, getDefaultMetadataEnable(engineType));
metadataConfig.setDefaults(HoodieMetadataConfig.class.getName()); metadataConfig.setDefaults(HoodieMetadataConfig.class.getName());
return metadataConfig; return metadataConfig;
} }
private boolean getDefaultMetadataEnable(EngineType engineType) {
switch (engineType) {
case SPARK:
return ENABLE.defaultValue();
case FLINK:
case JAVA:
return false;
default:
throw new HoodieNotSupportedException("Unsupported engine " + engineType);
}
}
} }
/** /**