[HUDI-4372] Enable matadata table by default for flink (#6066)
This commit is contained in:
@@ -103,8 +103,8 @@ public class FlinkOptions extends HoodieConfig {
|
||||
public static final ConfigOption<Boolean> METADATA_ENABLED = ConfigOptions
|
||||
.key("metadata.enabled")
|
||||
.booleanType()
|
||||
.defaultValue(false)
|
||||
.withDescription("Enable the internal metadata table which serves table metadata like level file listings, default false");
|
||||
.defaultValue(true)
|
||||
.withDescription("Enable the internal metadata table which serves table metadata like level file listings, default enabled");
|
||||
|
||||
public static final ConfigOption<Integer> METADATA_COMPACTION_DELTA_COMMITS = ConfigOptions
|
||||
.key("metadata.compaction.delta_commits")
|
||||
|
||||
@@ -51,6 +51,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
@@ -181,8 +182,10 @@ public class StreamWriteOperatorCoordinator
|
||||
this.gateways = new SubtaskGateway[this.parallelism];
|
||||
// init table, create if not exists.
|
||||
this.metaClient = initTableIfNotExists(this.conf);
|
||||
this.ckpMetadata = initCkpMetadata(this.metaClient);
|
||||
// the write client must create after the table creation
|
||||
this.writeClient = StreamerUtil.createWriteClient(conf);
|
||||
initMetadataTable(this.writeClient);
|
||||
this.tableState = TableState.create(conf);
|
||||
// start the executor
|
||||
this.executor = NonThrownExecutor.builder(LOG)
|
||||
@@ -192,11 +195,6 @@ public class StreamWriteOperatorCoordinator
|
||||
if (tableState.syncHive) {
|
||||
initHiveSync();
|
||||
}
|
||||
if (tableState.syncMetadata) {
|
||||
initMetadataSync();
|
||||
}
|
||||
this.ckpMetadata = CkpMetadata.getInstance(this.metaClient.getFs(), metaClient.getBasePath());
|
||||
this.ckpMetadata.bootstrap(this.metaClient);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -352,8 +350,14 @@ public class StreamWriteOperatorCoordinator
|
||||
hiveSyncContext.hiveSyncTool().syncHoodieTable();
|
||||
}
|
||||
|
||||
private void initMetadataSync() {
|
||||
this.writeClient.initMetadataWriter();
|
||||
private static void initMetadataTable(HoodieFlinkWriteClient<?> writeClient) {
|
||||
writeClient.initMetadataTable();
|
||||
}
|
||||
|
||||
private static CkpMetadata initCkpMetadata(HoodieTableMetaClient metaClient) throws IOException {
|
||||
CkpMetadata ckpMetadata = CkpMetadata.getInstance(metaClient.getFs(), metaClient.getBasePath());
|
||||
ckpMetadata.bootstrap(metaClient);
|
||||
return ckpMetadata;
|
||||
}
|
||||
|
||||
private void reset() {
|
||||
|
||||
@@ -87,8 +87,8 @@ public class ExpressionEvaluator {
|
||||
* 2. bind the field reference;
|
||||
* 3. bind the column stats.
|
||||
*
|
||||
* <p>Normalize the expression to simplify the following decision logic:
|
||||
* always put the literal expression in the right.
|
||||
* <p>Normalize the expression to simplify the subsequent decision logic:
|
||||
* always put the literal expression in the RHS.
|
||||
*/
|
||||
public static Evaluator bindCall(CallExpression call, RowData indexRow, RowType.RowField[] queryFields) {
|
||||
FunctionDefinition funDef = call.getFunctionDefinition();
|
||||
|
||||
Reference in New Issue
Block a user