private void initTargetTable(PrimaryKeySpec keySpec, PartitionSpec ptSpec) {
    table =
        createTarget(
            SCHEMA, builder -> builder.withPartitionSpec(ptSpec).withPrimaryKeySpec(keySpec));
    initFiles = TestTableUtil.writeToBase(table, base);
    target = Lists.newArrayList(base);

    if (keySpec.primaryKeyExisted()) {
      List<DataFile> changeFiles =
          TestTableUtil.writeToChange(table.asKeyedTable(), change, ChangeAction.INSERT);
      initFiles.addAll(changeFiles);
      target.addAll(change);
    }

    createViewSource(SCHEMA, source);
  }
1. dynamic insert overwrite 2. static insert overwrite 3. for un-partitioned table 3. duplicate
check for insert overwrite 4. optimize write is work for insert overwrite
amoro-format-mixed/amoro-mixed-spark/v3.3/amoro-mixed-spark-3.3/src/test/java/org/apache/amoro/spark/test/suites/sql/TestInsertOverwriteSQL.java