protected Table createBaseStore(
      TableIdentifier baseIdentifier,
      Schema schema,
      PartitionSpec partitionSpec,
      PrimaryKeySpec keySpec,
      Map<String, String> properties) {
    TableIdentifier changeIdentifier = generateChangeStoreIdentifier(baseIdentifier);
    if (keySpec.primaryKeyExisted() && tableStoreExists(changeIdentifier)) {
      throw new AlreadyExistsException("change store already exists");
    }

    Map<String, String> baseProperties = Maps.newHashMap(properties);
    baseProperties.putAll(
        TablePropertyUtil.baseStoreProperties(
            keySpec, changeIdentifier, TableFormat.MIXED_ICEBERG));
    Catalog.TableBuilder baseBuilder =
        icebergCatalog
            .buildTable(baseIdentifier, schema)
            .withPartitionSpec(partitionSpec)
            .withProperties(baseProperties);
    return baseBuilder.create();
  }
create base store for mixed-format

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