[HUDI-3836] Improve the way of fetching metadata partitions from table (#5286)
Co-authored-by: xicm <xicm@asiainfo.com>
This commit is contained in:
@@ -149,7 +149,6 @@ import static org.apache.hudi.common.model.WriteOperationType.DELETE;
|
||||
import static org.apache.hudi.common.model.WriteOperationType.INSERT;
|
||||
import static org.apache.hudi.common.model.WriteOperationType.UPSERT;
|
||||
import static org.apache.hudi.common.testutils.HoodieTestDataGenerator.TRIP_EXAMPLE_SCHEMA;
|
||||
import static org.apache.hudi.metadata.HoodieTableMetadataUtil.getCompletedMetadataPartitions;
|
||||
import static org.apache.hudi.metadata.MetadataPartitionType.BLOOM_FILTERS;
|
||||
import static org.apache.hudi.metadata.MetadataPartitionType.COLUMN_STATS;
|
||||
import static org.apache.hudi.metadata.MetadataPartitionType.FILES;
|
||||
@@ -240,9 +239,9 @@ public class TestHoodieBackedMetadata extends TestHoodieMetadataBase {
|
||||
HoodieTableMetaClient.reload(metaClient);
|
||||
HoodieTableConfig tableConfig = metaClient.getTableConfig();
|
||||
assertFalse(tableConfig.getMetadataPartitions().isEmpty());
|
||||
assertTrue(getCompletedMetadataPartitions(tableConfig).contains(FILES.getPartitionPath()));
|
||||
assertFalse(getCompletedMetadataPartitions(tableConfig).contains(COLUMN_STATS.getPartitionPath()));
|
||||
assertFalse(getCompletedMetadataPartitions(tableConfig).contains(BLOOM_FILTERS.getPartitionPath()));
|
||||
assertTrue(tableConfig.getMetadataPartitions().contains(FILES.getPartitionPath()));
|
||||
assertFalse(tableConfig.getMetadataPartitions().contains(COLUMN_STATS.getPartitionPath()));
|
||||
assertFalse(tableConfig.getMetadataPartitions().contains(BLOOM_FILTERS.getPartitionPath()));
|
||||
|
||||
// enable column stats and run 1 upserts
|
||||
HoodieWriteConfig cfgWithColStatsEnabled = HoodieWriteConfig.newBuilder()
|
||||
@@ -265,9 +264,9 @@ public class TestHoodieBackedMetadata extends TestHoodieMetadataBase {
|
||||
HoodieTableMetaClient.reload(metaClient);
|
||||
tableConfig = metaClient.getTableConfig();
|
||||
assertFalse(tableConfig.getMetadataPartitions().isEmpty());
|
||||
assertTrue(getCompletedMetadataPartitions(tableConfig).contains(FILES.getPartitionPath()));
|
||||
assertTrue(getCompletedMetadataPartitions(tableConfig).contains(COLUMN_STATS.getPartitionPath()));
|
||||
assertFalse(getCompletedMetadataPartitions(tableConfig).contains(BLOOM_FILTERS.getPartitionPath()));
|
||||
assertTrue(tableConfig.getMetadataPartitions().contains(FILES.getPartitionPath()));
|
||||
assertTrue(tableConfig.getMetadataPartitions().contains(COLUMN_STATS.getPartitionPath()));
|
||||
assertFalse(tableConfig.getMetadataPartitions().contains(BLOOM_FILTERS.getPartitionPath()));
|
||||
|
||||
// disable column stats and run 1 upsert
|
||||
HoodieWriteConfig cfgWithColStatsDisabled = HoodieWriteConfig.newBuilder()
|
||||
@@ -291,9 +290,9 @@ public class TestHoodieBackedMetadata extends TestHoodieMetadataBase {
|
||||
HoodieTableMetaClient.reload(metaClient);
|
||||
tableConfig = metaClient.getTableConfig();
|
||||
assertFalse(tableConfig.getMetadataPartitions().isEmpty());
|
||||
assertTrue(getCompletedMetadataPartitions(tableConfig).contains(FILES.getPartitionPath()));
|
||||
assertFalse(getCompletedMetadataPartitions(tableConfig).contains(COLUMN_STATS.getPartitionPath()));
|
||||
assertFalse(getCompletedMetadataPartitions(tableConfig).contains(BLOOM_FILTERS.getPartitionPath()));
|
||||
assertTrue(tableConfig.getMetadataPartitions().contains(FILES.getPartitionPath()));
|
||||
assertFalse(tableConfig.getMetadataPartitions().contains(COLUMN_STATS.getPartitionPath()));
|
||||
assertFalse(tableConfig.getMetadataPartitions().contains(BLOOM_FILTERS.getPartitionPath()));
|
||||
|
||||
// enable bloom filter as well as column stats and run 1 upsert
|
||||
HoodieWriteConfig cfgWithBloomFilterEnabled = HoodieWriteConfig.newBuilder()
|
||||
@@ -317,9 +316,9 @@ public class TestHoodieBackedMetadata extends TestHoodieMetadataBase {
|
||||
HoodieTableMetaClient.reload(metaClient);
|
||||
tableConfig = metaClient.getTableConfig();
|
||||
assertFalse(tableConfig.getMetadataPartitions().isEmpty());
|
||||
assertTrue(getCompletedMetadataPartitions(tableConfig).contains(FILES.getPartitionPath()));
|
||||
assertTrue(getCompletedMetadataPartitions(tableConfig).contains(COLUMN_STATS.getPartitionPath()));
|
||||
assertTrue(getCompletedMetadataPartitions(tableConfig).contains(BLOOM_FILTERS.getPartitionPath()));
|
||||
assertTrue(tableConfig.getMetadataPartitions().contains(FILES.getPartitionPath()));
|
||||
assertTrue(tableConfig.getMetadataPartitions().contains(COLUMN_STATS.getPartitionPath()));
|
||||
assertTrue(tableConfig.getMetadataPartitions().contains(BLOOM_FILTERS.getPartitionPath()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -360,7 +359,7 @@ public class TestHoodieBackedMetadata extends TestHoodieMetadataBase {
|
||||
|
||||
HoodieTableConfig hoodieTableConfig2 =
|
||||
new HoodieTableConfig(this.fs, metaClient.getMetaPath(), writeConfig2.getPayloadClass());
|
||||
assertEquals(Collections.emptyList(), hoodieTableConfig2.getMetadataPartitions());
|
||||
assertEquals(Collections.emptySet(), hoodieTableConfig2.getMetadataPartitions());
|
||||
// Assert metadata table folder is deleted
|
||||
assertFalse(metaClient.getFs().exists(
|
||||
new Path(HoodieTableMetadata.getMetadataTableBasePath(writeConfig2.getBasePath()))));
|
||||
|
||||
@@ -79,7 +79,6 @@ import scala.Tuple2;
|
||||
|
||||
import static org.apache.hudi.common.testutils.SchemaTestUtil.getSchemaFromResource;
|
||||
import static org.apache.hudi.metadata.HoodieTableMetadataUtil.deleteMetadataPartition;
|
||||
import static org.apache.hudi.metadata.HoodieTableMetadataUtil.getCompletedMetadataPartitions;
|
||||
import static org.apache.hudi.metadata.HoodieTableMetadataUtil.metadataPartitionExists;
|
||||
import static org.apache.hudi.metadata.MetadataPartitionType.COLUMN_STATS;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
@@ -234,7 +233,7 @@ public class TestHoodieIndex extends TestHoodieMetadataBase {
|
||||
// check column_stats partition exists
|
||||
metaClient = HoodieTableMetaClient.reload(metaClient);
|
||||
assertTrue(metadataPartitionExists(metaClient.getBasePath(), context, COLUMN_STATS));
|
||||
assertTrue(getCompletedMetadataPartitions(metaClient.getTableConfig()).contains(COLUMN_STATS.getPartitionPath()));
|
||||
assertTrue(metaClient.getTableConfig().getMetadataPartitions().contains(COLUMN_STATS.getPartitionPath()));
|
||||
|
||||
// delete the column_stats partition
|
||||
deleteMetadataPartition(metaClient.getBasePath(), context, COLUMN_STATS);
|
||||
|
||||
Reference in New Issue
Block a user