protected Table createChangeStore(
      TableIdentifier baseIdentifier,
      TableIdentifier changeIdentifier,
      Schema schema,
      PartitionSpec partitionSpec,
      PrimaryKeySpec keySpec,
      Map<String, String> properties) {
    Map<String, String> changeProperties = Maps.newHashMap(properties);
    changeProperties.putAll(
        TablePropertyUtil.changeStoreProperties(keySpec, TableFormat.MIXED_ICEBERG));
    Catalog.TableBuilder changeBuilder =
        icebergCatalog
            .buildTable(changeIdentifier, schema)
            .withProperties(changeProperties)
            .withPartitionSpec(partitionSpec);
    Table change;
    try {
      change = tableMetaStore.doAs(changeBuilder::create);
      return change;
    } catch (RuntimeException e) {
      LOG.warn("Create base store failed for reason: {}", e.getMessage());
      tableMetaStore.doAs(() -> icebergCatalog.dropTable(baseIdentifier, true));
      throw e;
    }
  }
create change store for mixed-format

@param baseIdentifier base store identifier
@param changeIdentifier change store identifier
@param schema table schema
@param partitionSpec partition spec
@param keySpec key spec
@param properties table properties
@return change table store.
amoro-format-iceberg/src/main/java/org/apache/amoro/mixed/MixedTables.java